• 0 Posts
  • 49 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle



  • Helix has better defaults for sure and I get why people might prefer it but I have a very hard time imagining it being a better choice than vim in every situation even with a lot more development.

    Also, if you work with programming for example your editor is going to be one of your main tools and I think that “reading guides” is an acceptable amount of effort to put in to learning such a tool. Vim has a higher barrier of entry than it needs to (this can to some extent be explained with backwards compatability) but with Helix you still have to put some time in to understanding the editing model anyway.


  • The biggest thing missing from helix right now imo is plugin support, so a lot of plugins that I really like wouldn’t be available. I use fugitive a lot for working with git for example.

    Another one is the quickfix list in combination with ex commands. One thing you can do for example is setup :make to run your compiler and then when you get compilation errors they’ll show up in your quickfix list. You can then use :Cfilter to focus on one type of error and then :cdo to for example do a find and replace on the remaining lines.

    In general, if I don’t have an lsp available for whatever reason (I work in cmake a fair amount at my $DAYJOB for example) I would much rather use vim, in particular because of the stuff that you can do with ex commands that I mentioned above (also works great with grep) but also because of the ctags support.

    Helix can do a lot of nice things out of the box for a lot of cases of software editing, but it’s not nearly as broad or as customizable of a tool as vim





  • With arch, I’d recommend just jumping in the deep and and installing it, looking things up on the wiki when something goes wrong. Just do it in a virtual machine or on an old laptop or something to start with. I broke my previous distro (mint) by doing some really stupid stuff, and I decided to just go fuck it and install arch. I don’t think I’ve ever learned as much about linux as that weekend.

    I suppose that I was already pretty comfortable with the terminal since I was studying computer science at the time so I had a lot of reason to use it. I think the best way to use the terminal is to force yourself to use it, programming is great for this but you can try e.g. sorting your photos or mp3 files or something as practice too.



  • Debugging is kind of a weak point in vim to be honest, there is a plugin called termdebug which comes bundled with vim that can do gdb debugging ok, but anything more complicated mostly just feels like a lot more work and a bit more jank than just using vscode.

    I use just as well, it’s a more vimy approach than something more tightly integrated so that makes sense.

    Helix is nice, but I don’t think I could leave behind some of my vim plugins, fugitive in particular is an integral part of my git workflow. Haven’t used the kakoune editing model enough to really decide if I think it’s better than vim personally.



  • It can be hard to bootstrap yourself up from zero followers. I’d recommend posting something just so that people have an idea of the kind of thing they can expect if they follow you from checking out your profile. But you probably won’t get much engagement from your own posts at first, so it will probably be more fun to just reply to other accounts.

    Bluesky has a feature where you can set up customized feeds to filter for any kind of content you want. The person who saw your post might have seen it in the “newskies” feed which just contains every first post that any account makes for example. So one way to get engagement can be to write posts that show up in a certain feed that people follow, like there exist some feeds that are based around certain topics that usually trigger based on your post containing certain keywords. Most people just use the following feed though, I think.






  • It’s not that much of a strain since it only handles DNS traffic.

    When you go to e.g. programming.dev, you computer needs to know the actual IP and not just domain name so it asks a DNS server and recieves an answer like 172.67.137.159 for example. The pihole will just route the traffic to a real DNS server if it’s a normal website or give a unkown ip kind of answer if it’s a blacklisted domain. Actually transmitting the website which is the bulk of trafic is handled without the piholes involvement.


  • You’re propably better of not worrying too much about the awesome-neovim list until you’re more familiar with nvim itself

    I thought LSP support was built into nvim. Why are there so many LSP plugins?

    Most of the plugins seem to be adding bells and whistles to the core LSP functionality and can be safely ignored. The main one that I recomment is nvim-lspconfig which makes it easier to get servers up and running. Neovim itself knows the lsp protocol but isn’t aware of any particular lsp servers. lspconfig comes with premade configurations for different servers so that you don’t have to e.g. tell neovim where to look for the executable or which servers handle which filetypes and so on. It is doable to use LSP without this plugin as well, it just means more boilerplate in your config file.

    And what the hell is treesitter and why do I need it?

    Treesitter is a different way of parsing files for e.g. syntax highlighting. Vanilla (neo)vim uses a pile of regular expressions to perform syntax highlighting essentially, while treesitter actually parses the source files in a way that is aware of the way the target language works. Treesitter might know the difference between a macro and a function for example, and can highlight them differently. You can also querry the syntax tree that tressitter has parsed for use in custom scripts or plugins. Also completely optional unless you want to use a plugin that depends on it.

    As for plugin manegement, I use vim-plugged (which is a vim plugin but is also compatible with neovim). You basically just list the github/gitlab repos you want in your .vimrc file and run a command to download/update them.

    My lsp code in my init.vim file is as follows (taking advantage of nvim-lspconfig): https://pastebin.com/0Wy1ASwk. Adding a new lsp means making sure that the server itself is intalled (e.g. through my package manager) and then adding another line in the langs object, like when i added erlangls i just added erlangls = {}, on line 19.

    (EDIT: For some reason the nmap('gd', vim.lsp.buf.definition) line is repeated a bunch of times in the paste bin. That’s not on purpose)

    Debugging is imo a weak point for both vim and neovim, there’s nvim-dap and vimspector which takes advantage of LSPs sister protocol DAP (debug adapter protocol). Setting it up is principaly similar to LSPs. Vim and neovim also have the builtin termdebug plugin which you can load using packadd termdebug in you .vimrc file and allows you to debug using GDB.