loading...

Why Vim does not fade out?

mattn profile image Yasuhiro Matsumoto ・7 min read

Have you ever thought about why Vim is still used by many people for more than 20 years and did not fade out?

Reputations

Some people says:

I do not understand why there are people continue to use a fossil-like text editor.

fossil

Certainly, Vim is character-based text editor. if Vim was same as it was 20 years ago, your opinion would be correct. But you have to know that Vim is changing still now.

In the fact

In the fact, Vim improved many features without stopping.

Version5

  • Add some GUIs including Win32 GUI
  • Python/Perl infterface
  • And many useful features

Version6

  • Support UTF-8
  • Vertical split
  • Netrw
  • Server-Client
  • Quickfix
  • And many useful features

Version7

  • Spell checking
  • Support MzScheme
  • omni-completion
  • Tab pages
  • vimgrep
  • And many useful features

Version8

  • Asynchronous I/O support, channels and jobs, timers
  • Partial function, Lambda/Closure function
  • Packaging
  • DirectX drawing
  • GTK+ 3 support

Recently, Vim add new feature:terminal. It is possible to open terminal window in Vim. Run the shell, watching log files, sending e-mail, start Emacs on the :terminal. This feature gave us a lot of possibilities.

terminal

This feature was noted as not-good-design for Vim in :help design-not. But the text is written in 20 years ago. Can you say that the design written in 20 years ago is always correct even in nowadays? Bram Moolenaar who is author of Vim decided to change the doc.

Vim is not a shell or an Operating System. It does provide a terminal window, in which you can run a shell or debugger. E.g. to be able to do this over an ssh connection. But if you don't need a text editor with that it is out of scope (use something like screen or tmux instead).

Interestingly, support for :terminal includes Windows. (FYI: I implemented windows :terminal, yay!)

terminal on Windows

You can use :terminal on Windows GUI/CUI both to run Windows command-prompt. This doesn't depend on Cygwin/msys2. Just require winpty.dll and winpty-agent.exe, for the description, see the bottom of :help Terminal-mode. You can use one window in Vim as if it is command prompt. To know more features of terminal, see :help terminal.

Contributors

And you've better to know how may contributors send patches to vim-dev, we are discussing to fix bugs and add new features. For example, do you know how many commits in this october 2017?

This include adding features and fixing bugs. Can you say that development status of Vim is not active? Vim will continue to change and probably will not become a fossil.

Posted on by:

mattn profile

Yasuhiro Matsumoto

@mattn

System Engineer. OSS freak. Vim, Golang, C/C++, Java, JavaScript/HTML/CSS, C#.

Discussion

markdown guide
 

Still love vim!
Thank you @mattn for all your awesome work on vim and go projects!
:terminal is the biggest reason why I am using NeoVim at the moment. I really like navigating the terminal output with vim instead of using the mouse to copy text. Maybe I can switch back to standard vim soon now that it supports :terminal.

 

I'm still not a heavy user of :terminal. I'm investigating what I can do on :terminal. :)

 

The best about :terminal for me is that I can use vim controls to navigate and search output and also visual mode for copying output.

Also really nice is that you can define shortcuts or macros that execute things in the terminal.
When I run :terminal in a vertical split I like to use it for things like go test. Then I define a macro like this qq^Li^P^M^[^Hq and I can use @q to re run the tests.

I think it's also important to allow ESC key to get out of terminal mode:

" `ESC` in terminal to exit insert mode
" Can still escape in nested vim using ctrl-c
if has('nvim')
  tnoremap <esc> <C-\><C-n>
endif

And I use these shortcuts to quickly open a terminal:

" Go terminal - Open a terminal v-split
nnoremap gt :term<Space>
" Opens terminal and runs selction as cmd
vnoremap gt "ty<C-W>v:term <C-R>t<CR>
 

DISCLAIMER FOR VIM NEWBIES:

I started to write quick tips and tutorials for Vim beginners, to help them deal with specific configs and get excited with tricks you can use.

You can check it on medium.com/vim-drops !

Cheers!✌️👨‍💻⌨️👩‍💻✌️

 

indeed. but I don't know Bill Joy have same design-not. :)