I love Vim but the fact is I’ve been soul searching for a new editor because I am starting to think I am missing out on things. I decided to put together a list of issues that I have with Vim so that I can work towards imprioving my Vim experience and eradicate my thoughts that I need to move to an IDE.
- ctrlp.com doesn’t include symlinks when searching. I work on projects that use symlinks to alleviate needing to remember which GUID belongs to what, being able to include them in search would be pretty epic. Probably need to add in some more things to ignore as it’s pretty messy dealing with a project that has build directories. Incidentally the symlink issue pops up when using git as well.
- The ability to identify variables that are defined in a file but never utilized and which variables are referenced without being defined. This seems like basic functionality for a lot of IDEs out there and it’s something that isn’t always caught by running a lint. I know I have wasted time trying to track down typos in variables in the past and I’m sure it will happen again in the future.
- Snippets. It’s just something I’ve never gotten into but I once had a plugin
installed that would allow me to type in
cl<TAB>and it would expand out to
console.log(). That was nice and I need to get back to that.
- Been having this weird issue where I can’t get to the end of a line no
matter how hard I try. I’ll hit
$and it will jump to about 2 characters away from the end of the line. No idea what causes this but it’s fucking annoying. I end up having to go to the previous line and backspacing up to the previous line.
- Poor auto-indention inside of HTML blocks. Something else that I think I broke when I dropped all of my plugins and started fresh. Whenever I’m in a file that’s a mix of HTML and code (let’s say PHP) the auto-indentation for the markup just isn’t there.
- Infinite undo buffer. I had this working at one point and I started to rework it to be pure VimL instead of relying on setting up directories in my dotfiles install script. Just never finished this. Probably could stand to get a plugin that visualizes the undo history as well.
- Auto-wrapping lines to 80 characters for Markdown files. Also disabling the
auto-indentation while writing prose. Gets super annoying when a line happen to
forand the next line indented.
- Figure out how to not get lost when working with larger blocks of code. I know I really should be keeping things small and in manageable chunks but sometimes that’s just not possible, especially with markup. I’ve started to put a comment after the end of each closing tag but that just makes more work for me. Seems like tagbar may be able to provide that, will need to check it out.
- Plugin autoupdating. I have some hotkeys defined to make it easier to update but it would be significantly better if it was automatic. That being said, seems like it would create too much lag to check for updates whenever I run Vim but perhaps I could detach a process, let it update headless so it doesn’t affect the current session. If nothing else it could check if there are updates and set a flag to update me next time I launch Vim that I have updates available. Actually, this could make a decent plugin if one doesn’t already exist.
- Marks. I don’t use them and I really should. I had a mark browser that never really worked right but it seemed like it would bridge the gap for me. I still run around injecting comments into the file so I can search for the string and find where I was at. It’s highly inefficient.
- I hate that when I select text and paste something in it’s place that the
selected text ends up in my current buffer. I’ve tried to get hip to using the
buffer history but it’s a bunch of extra keystrokes and I can never remember
them. It would be nice if I could just turn this functionality off
indefinitely. I just want
yto do my copying, not
- I need to get better with splitting buffers. I’ve fallen into the trap of
relying on splitting the window in iTerm2 when I feel I’d be better served by
doing so in Vim directly. If for no other reason, so that I can have the same
experience if I’m logged into a server or local. I’m doing some further soul
searching on whether or not I should continue to use iTerm2 or switch back to
Terminal.app and possibly adopting
tmux. Same logic there, so I can have a consistent experience regardless of where I’m at.
I definitely got some work ahead of me! I am planning on addressing one or two things on the list a week. Good chance I am going to strip out all of my packages again and start fresh. Toying with other editors is always fun to see what I may be missing out on but at the end of the day Vim is still the editor for me. Fixing this list of issues seems way more logical than attempting to deal with all of the shortcomings I find with other editors and IDEs.