4 ms·
Vim. I was first introduced to this text editor back in college. It has super weird navigation rules and editing modes that would easily deter many beginners. 7
by tzhenghao 10y ago
Vim. I was first introduced to this text editor back in college. It has super weird navigation rules and editing modes that would easily deter many beginners. 70-80% of my course mates gave up on it and chose something else that worked more like a normal text editor such as Sublime/Atom.
It took me several months to develop that muscle memory to increase my productivity. Today, I can log in remotely to my AWS instance, edit a few files and do it all without leaving the terminal. I hear similar benefits on the Emacs camp too.
The steep learning curve was well worth it. I don't think I've shipped any source file without opening/editing it on Vim before.
- return0 10y agoI don't think vi has a steep learning curve. There is very little "curve" after the first day. It does have a very awkward first moment (how do i get out of this? esc-colon-wq wtf is this?). Once you realize the difference of command mode, you 're done; it's like photoshop with words.
- leblancfg 10y ago3 months into vim and I'm only starting to get better productivity than what I had in my old editor, PyCharm. It's fine to learn the basics, but the hard part for me was to internalize not only the movements, but striving to use the smallest amount of keystrokes for any given edit. Always keep learning!
- cfeduke 10y agoSame for me. Vim bindings in all my editors across all the operating systems I use. The editor is the way you communicate your will to the machine. IntelliJ has a particularly good plugin JetBrains created. Eclipse has a decent plugin for USD$14, or it was when I bought it years ago.
- jay-anderson 10y agohttp://vrapper.sourceforge.net/home/ http://vrapper.sourceforge.net/home/ - vrapper is what I use for vim support in eclipse. It's quite good.
- chapingt 10y agohow do you feel about Vim plugins for external code editors (particularly, I'm thinking VS Code)? I somehow end up developing on new Windows machines all the time, and getting all the Unix emulation tools just so I can use Vim seems a bit over the top. Are there any enormous advantages to using Vim vs. a Vim emulator?
- adt2bt 10y agoNot the OP but vim in VS Code is good enough for me. There are some quirks that have slowed me down compared to pure command line vim, but I've been fine taking small vim-specific productivity hits by relearning a few shortcuts (changing tabs, for example, is weird in VSCodeVim) and taking advantage of the VS Code environment.
- grayrest 10y ago> Are there any enormous advantages to using Vim vs. a Vim emulator? There are lots of vim commands and most emulators do not implement the entire set. Macros, register recording, text objects, correct repeat, recursive keymappings, bookmarks/jump history, and ex mode are the most frequent casualties. Because everybody has a different subset of vim commands they use an emulator that works fine for one person will be unacceptable for others. I personally can't stand any of the VS Code vim plugins, which is a shame because I really would prefer to migrate from vim to vscode for the rest of the vscode ecosystem. The best emulator I've used is Evil (the emacs one, install spacemacs if you want to give it a go) and I find the InteilliJ and Atom emulators to be okay. There's also plugins that are almost never carried over to emulators (though surround is in Evil): EasyMotion [0] - Lets you jump around in complicated ways. I use the following config to be able to jump around in a minimal number of keystrokes: let g:EasyMotion_keys = 'jfkdlghtyuievnbsa' let g:EasyMotion_smartcase = 1 nmap <space> <Plug>(easymotion-bd-W) nmap <S-space> <Plug>(easymotion-s) Surround [1] - Lets you surround text objects and delete surrounding stuff easily. I use the following to save keystrokes, since I find `sw"` considerably easier to type than `ysiw"`. nmap s ysi nmap S ysa nmap s$ ys$ nmap sv gvs [0] https://github.com/easymotion/vim-easymotion https://github.com/easymotion/vim-easymotion [1] https://github.com/tpope/vim-surround https://github.com/tpope/vim-surround