13 ms·
History and Effective Use of Vim
- 2bitencryption 7y agoAfter years of a love/hate relationship with Vim (I love what it does, but have configuring it), I had an epiphany: by sticking with the defaults, whether they are my preferred choices or not, I can instantly understand how to use Vim in any environment. Once you get used to biting the bullet and hitting escape instead of jj, or ctrl+c, it just works, everywhere. If you abandon the urge to pimp out your Vim with a billion plugins, and just use it raw, it's a kind of editor Nirvana. Let go of your desires and live without want :) Of course, that's just me. I understand why someone would want to turn Vim into their personalized powerhouse editor with IDE powers, with their .vimrc a 'git pull' away. But I've learned to live with the humble defaults, and it's made life easy.
- ifoundthetao 7y agoI am right there with you. I did the same thing, and now when I jump into Vim from anywhere, it's so much easier. Though I really do like having the Capslock key remapped to escape.
- chasedehan 7y agoI much prefer mapping caps lock to ctrl. That reach is much more difficult for me
- jabl 7y agoSwap caps lock and escape, then set the bottom row from the left as windows key, alt, ctrl, space. Then you can easily use ctrl with your left thumb.
- jstimpfle 7y agoIf you are on a regular keyboard, you can keep all your fingers on the home row and use your palm to hit ctrl.
- kej 7y agoAround the time I learned vim I also got myself into the habit of using the opposite hand for Ctrl, the same way you would for Shift. It has pretty much eliminated any need to stretch for a key chord.
- xtracto 7y agoThat's mechanography 101. I am so happy I got into those courses in secondary school in the 90s. Even if everybody said it was for girls. Now I type at 100wpm and using Vim gives amazing productivity.
- lunchables 7y agoWhy not both? https://github.com/alols/xcape https://github.com/alols/xcape
- danaur 7y agoDepending on your job there's no reason that you would ever need to use defaults. You should optimize your editor for your day-to-day use case
- ggm 7y agothis + nvi had more direct lineage to true vi, Keith Bostic was in the Bill Joy headspace, but it kind-of got stuck. Vim diverged in ways which used to annoy me but I've come to accept. I won't mention "the other editor family" here but it is interesting to see the things in that one, which I miss in this one (for me at least) which are principally the ability to cut-paste regions, and a set of things which became screen and tmux. Now there IS screen and tmux, that matters less. Not having 2D region cut-paste is a small price to pay for the joys of a modal editor.
- Qwertystop 7y agoI go for a heap of plugins but don't remap the things that start off built-in, so I get the muscle-memory for the defaults when I need a remote shell somewhere, but still the useful plugins on my own computer.
- komali2 7y agoOn a lot of machines, C-[ (control + left bracket) maps to escape. But some programs don't seem to acknowledge this? Like in firefox, doing that changes tabs, but in Emacs + evil mode it's how I "ESC."
- pault 7y agoThere's an interesting reason for this related to the ASCII table and bit shifting, but I can't find a description of the exact mechanism for it. H and [ are in the same column as escape and delete respectively, and control shifts the bits in the character codes by some amount. Maybe someone smarter than me can elucidate.
- mrcarrot 7y agoThis table might help explain: 00 01 10 11 00000 NUL Spc @ ` 00001 SOH ! A a 00010 STX " B b 00011 ETX # C c 00100 EOT $ D d 00101 ENQ % E e 00110 ACK & F f 00111 BEL ' G g 01000 BS ( H h 01001 TAB ) I i 01010 LF * J j 01011 VT + K k 01100 FF , L l 01101 CR - M m 01110 SO . N n 01111 SI / O o 10000 DLE 0 P p 10001 DC1 1 Q q 10010 DC2 2 R r 10011 DC3 3 S s 10100 DC4 4 T t 10101 NAK 5 U u 10110 SYN 6 V v 10111 ETB 7 W w 11000 CAN 8 X x 11001 EM 9 Y y 11010 SUB : Z z 11011 ESC ; [ { 11100 FS < \ | 11101 GS = ] } 11110 RS > ^ ~ 11111 US ? _ DEL
- kps 7y agoNow split the second column, and you understand the keyboard layout of pre-microprocessor ASCII terminals like the Teletype 33¹ and vi's own ADM-3A² 011 010 0000 0 SP 0001 1 ! 0010 2 " 0011 3 # 0100 4 $ 0101 5 % 0110 6 & 0111 7 ' 1000 8 ( 1001 9 ) 1010 : * 1011 ; + 1100 < , 1101 = - 1110 > . 1111 ? / ¹ https://commons.wikimedia.org/wiki/File:TTY33ASR.jpg https://commons.wikimedia.org/wiki/File:TTY33ASR.jpg ² https://catonmat.net/images/why-vim-uses-hjkl/lsi-adm3a-full-keyboard.jpg https://catonmat.net/images/why-vim-uses-hjkl/lsi-adm3a-full...
- topmonk 7y agoJust a quick note, you can use Ctrl +[ rather than Escape. Saves your fingers from constantly having to reach for that corner.
- Kaiyou 7y agoOn my keyboard I need ALT GR for [. On a side note, I'm rather disappointed that the ESC key didn't get updated with modern keyboards. The keyboard vi was designed on had ESC where Capslock now resides.
- zaat 7y agoI despise and hate with passion the Capslock key. On linux I always run setxkbmpap -option caps:escape. I wish the same could be done on Windows. I got used to it so much that I find myself from time to time writing catpital letters when I'm on Windows or foreign setup. My hate for the key came years before I thought about the possibility of remapping it. Similarly, I hate the F1, a key that when accidentally pressed on some windows machines inside programs like excel can steal the focus and leave the computer unusable until it loads the useless help sidebar (when all I wanted was hitting the F2 for editing a cell content).
- kzrdude 7y agoYou can do that on windows, in some way. I've got it setup like that (former caps lock key acts like control), but I don't remember exactly what the setting was.
- kej 7y agoIt's a registry edit, but SharpKeys is a small GUI for editing that part of the registry: https://github.com/randyrants/sharpkeys https://github.com/randyrants/sharpkeys
- yjftsjthsd-h 7y ago> I wish the same could be done on Windows You can:) https://vim.fandom.com/wiki/Map_caps_lock_to_escape_in_Windows https://vim.fandom.com/wiki/Map_caps_lock_to_escape_in_Windo...
- Diederich 7y agoYup. I've been using vi[m] on an almost daily basis since about 1989...wow, that's 30 years. In those decades, I have resisted putting anything in my .vi[m]rc except: set tabstop=4 set expandtab set shiftwidth=4 set shiftround That's it. And I agree with you, it's a very happy place for me.
- urda 7y agoWhat made you pick those 4 if I may ask?
- pvg 7y agoEvery thousand years this metal sphere ten times the size of Jupiter floats just a few yards past the Earth. You climb on your roof and take a swipe at it with a single feather. Hit it once every thousand years til you've worn it down to the size of a pea. Same thing but start with the biggest vim config you can find.
- Diederich 7y agoI have no idea where it started...I've been pasting those into my .vimrc for perhaps 20 years now, or more. I'm pretty sure I copied it from someone else. Specifically, I can't tolerate the tab key actually putting a tab character in. And I like four spaces per tab.
- dws 7y agomost of those, plus set hlsearch
- WorldMaker 7y agoOther than shiftround, the other three seem rather language dependent (which is why I've cluttered so many files with various vimlines/modelines over the years). Wonder if the editorconfig-vim plugin might be a better compromise "only plugin" approach? Particularly given the growing consensus towards editorconfig across editors.
- mushufasa 7y agoI also find it important to set encoding=utf-8. I'm not working with Latin-1 files.
- stefco_ 7y agoI've taken this approach halfway and only install plugins/config that I can easily do without. Things like git-gutter [0] and a line at the 80th column [1] are great, but I don't depend on them when I log into a remote machine. If I really want some features, I have them somewhat organized in my .vimrc [2]. It's a great compromise; I find that I haven't thought about major editor configuration in a couple of years. [0] https://github.com/airblade/vim-gitgutter https://github.com/airblade/vim-gitgutter [1] set colorcolumn=80 textwidth=79 [2] https://github.com/stefco/dotfiles/blob/master/linkfiles/.vimrc https://github.com/stefco/dotfiles/blob/master/linkfiles/.vi... [edit] Just want to add that I 100% agree that erring towards vanilla vim is a great idea; I used to use emacs and switched to vim precisely because the starting point fit my use style far better than vanilla emacs.
- aaron_m04 7y agoI would recommend ditching gitgutter for vim-signify: https://github.com/mhinz/vim-signify https://github.com/mhinz/vim-signify It is less buggy and doesn't refresh until you save, which I find to be less distracting.
- dmix 7y agoI've never really understood why you'd want a constant visual indication of changed lines all the time, especially with something bright/colourful on the side. The only time I find that useful is during reviews before committing. Otherwise it seems like a distraction. Vim is great for minimalism. Likewise I keep Nerdtree closed until I need it and it opens on the right. While VSCode, old Textmate, etc has it always visible and on the left side.
- ibly31 7y agoOnes that take up space are kind of annoying, I agree. I like IntelliJ's solution: mark with green, or yellow for additions and changes. It's a 1px line next to the line number, and also it's in the "minimap" type of view so you can jump right to where your changes are in a large file.
- 7y ago
- WorldMaker 7y agoMy biggest reason to not use the defaults has been keyboard layout. I've bounced back and forth between a version that deeply changed the Vim keys and one that tried to minimally change keys as best as possible. I'm back on the "minimal change" layout preference, but the problem is still "minimal change" is not "no change" and definitely not quite "nirvana".
- colordrops 7y agoI don't find myself needing to use Vim in random environments enough to gnash my teeth about how it doesn't work as expected. Even for those who do, it's not hard to pimp out Vim while leaving the baseline behavior alone. Any new functionality I add I make sure not to override existing frequently used key bindings.
- root_axis 7y agoThis makes sense if you don't use vim as an IDE, but if you do, configurations and plugins are essential. Of course, you wouldn't expect to have a fully configured jetbrains IDE when you SSH into a remote server, but that doesn't mean you can't use one on your local development machine.
- JadeNB 7y ago> This makes sense if you don't use vim as an IDE, but if you do, configurations and plugins are essential. Your parent (https://news.ycombinator.com/item?id=20481729 https://news.ycombinator.com/item?id=20481729) does say that: > > Of course, that's just me. I understand why someone would want to turn Vim into their personalized powerhouse editor with IDE powers, with their .vimrc a 'git pull' away.
- root_axis 7y agoI am pretty sure that was edited in after my comment, but it could just be a reading fail.
- WhatIsDukkha 7y agoIf you want portable then yeah empty out your .vimrc and get fluent with vims superpowers as they are. If you want "personalized powerhouse editor with IDE powers" you are FAR better off going with Emacs/Evil. The Emacs plugin ecosystem is way ahead of Vim. Plugins are clean, stable and compose well together. That was never my experience with Vim. Also unlike Vimscript, Elisp is pretty clean useable language that many Emacs users actually learn. I'd bet the vast majority of vim users never get past step 1 on learning Vimscript? Emacs/Evil for the workstation and clean Vim for the random server side work.
- kbp 7y agoUse tramp with Emacs and you can interact with remote machines as if they were local. Who cares if the server only has vim, you have Emacs.
- webgoat 7y ago+1 for Tramp. You can connect to SMB, ssh, and even docker containers from within Emacs. It's strictly better than using a remote ssh session with vim because you don't need to configure anything server-side. It would be a huge hassle to setup plugins like autocompletion on a remote machine for vim, but Emacs lets you use all your regular plugins while ssh'ing, which is a huge bonus.
- begriffs 7y agoVim can also edit remote files, with its built-in netrw module. It can do ssh, ftp, dav, fetch, http, rcp, rsync. vim scp://remoteuser@server.tld//absolute/path/to/document :help netrw-start
- kqr 7y agoBut will every other Vim plugin (like fuzzy-finding file browsers or whatnot) work with netrw-accessed files as if they were local? Does it trivially do multi-hop SSH through e.g. bastion machines? I have yet to see something as powerful as tramp for this.
- cgag 7y agoI use a bunch of plugins and I've never had trouble remembering the defaults in the odd case I'm unable to use my own config. I don't get why the top comment on all vim threads is always recommending using poor defaults your whole life so you can avoid learning to configure it or avoid a second of confusion when you're ssh'd somewhere. Maybe everyone else besides me spends all their time ssh'd into random servers.
- carterehsmith 7y agoNah, I've seen people downloading their preferred configs right to the production server, because they, understandably, feel more comfy with that. But, it may not be for everyone. Where I work, we are in the process of reaching some compliance targets, and all this downloading unknown stuff from unknown servers is out the window. For the best, I think.
- trcollinson 7y agoIt's unfortunate that in this day and age we still have people who directly access and touch a production server at all, ever. There is zero need.
- alasdair_ 7y agoThis sounds nice until you have to debug a crazy error that only happens in production.
- michaelmrose 7y agoWouldn't this represent 0.1% of your usage? Meanwhile the thinking portion is 99% of the job and the act of using the UI to enact the changes on any editor is the other 1%. Making 1% of 1/10 of 1% more effecient seems like a curious optimization.
- trcollinson 7y agoHonestly, if you have to hop on production to debug a crazy error, you have two bugs. The infrastructure being so different on production compared to development or local is a fixable issue. As are any other differences between production and local that make difficult to debug in these special cases. It takes a long time. It's a substantial effort. But it is worth while.
- darkpuma 7y agoI find that the muscle memory for my personal config is keyed off the visual appearance of my preferred color scheme. So I have no problem context switching between personal config and default config, provided the color schemes are right for each. (Or anyway, that was the case until recently when I switched to evil-mode. I'm totally helpless in default config emacs.)
- ahallock 7y agoI try to keep it minimal as well, but some plugins are too good not to install for my daily work. TabNine, Auto Pairs, Vim Surround, Endwise, and CtrlP are a few that come to mind.
- derefr 7y agoI want syntax highlighting and correct tab behavior, though, and I use a language that not even Neovim has built-in syntax support for.
- pessimizer 7y agoI'm the same way, and I hit the same spot with my desktop OS. I don't need any more individualization than I can put on a machine in 5-10 minutes. The reason vi(m) is awesome is because it's everywhere and it's (pretty much) the same.
- coldtea 7y ago>After years of a love/hate relationship with Vim (I love what it does, but have configuring it), I had an epiphany: by sticking with the defaults, whether they are my preferred choices or not, I can instantly understand how to use Vim in any environment. Which I've never found much important. If you know Vim basics (modes, basic commands, movements, etc), then you can use vim in any environment that you SSH to or happen to have to work temporarily on. But why wouldn't you want the Vim on your main driver laptop, which you use every day to not have a nice custom setup, and some good third party plugins (e.g. file search, linting, etc)? It's not like using them will make you forgot the basic commands, movements, etc, to use vim in some unknown remote machine. And it's also not like you should optimize for the random remote machine you'll get in, and not where you spend hours programming every day. So unless one is a sysadmin and has no real "main" machine he uses vim in, this makes no sense to me...
- kd5bjo 7y ago> It's not like using them will make you forgot the basic commands, movements, etc, to use vim in some unknown remote machine. No, but time I spend setting up and tweaking a custom environment is time I could be spending internalizing the tools that exist everywhere and work well after the learning curve. Since working on a foreign machine usually only happens when something’s broken, it’s already a stressful situation— my tools not behaving the way I expect won’t help matters.
- coldtea 7y ago>No, but time I spend setting up and tweaking a custom environment is time I could be spending internalizing the tools that exist everywhere and work well after the learning curve. You should be able to "internalize" the tools that "exist everywhere" in a year or two are most. If you start using vim at the university you would be done internalizing its internal tools when you graduate. You then have the rest 30+ years of your career to use a nice environment, and it doesn't take much time "setting up and tweaking" to get non-internal tools like NerdTree, linters, git gutter, etc working. More like a week or so, on and off.
- mythrwy 7y agoI'd take a tremendous hit in productivity if I followed that advice. The amount of time I spend in Vim not customized is negligible, and I can always hit Esc in those cases with a not even in the ballpark time saving over losing snips and all the custom plugins.
- styfle 7y agoThis is my philosophy with most software. I expect to get 80-90% of the way with zero configuration and then maybe for some advanced features I’ll touch the config and personalize some things. The added benefit to becoming proficient with default configuration is that it is really easy to upgrade to a new computer and start from scratch. And of course with vim, the benefit is the ubiquity when using ssh or docker or VMs which typically use the defaults.
- TransAMrit 7y agoI do exactly the same thing. It really relieves the stress of working with an unfamiliar environment, and you become that much more effective with stock vim!
- dr01d 7y agoI would agree, but then I found this: https://vim-bootstrap.com/ https://vim-bootstrap.com/ and it is sooooo nice. I no longer have to think about configuring vim or managing plugins because it is done. Esp for golang.
- 87zuhjkas 7y ago> Once you get used to biting the bullet and hitting escape instead of jj ... it just works, everywhere. Well you can also invest the small amount of time to type in: :imap jj <Esc>
- reidrac 7y agoSome defaults aren't very usable, although "Debian defaults" are very close. I had the same approach, but lately I've decided to add plugins or configuration to "enhance" and never "replace", and I have never been happier as I'm now with vim. I also decided to invest some time to move to vim + tmux instead of using gvim and now that I'm used to the extras I get with tmux (yep, terminal support in vim 8 is nice but not as flexible), I think I can't go back!
- JetSpiegel 7y agoThere's also tpope's vim-sensible but I think nvim took nearly all of them. https://github.com/tpope/vim-sensible https://github.com/tpope/vim-sensible
- jasonincanada 7y agoMy .vimrc is fairly simple: https://github.com/jasonincanada/dot-files/blob/master/.vimrc https://github.com/jasonincanada/dot-files/blob/master/.vimr...
- arvinsim 7y agoStill have to configure fonts. Can't stand the defaults.
- asix66 7y agoI’m a long time VI(m) user, who started with emacs. I’m proficient in both editors, but use vim as my daily driver. When I started my career, my mentor was an emacs user, and the reason I started with emacs. I became very proficient with the editor, learning how to handle multiple buffers, window splits, rectangle selects, etc. At that time, I didn’t know vi. Until I started working on another project, where the project manager made a statement to me that started my migration to vim. I was logged into a machine that didn’t have emacs, and I was complaining about it. “Just use vi”, he said. “I don’t know vi”, I said. Then came the statement that stuck with me, “Son, you got to know vi just enough so you don’t look stupid.” So I learned vi, just enough to not look stupid, and eventually, as proficiency set in, turned to vi more often than emacs. Now vim is my primary editor, and I can use emacs just enough to not look stupid. ;) Back to defaults. I customize my vim with colorized syntax highlighting, and several plugins. But at its core my vim is still default with respect to key bindings. These are the defaults that matter. If you leave key bindings alone, then the core of vim use is identical anywhere you use vim, with or without your personal vimrc. You can a make “stick to the core defaults” argument for just about any editor. Just keep the core defaults, and customize away on systems you use daily. Then when you use the editor without your personalizations, the editor still behaves as usual. My editor life is also easy, but with some more creature comforts for daily use.
- entelechy0 7y agoI'm left-handed and depend on lefty vim nav, but otherwise I agree
- davidgerard 7y agoI tend to only mess slightly with my .vimrc, but I get fancy in my .gvimrc for this reason.
- HeavyStorm 7y agoI usually stick to this rule almost everywhere, with just a few exceptions for some shortcuts. Reconfiguring means trouble when, for instance, helping a colleague or teaching someone, as well as the overhead whenever the configs are lost.
- newman8r 7y agoTo anyone who hasn't tried it - http://www.vimgolf.com/ http://www.vimgolf.com/ is probably the quickest and most fun way to take your skills to the next level.
- smitty1e 7y agohttps://vimvalley.com/ https://vimvalley.com/ isn't cheap, but you get what you pay for.
- istjohn 7y agoI've never come across this before. Thanks for sharing!
- newman8r 7y agowow good for them if they're getting people to pay $99. It does look well-designed, but the course outline seems a bit elementary. If anyone is thinking about buying this, you could probably just google the items in the course outline and try watching a youtube video on it.
- smitty1e 7y agoAbsolutely. The courseware runs entirely in the browser; gives great feedback; and helped me level up in a jiffy. Such that I have no qualms mentioning it here.
- newman8r 7y agoyeah, increasing your skill is easily worth $100. Back when I was employed as a developer, I bought all kinds of educational stuff. Now that I'm working on startups, everything's gotta be free.
- michaelmrose 7y agoIs that why Vim costs so much? I kid but honestly I've found software quality to be poorly correlated with cost. Same for instructional materials.
- jLyrrad 7y agoI remember the first time I ran `vimtutor` in my terminal. A lot changed since then! Although I just stick with defaults since I have my IDE for my day-to-day job.
- dllthomas 7y agoAlso of note, the first part of https://vim-adventures.com https://vim-adventures.com is fun. I expect the rest is too, but I got sticker shock when I went to buy. Probably worth it for someone who doesn't already know vim well, though.
- stirfrykitty 7y agoBeen using vim since 1998 and rarely stray unless I'm typing notes for something unimportant and them I use Nano. Back in the day when I was a Unix admin, we often worked in full screen terminals and when editing a config file didn't like having to close the vim instance to go look at something, so learned about this little gem: :sh (go back to shell and do your thing and leave vim running) Ctrl-d to return to intact and running vim instance. As an aside, if you decide to use nano to edit config files, make sure you use nano -w (no wrap), otherwise you may find yourself with a non-bootable OS instance.
- Syssiphus 7y agoOr just CTRL+z and then 'fg' to go back.
- stirfrykitty 7y agoDoes that work in all shells?
- steve76 7y agoWell, we can't call it Satan ... ... ... ... ??? How about ... ... Sad Sam! :) FUN AT PBS FROM MANHATTAN PROJECT FUCK YOU HITLER.
- pfranz 7y agohttps://en.wikipedia.org/wiki/Job_control_(Unix) https://en.wikipedia.org/wiki/Job_control_(Unix) I haven't used many esoteric environments, but wikipedia says it "exists in most modern Unix shells" and the timeline for first adding it was the late 70s early 80s.
- mprovost 7y agoJob control was first implemented in csh, another Bill Joy invention, although I believe that particular feature was added by someone else.
- 7y ago
- MisterOctober 7y agoExcellent article by the creator of the equally-excellent postgREST. Especially the neato historical material - I didn't know that Vi was directly derived from the ex [and by extension, ed] editor.
- steve76 7y agoV is for ??? Im Or I M Like IBM without the B ??? ??? ???
- _hardwaregeek 7y agoI realized why Vim has always felt a little off to me. The primary navigational commands are mostly on the right hand, which as a left handed person feels very weird to me. While Emacs commands favor neither hand (if anything they favor the left with C-f, C-b, C-a, C-e, C-x C-s, M-x, etc). Just a small observation.
- nightkoder 7y agoYou may enjoy a dvorak keyboard. Up and down (j and k) are the c and v keys. Left and right (h and l) are j and p.
- _hardwaregeek 7y agoYeah...but I like other people being able to use my keyboard. Besides I already get confused between Windows shortcuts and Mac ones. Can't imagine QWERTY vs DVORAK
- michaelmrose 7y agoIt's possible to switch keyboard layouts on the fly when another user takes over.
- kazinator 7y ago> Some of the clones: > > nvi - 1980 for 4BSD > [ ... ] > elvis - 1990 for Minix and 386BSD This is incorrect; nvi is in fact a mid 1990's fork of Elvis, worked over for better POSIX compliance by Keith Bostic. > vim - 1991 for Amiga Though that was the first public release, Moolenaar had worked on it since 1988. It was based on Tim Thompson's Stevie, which had been released, in 1987 (noted in the table).
- begriffs 7y agoThanks for the correction, can you give me a more precise date for nvi? I can update the article.
- kazinator 7y agoOK, I dug something up. There is this page: https://sites.google.com/a/bostic.com/keithbostic/vi/ https://sites.google.com/a/bostic.com/keithbostic/vi/ Where if you download the Nvi archive, you get 1.79 from 1996. In the tarball's docs/ directory, there is a changelog which goes back to 0.92 -> 0.93 (Mon Dec 20, 1993). 0.94 went to 1.00 on January 10, 1994.
- j1vms 7y agoThank you for putting this together. The writing quality and comprehensiveness are excellent. It's amazing to think that vim's lineage stretches back over 50 years (older than UNIX, display terminals, and Apollo 11!)
- kps 7y ago> nvi - 1980 for 4BSD 4BSD (same as 3BSD) had the original vi (at version 3.1). You can see the sources at TUHS. Fun fact: AT&T adopted vi in System V UNIX, and advertised that fact without crediting UCB as required by the BSD license. So when AT&T sued, USB countersued, which is why AT&T settled for merely removing UNIX code from future releases.
- Foober223 7y ago> Oct 2010 - Feb 2014 : Vundle (Discontinued after NeoBundle ripped off code) Looks like Vundle has an MIT license. rip off usually implies something negative or dishonest. Copying MIT licensed code is a normal and encouraged activity.
- Izkata 7y agoAlso has a few commits since then. The impression I get from the repo is that it's "done", not "discontinued".
- begriffs 7y agoSorry, the way I phrased that was sloppy. I should have said, "main author abandoned, saying NeoBundle ripped off code." http://www.gmarik.info/blog/2014/why-i-stopped-contributing-to-vundle/ http://www.gmarik.info/blog/2014/why-i-stopped-contributing-...
- feiss 7y agoI used vim for years, but then Sublime appeared.. although I miss the snappiness of vim, and wouldn't mind to come back. Specifically, I'd miss these nice features of Sublime: 1. Multiple cursors!! (and how easy is to use them) 2. Real-time preview of regex search 3. Package Manager (easy installation and discoverability of plugins) 4. Jump to file, jump to function, jump to css selector.. (ctrl+p, ctrl+r, using fuzzy search) 5. Project tree in small font (many files at sight) Edit: Here there is a bunch of good stuff: https://medium.com/@huntie/10-essential-vim-plugins-for-2018-39957190b7a9 https://medium.com/@huntie/10-essential-vim-plugins-for-2018...
- dllthomas 7y ago> 2. Real-time preview of regex search Doesn't vim have this by default these days?
- haolez 7y agoI've grown quite dependent on multiple cursors myself. Supposedly, Kakoune is a vim-like editor with good multiple cursors support. http://kakoune.org/ http://kakoune.org/
- feiss 7y agoMmm.. I see there are also vim plugins for multiple cursors, like https://github.com/terryma/vim-multiple-cursors https://github.com/terryma/vim-multiple-cursors ..
- emsy 7y agoI rarely ever use actual vim, mostly when I'm in the terminal. But I have vim plugins for most IDEs I use (VS code, intellij, XCode). It makes editing so much faster. When I have to get by without it I feel as if someone put weights around my wrists. The reason I don't use Vim is because it's frankly not a smooth experience for most languages (unless you fiddle around a lot, and even then I found Ide+vim plug-in superior). I do hope Neovim will solve this, though I didn't test it because the last time I checked windows support was experimental.
- deergomoo 7y agoAfter a several month effort to learn vim bindings and use them full-time, I eventually ended up weaning myself back off because the plugins for the editors I actually use all seemed to come with considerable downsides. vscode-vim caused odd performance issues, and I encountered significant bugs with the undo stack (namely hitting 'u' would sometimes take out the last 10-15 changes instead of just one). IDEAvim would randomly go completely unresponsive for me, sometimes requiring just re-opening the file and sometimes requiring a restart of the entire IDE. And last I checked the Xcode plugin requires re-signing the entire binary with a self-signed certificate because the new plugin system won't support modal editing. I was quite happy with neovintageous in Sublime, as well as Sublime's excellent performance in general, but no matter how many plugins I installed it could never seem to come close to the smarts of the other tools I was using. Ultimately I just arrived the the conclusion that I'm never going to be happy with any editor and decided to make the best of what I could with a consistent set of keybindings across the tools I use. That said, every time I edit my hosts file or something on a remote server and reach for vim, I wonder if I made the wrong choice. I'm really hoping Language Server Protocol becomes the standard and we reach the point where it no longer matters what editor we use.
- stOneskull 7y agoReading about that undo bug gave me a knot in my tummy. Damn.
- bobbylarrybobby 7y ago
- Accacin 7y agoI'm a React Developer that uses Vim, and whilst I have reduced my .vimrc down a lot since I started playing with vim, I still use about 15 plugins such as Deoplete, tern, ale, fzf, a language pack (I'm always messing around learning new languages), and then a selection of Tim Pope addons. At 120 lines, I consider my .vimrc quite light.. Although I'm not sure what others will think.
- jeremyjh 7y agoI used to shell into servers a lot and open vim to edit files, so I'm quite comfortable with a sparse configuration. But when I'm developing software, I want features, and these days I spend most of my time doing development. My current setup is I use Spacemacs for development work, but I use a very minimalist vim configuration for quick edits. This gives me the best of both worlds - very quick, responsive editor that I can use reliably and efficiently. And a good development experience that is easy on my fingers.
- deleted 7y ago[deleted]
- andrewstuart 7y agoI started my programming career determined to be a vim guru and do all my programming with vim. This was misguided and after a year of wasted productivity and wasted time fiddling with plugs and dealing with broken stuff (surely by my own hand) I switched to a professional IDE and I rapidly became a much better developer. I use vim constantly now but in it's most plain vanilla form, for the purpose of editing files when logged into Linux systems. That's all I use it for. I really wish however that every Linux system had a clone of the old DOS edit command which was beautifully simply and straightforward and met most needs highly intuitively. As a sidenote: can I just say that PyCharm is an incredible IDE and I can recommend it heartily to anyone. If your job is programming then it is many times over worth paying the money for the professional edition.
- ryacko 7y agoI use mcedit, it is part of midnight commander, usually available as mc. Excellent for editing config files through the terminal.
- SEJeff 7y agoTo each their own! I'm a very effective python AND go programmer / sysadmin who uses vim for most all of my IDE stuff. I've also managed Linux professionally since 2005 and played with it since 1998 so it isn't for everyone. My main vim plugins for this use case: * go.vim * nerdtree * git-gutter * YouCompleteMe * syntastic + flake8 * black.vim # python equiv of gofmt This is only for my workstations. I prefer vanilla configs for servers.
- AlexeyBrin 7y ago> I really wish however that every Linux system had a clone of the old DOS edit command which was beautifully simply and straightforward and met most needs highly intuitively. The nano editor experience is pretty close to the old DOS edit feeling.
- rhizome 7y agonano, pico, joe, depending on which carrier package you hvae installed. they all have the ^s ^x status bar type interface.
- deleted 7y ago[deleted]
- anaphor 7y agoThis video of a talk that Bram Moolenaar (the author of vim) gave at Google in 2007 has some pretty good advice. https://www.youtube.com/watch?v=eX9m3g5J-XA https://www.youtube.com/watch?v=eX9m3g5J-XA Mainly the idea is to not try and learn everything about vim, but instead pay attention to how you use it, and find things that are inefficient or could be easier, and then go figure out how to make vim do that thing more efficiently.
- goemacs 7y agoEveryone is missing the most important contribution of vi[m]. Vim defines an ergonomic set of rules for text navigation and manipulation, often implemented by very simple key bindings. This is wonderful. The Vim editor implements all these rules, but the Vim's plugin ecosystem is a disaster. Hacks pile upon hacks. Noone understand Vim scripts. Vim scripts are easily broken and do not interoperate well with other scripts. These set of rules can be easily implemented by other editors, as evidenced by many IDEs supporting Vim key bindings. Although these editors may not support all the above rules, they are pretty close (see the evil plugin in Emacs) and can replace Vim in daily usage. The editor war is over. Vim's keybinding is superior. But the longevity of a text editor lies in its extensibility. For this, Emacs wins in the long run.
- uberduper 7y agoI very recently set out to start bringing my vimrc with me when logging into remote hosts and came up with this. Host * !github.com RemoteCommand echo -e "syntax enable\nset ts=2\nset sw=2\n" > ~/.tmp_vimrc && bash -c 'set -a; vi() { vim -u ~/.tmp_vimrc "$@"; }; set +a;bash -l' RequestTTY yes It gets ugly when you get a lot of options in there. It's possible to just curl or scp something in place via RemoteCommand above, or `source: https://foo.io/vimrc` https://foo.io/vimrc` but my security paranoia lead me to this instead.
- jacobparker 7y agoCurl it, check the sha256 of the download vs a hardcoded one and then source it if they match? The URL you curl could be a GitHub blob URL (theoretically immutable) but if you check the hash you’re not trusting GH for anything other than availability.
- jcutrell 7y agoI'm deep into vim and have recently seen some things that colleagues are doing with VS Code. I have to admit, I'm tempted. But I'm so used to vim + tmux now, it's hard to imagine working with something different.
- b3b0p 7y agoI don't limit my plugin usage on purpose. I will add a plugin if it adds a value I can make use of. Disregarding color schemes here is my list: * FZF * COC (it provides a lot of QoL, functionality of modern editors with it's plugins using an easy seamless yarn add) * Sandwich Very few customizations. Mostly vanilla. Regarding colors, I love to try new ones all the time and my current is scery followed by Gruvbox, and Dracula because they work in Terminal.app and iTerm. They also look nice / easy-on-the-eyes. My friend at work has a thing for Nord and another loves Monokai Pro, but apparently the author wants money for it...? Which seems... different.
- cryptonector 7y agoThere's only one thing I need to improve my VIM experience: a way to set style options (and search paths) for each git workspace. I've yet to find a non-hairy way to do this. Help!
- Seb-C 7y ago.editorconfig files works well for me for the essential styles. And it can be useful to the other team members as well.
- runn1ng 7y agoJust finished reading this book, “Ed Mastery”. I can’t tell if it’s “worth the money” - not sure if learning ed(1) is worth anything- but it’s fun to see the design decisions made way back in the 70s still being present in vim https://www.amazon.com/Ed-Mastery-Standard-Unix-Editor-ebook/dp/B07BVBSDNZ https://www.amazon.com/Ed-Mastery-Standard-Unix-Editor-ebook...
- bayesian_horse 7y agoI've been using Vim for a couple of years now and I almost can't stand any text editor without VIM-like extension. However, recently I took a liking to Visual Studio Code (with VIM bindings of course). Yes I know, it's terribly bloated and consumes RAM like nobody's business, but the Browser DOM arguably is the successor of terminal emulation in terms of ubiquitous interfaces, and VSC does use the additional power quite smartly. There are graphical hints and tweaks which are next to impossible to achieve in a terminal emulation. I'll still use VIM all the time, especially remotely. But VSC does provide similar extensibility. I somehow wish there was something like VSC, based on web/electron, but more like a Texteditor, less like an IDE. And preferably not controlled by a huge corporation.
- cvshepherd 7y agohave you had a look at https://github.com/onivim/oni https://github.com/onivim/oni ? heard good things about it.
- brynjolf 7y agoThere are just so many bugs with Vim implementation in VSC. For example the two undo systems can lose sync and randomly delete half the document.
- bayesian_horse 7y agoThat hasn't happened to me, so far. But yes, it can be a bit buggy.
- xvilka 7y agoIn addition to the [Neo]Vim, I can also recommend vifm[1] - vi-like file manager. It supports vi-like key bindings, similar configuration, and color schemes[2]. Moreover, it can be integrated[3] with Vim itself. [1] https://github.com/vifm/vifm https://github.com/vifm/vifm [2] https://vifm.info/colorschemes.shtml https://vifm.info/colorschemes.shtml [3] https://github.com/vifm/vifm.vim https://github.com/vifm/vifm.vim
- adembudak 7y agoShameless plug: A few days ago a write a quick reference for Vim too, checkout https://github.com/p1v0t/Doctor https://github.com/p1v0t/Doctor
- djhworld 7y agoI don't think I'll ever be able to internalise all the features of Vim. I've been using it for > 10 years now but I still find myself learning (and sadly forgetting) new features when reading articles like these.
- passthejoe 7y agoDon't lead off with the history. #protip