DEV Community

Yasuhiro Matsumoto
Yasuhiro Matsumoto

Posted on

Why Vim does not fade out?

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


Some people says:

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


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.


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


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


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


  • 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.


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.


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.

Top comments (6)

jorinvo profile image

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.

mattn profile image
Yasuhiro Matsumoto

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

jorinvo profile image

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>

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>
rossijonas profile image
Jonas B. R.


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 !


mattn profile image
Yasuhiro Matsumoto

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