I love both Vim and Emacs, but I think they have different use cases.
For example, I find it much more productive to use Emacs for writing heavy tasks, where you'll spend a lot of time in the editor. Such as coding, writing notes, a book, an article, a paper, etc.
To me, these tasks suffer from having to switch back and forth between modes, and emacs just provides more features for them and can be customized endlessly to your specifics.
Vim on the other hand shines for quick edits, touch ups, or reading, viewing and analysing use cases.
Its best feature is performance. It starts fast, runs fast, can handle big files, consumes little memory and is small in size. This is ideal on a server, or as a default editor. I wouldn't want to have Emacs for these, it's too heavy.
For editing small parts of an existing file, the modal editing is also best. It makes navigation front and center, which is what you want, quickly find the part to edit, and quickly edit it, done.
I personally like it this way. I don't actually want Vim to grow to approach Emacs in customization. I also don't think anything can, the fundamental design of Emacs as a Lisp REPL with an editor loaded into it just can't be beat for that.
Both editors are fully capable, it really depends on personal preferences: what they see as a minor if any annoyance: multi-key presses or two-mode editing. I use vim and it works great for me for large tasks as well. I never developed a pianist's finger agility for multi-key commands (those famous Esc-Meta-Alt-Ctl-Shift types). If I did I probably would have loved Emacs more than vim.
$ alias cs='emacsclient -nw'
$ emacs --daemon
$ cs notes.txt
Emacs starts up pretty quick for me. Kind of agree though, especially about the modal editing and quickly navigating. I often start up vim when I want to edit a word or two at a specific line fast. I switch over to emacs if I end up editing multiple lines and organizing the text.
When I install Gentoo or Arch, one of the first things I install is vim and one of the last things I install is emacs because that's where I do all my work.
I use emacs for almost everything, but for me nano is the lightweight gnu editor I use when I would use vi(m)... of course, knowing vim is important because some systems only have it. (but with emacs I can just edit files remotely anyway)
I have emacs running as a systemd service, so I never notice its real start time.
> I don't actually want Vim to grow to approach Emacs in customization.
It already has. The difference is that it doesn't come with very many packages, and packages aren't all written in elisp.
Neovim will end up with a similar amount of packages eventually. A lot of those packages will be written in Lua, making them relatively fast and lightweight.
(Neo)Vim doesn't lend itself to total customizability, since its foundation is dependent on its default keybindings.
I spent two weeks trying out the evil mode in my daily workflow. Some things were much more user-friendly than vim but at many points the rough edges of the vim emulation on top of emacs showed its bare spots. Finally, lack of support for a good database client bought me back to spacevim which is a similar space-driven IDE written in native vim.
I find spacemacs interesting, but it feels like there's not a lot of things happening in the community. The news section on the website is old (seems from 2016?), there's no user forum, commits on github are a couple of months old. Am I missing somthing?
I used to be a heavy emacs user but decided to just learn vim because vi is practically available on everything whereas emacs isn't. The investment paid off big time. Unfortunately, I forgot my way around emacs, which can make it difficult on systems where emacs is the default EDITOR.
what was the editor that reversed vims syntax/grammar?
instead of d2w (delete two words) you could type something like w2d (words, two, delete). This way you can select first, modify later and most importantly guide visually before execution.
I think you where able to type something like w2u3d (words, two, no undo it's actually 3 i see now, yes delete those).
I wished evil emacs did that. I mostly use org-mode and do little programming and I constantly get the number of words to delete wrong.
edit: I think I just need to learn to use visual mode more and be quire alright already
"...It was a world that is now extinct. People don’t know that vi was written for a world that doesn’t exist anymore..."
And every time I use it I'm reminded that there is this
devops/automation movement against interactivity with systems and that this editor is symbolic of (and best suited to) an operator culture..which is also dying if not defunct.
> Target notes that in the days before GNU Emacs, it could cost hundreds of dollars to install Emacs. “So vi became enormously popular.”
I haven't even considered there was an emacs before gnu emacs.
... Ctrl + F neo ...
Damn, no mention of neovim. I was hoping they'd have mentioned it. Feels like an oversight given the completeness of the rest of the pre-vi, vi, and vim history.
It misses out a lot of them. There are at least ex; vi; stevie; elvis; calvin; elwin; javi; lemmy; pvic; trived; vigor; vile; vip; virus; winvi; xvi; vim; nvi; and nvim.
While I don't believe neovim is still a complete refactor, particulary with regards to stability, I also don't think it gets mentioned enough as a competitive advantage of Vim landscape.
With it, Vim now basically has very robust, modern, async, understood-by-many-contributors, sanely-scriptable, extensible, embeddable version that'll propel it far into future.
I try like every editor, on a regular basis. I was heavy into Emacs for about half a year. But I always come back to (neo)vi(m) eventually.
Main reasons for me are that it is fast, easy to use and I can move around and edit at a tremendous speed. It’s like working on a block of marble, carefully crafting.
I made it past the first paragraph playing fast and loose with vim's heritage (it's a clone, not a porr or a fork) but when it directly referred to Bill Joy as the creator of vim in the second paragraph, it became too hard to keep reading.
I feel almost ashamed to admit it, but I've never used vim for work. I use nano for quick edits and sublime text (or rmate+sublime text) for everything else. Maybe I haven't found the right use case yet.
1) Learn what's going on, press q to start macro mode, and then press a letter to name your macro. Do stuff and when you're done press q again. You can then repeat that macro with @x where x is whatever letter you named your macro. @@ repeats it, and 74@x does it 74 times. It's (very occasionally) awesomely powerful.
Is there a vim with support for large files, i.e. only reading a chunk/window of data at a time as I browse?
My use case is that I sometimes need to inspect large CSV files and vim will take a long time and then abort saying that it couldn't complete loading the file.
I guess I could use
head -n 100 data.CSV | vim
but it would be nice if I could scroll through the file in vim.
I think less does exactly what you're asking for, unless you need to edit the file. less and vim have similar keybindings. For multi-gigabyte files, you may want to disable line counting and perhaps seek ahead via command line options to make startup instantaneous.
`vim -n` should avoid the initial swap file. Or was it `-b` that triggered in-place editing?
You might want to tune `set syn_maxcol=256` to avoid highlighting or disable syntax completely. It might help to set the filetype to something else for CSV. If plugins slow you down use `-u NONE`.
Found it interesting the VIM started off as VI Imitation, before becoming VI Improved.
I think the article really meant "A look at VI", since it was about VI, despite starting with "Vim creator Bill Joy told Linux Magazine." Given that Bill Joy created VI, not VIM, and the article goes on to discuss VI primarily.
I preferred Sinclair Target’s own history of ed,em,ex,vi,vim [1] (recently discussed on Hacker News [2]) on which much of this article was based.
There were a few interesting things that I learned from this article:
* lower case letters had only recently been added to terminals. I had always presumed that terminals used the same technology as typewriters, i.e., use the Shift key for switching between upper and lower case.
* vi was designed to be “usable over a 300 baud modem”. I’ve found that this aspect makes vi/vim useful over slow network connections – or when a remote server has runaway processes resulting in SSH being slow and unresponsive. It’s not always true that this is a “world that doesn’t exist anymore”. That world still pops into existence for brief moments of (stressful) time.
Video Studio Code has become my favorite editor way ahead of Vim. I've used Vim for many years, but I'd miss the intellisense insights of VSC too much to go back to Vim.
I also actively use a Lisp/Scheme dialect on the side, but I wouldn't want to manage the complexity of Emacs.
You know this (lack of good intelligence/autocomplete) has been a thorn for him for ages. It is 2018 and I wonder why code completion/ast analysis/indexing is still not a easily usable service/daemon yet?
8.0 was the first major release in 20 years? I find that claim highly suspect.
... search ...
Judging by the timestamps on the vim ftp server, 7.0 was released in 2006. 6.0 in 2001. 5.0 in 1998. That's about how I remember it, although I don't think I got on to the 5 series until after 2000. Anyway, that's four major releases in 20 years.
Because I learned vi back in the day (yes, before cursor keys were supported!), I never quite got used to typing that extra "m". What are the biggest improvements of vim over vi?
On many systems vi is a link to vim. My ubuntu laptop for example:
$ which vi
/usr/bin/vi
$ file /usr/bin/vi
/usr/bin/vi: symbolic link to /etc/alternatives/vi
$ file /etc/alternatives/vi
/etc/alternatives/vi: symbolic link to /usr/bin/vim.nox
One thing that springs to mind, I don't believe native vi supports ":split"? Does it do syntax highlighting?
The manpage on my laptop says
There are a lot of enhancements above Vi: multi level undo, multi windows and buffers,
syntax highlighting, command line editing, filename completion, on-line help, visual
selection, etc.. See ":help vi_diff.txt" for a summary of the differences between Vim
and Vi.
vi (and vim) are still really relevant, if you have ever tried editing config files on IoT devices such as remote condition monitoring systems over a satellite link or a mobile link.
From the article
"you’ve got to remember that I was trying to make it usable over a 300 baud modem”
[+] [-] didibus|7 years ago|reply
For example, I find it much more productive to use Emacs for writing heavy tasks, where you'll spend a lot of time in the editor. Such as coding, writing notes, a book, an article, a paper, etc.
To me, these tasks suffer from having to switch back and forth between modes, and emacs just provides more features for them and can be customized endlessly to your specifics.
Vim on the other hand shines for quick edits, touch ups, or reading, viewing and analysing use cases.
Its best feature is performance. It starts fast, runs fast, can handle big files, consumes little memory and is small in size. This is ideal on a server, or as a default editor. I wouldn't want to have Emacs for these, it's too heavy.
For editing small parts of an existing file, the modal editing is also best. It makes navigation front and center, which is what you want, quickly find the part to edit, and quickly edit it, done.
I personally like it this way. I don't actually want Vim to grow to approach Emacs in customization. I also don't think anything can, the fundamental design of Emacs as a Lisp REPL with an editor loaded into it just can't be beat for that.
[+] [-] ptero|7 years ago|reply
[+] [-] newen|7 years ago|reply
[+] [-] dmortin|7 years ago|reply
[+] [-] another-cuppa|7 years ago|reply
[+] [-] arminiusreturns|7 years ago|reply
[+] [-] thomastjeffery|7 years ago|reply
I have emacs running as a systemd service, so I never notice its real start time.
> I don't actually want Vim to grow to approach Emacs in customization.
It already has. The difference is that it doesn't come with very many packages, and packages aren't all written in elisp.
Neovim will end up with a similar amount of packages eventually. A lot of those packages will be written in Lua, making them relatively fast and lightweight.
(Neo)Vim doesn't lend itself to total customizability, since its foundation is dependent on its default keybindings.
[+] [-] krn|7 years ago|reply
Spacemacs[1] is a combination of both of them.
[1] http://spacemacs.org/
[+] [-] pweissbrod|7 years ago|reply
[+] [-] raphinou|7 years ago|reply
[+] [-] nunez|7 years ago|reply
[+] [-] anotheryou|7 years ago|reply
instead of d2w (delete two words) you could type something like w2d (words, two, delete). This way you can select first, modify later and most importantly guide visually before execution.
I think you where able to type something like w2u3d (words, two, no undo it's actually 3 i see now, yes delete those).
I wished evil emacs did that. I mostly use org-mode and do little programming and I constantly get the number of words to delete wrong.
edit: I think I just need to learn to use visual mode more and be quire alright already
[+] [-] nickloewen|7 years ago|reply
[+] [-] muthdra|7 years ago|reply
[+] [-] needlepont|7 years ago|reply
And every time I use it I'm reminded that there is this devops/automation movement against interactivity with systems and that this editor is symbolic of (and best suited to) an operator culture..which is also dying if not defunct.
[+] [-] kjeetgill|7 years ago|reply
I haven't even considered there was an emacs before gnu emacs.
... Ctrl + F neo ...
Damn, no mention of neovim. I was hoping they'd have mentioned it. Feels like an oversight given the completeness of the rest of the pre-vi, vi, and vim history.
[+] [-] JdeBP|7 years ago|reply
* http://guckes.net/vi/clones.php3
[+] [-] synthmeat|7 years ago|reply
With it, Vim now basically has very robust, modern, async, understood-by-many-contributors, sanely-scriptable, extensible, embeddable version that'll propel it far into future.
I'm bullish on Vim.
[+] [-] cygned|7 years ago|reply
Main reasons for me are that it is fast, easy to use and I can move around and edit at a tremendous speed. It’s like working on a block of marble, carefully crafting.
[+] [-] dannypgh|7 years ago|reply
[+] [-] ptero|7 years ago|reply
[+] [-] schindlabua|7 years ago|reply
[+] [-] philjohn|7 years ago|reply
[+] [-] dhimes|7 years ago|reply
[+] [-] Noumenon72|7 years ago|reply
[+] [-] AndrewOMartin|7 years ago|reply
1) Learn what's going on, press q to start macro mode, and then press a letter to name your macro. Do stuff and when you're done press q again. You can then repeat that macro with @x where x is whatever letter you named your macro. @@ repeats it, and 74@x does it 74 times. It's (very occasionally) awesomely powerful.
2) echo "noremap q <nop>" >> ~/.vimrc
[+] [-] megous|7 years ago|reply
[+] [-] bitofhope|7 years ago|reply
[+] [-] snthpy|7 years ago|reply
My use case is that I sometimes need to inspect large CSV files and vim will take a long time and then abort saying that it couldn't complete loading the file.
I guess I could use
but it would be nice if I could scroll through the file in vim.[+] [-] copperx|7 years ago|reply
[+] [-] oftenwrong|7 years ago|reply
[+] [-] cuillevel3|7 years ago|reply
You might want to tune `set syn_maxcol=256` to avoid highlighting or disable syntax completely. It might help to set the filetype to something else for CSV. If plugins slow you down use `-u NONE`.
[+] [-] u801e|7 years ago|reply
> head -n 100 data.CSV
You could do something similar with
[+] [-] hnbear|7 years ago|reply
I think the article really meant "A look at VI", since it was about VI, despite starting with "Vim creator Bill Joy told Linux Magazine." Given that Bill Joy created VI, not VIM, and the article goes on to discuss VI primarily.
[+] [-] Anthony-G|7 years ago|reply
There were a few interesting things that I learned from this article:
* lower case letters had only recently been added to terminals. I had always presumed that terminals used the same technology as typewriters, i.e., use the Shift key for switching between upper and lower case.
* vi was designed to be “usable over a 300 baud modem”. I’ve found that this aspect makes vi/vim useful over slow network connections – or when a remote server has runaway processes resulting in SSH being slow and unresponsive. It’s not always true that this is a “world that doesn’t exist anymore”. That world still pops into existence for brief moments of (stressful) time.
[1] https://twobithistory.org/2018/08/05/where-vim-came-from.htm...
[2] https://news.ycombinator.com/item?id=17696023
[+] [-] threatofrain|7 years ago|reply
I also actively use a Lisp/Scheme dialect on the side, but I wouldn't want to manage the complexity of Emacs.
[+] [-] partycoder|7 years ago|reply
[+] [-] mercer|7 years ago|reply
[+] [-] flashgordon|7 years ago|reply
[+] [-] xvilka|7 years ago|reply
[+] [-] sevensor|7 years ago|reply
... search ...
Judging by the timestamps on the vim ftp server, 7.0 was released in 2006. 6.0 in 2001. 5.0 in 1998. That's about how I remember it, although I don't think I got on to the 5 series until after 2000. Anyway, that's four major releases in 20 years.
[+] [-] abraham|7 years ago|reply
> This the first major Vim release in ten years.
[+] [-] wheresvic1|7 years ago|reply
[+] [-] holmberd|7 years ago|reply
[+] [-] 3chelon|7 years ago|reply
[+] [-] isostatic|7 years ago|reply
The manpage on my laptop says
Full list at https://github.com/vim/vim/blob/master/runtime/doc/vi_diff.t... (which has nice syntax highlighting in vim)[+] [-] baldfat|7 years ago|reply
I use Microsoft Code with Vim extension and RStudio with Vim option turned on. I am very happy with MS Code and sort of with RStudio's take.
[+] [-] steve_gh|7 years ago|reply
From the article "you’ve got to remember that I was trying to make it usable over a 300 baud modem”
Awesome piece of design. Thank you :-)