4

I know the title should have been "God can you share all the knowledge in the Universe please ?"

But anyway it doesn't hurt if I ask...

Is there any compiled complete list of all VIM commands ? I want this by some reasons:

  • I would like to know how little do I know about VIM
  • I would like to groups commands I would like to learn/would be useful to me
  • I may find some very interesting, less common commands that I wouldn't find any other way

I mean a long full list of all commands in one file. Like, ideally one command per line.

I know there are several files in help that list all commands completely, but in order to obtain a full list I would wave to compare intersecting lists and a huge list of texts and complementary infos.

If things like Neovim are possible, someone has to have a complete list somewhere or how people would know what to implement ?

Edit

With @mattb answer I could do what I wanted: compile a full list one command per line. Here is the link to the list in Pastebin: https://pastebin.com/xBRYzAw0

2
  • To the moderators: I couldn't think of a tag that would fit my question, so I used vim-development. Feel free to change it to a better one if you know of any. Commented Jan 7, 2022 at 22:53
  • Thanks, the list might be useful
    – eyal karni
    Commented Jan 8, 2022 at 8:42

2 Answers 2

5

For all the gory details

From :help index:

This file contains a list of all commands for each mode, with a tag and a short description. The lists are sorted on ASCII value.

From :help function-list:

There are many functions. We will mention them here, grouped by what they are used for. You can find an alphabetical list [with ':help functions']. Use CTRL-] on the function name to jump to detailed help on it.

From :help reference_toc:

REFERENCE MANUAL: These files explain every detail of Vim.

For an overview

For a start there's :help quickref which gives an

Overview of the most common commands you will use

That page has on the order of 1000 commands, settings, and... stuff.

And of course, from :help

BASIC:
quickref   Overview of the most common commands you will use
tutor      30-minute interactive course for beginners
copying    About copyrights
iccf       Helping poor children in Uganda
sponsor    Sponsor Vim development, become a registered Vim user
www        Vim on the World Wide Web
bugs       Where to send bug reports

Getting Started ~
|usr_01.txt|  About the manuals
|usr_02.txt|  The first steps in Vim
|usr_03.txt|  Moving around
|usr_04.txt|  Making small changes
|usr_05.txt|  Set your settings
|usr_06.txt|  Using syntax highlighting
|usr_07.txt|  Editing more than one file
|usr_08.txt|  Splitting windows
|usr_09.txt|  Using the GUI
|usr_10.txt|  Making big changes
|usr_11.txt|  Recovering from a crash
|usr_12.txt|  Clever tricks

Editing Effectively ~
|usr_20.txt|  Typing command-line commands quickly
|usr_21.txt|  Go away and come back
|usr_22.txt|  Finding the file to edit
|usr_23.txt|  Editing other files
|usr_24.txt|  Inserting quickly
|usr_25.txt|  Editing formatted text
|usr_26.txt|  Repeating
|usr_27.txt|  Search commands and patterns
|usr_28.txt|  Folding
|usr_29.txt|  Moving through programs
|usr_30.txt|  Editing programs
|usr_31.txt|  Exploiting the GUI
|usr_32.txt|  The undo tree

Tuning Vim ~
|usr_40.txt|  Make new commands
|usr_41.txt|  Write a Vim script
|usr_42.txt|  Add new menus
|usr_43.txt|  Using filetypes
|usr_44.txt|  Your own syntax highlighted
|usr_45.txt|  Select your language

Making Vim Run ~
|usr_90.txt|  Installing Vim
7
  • So what you're basically saying is that I have to compile the full list myself. Because as you probably know, many things in that lists aren't commands and there are many intersected commands between those lists. It's not a matter of just joining those help files... and the sheer size of VIM makes creating a full list from those files a prohibited effort. Commented Jan 8, 2022 at 0:11
  • 1
    @NelsonTeixeira Ah I see what you mean by commands now - and this exact thing does exist in vim's help. I'll update the answer.
    – mattb
    Commented Jan 8, 2022 at 1:05
  • 3
    I also saw that I wan't clear enough in the question. Improved it to clarify what I want. Commented Jan 8, 2022 at 1:52
  • 1
    I've seen and used at least once pretty much 100% of the commands. But I've read the help pages "cover to cover", play Vim golf, and am a major contributor here. So it's possible but you need to be a fanatic. :) (All that being said, I don't have 100% of them memorized. Some are so specialized that the need to use them rarely if ever comes up. Taking a wild guess I'd say I know at least 80% off the top of my head and know that the functionality exists for at least half of the remainder.)
    – B Layer
    Commented Jan 8, 2022 at 5:12
  • 1
    @NelsonTeixeira don't forget all the custom remaps, functions and plugins :)
    – mattb
    Commented Jan 8, 2022 at 10:29
1

By all means the most authoritative source is Vim source code.

To generate full list of known commands in runtime:

:put =getcompletion('', 'command')

But note that the list includes both builtin and user-defined commands. As well as some constructs that are only allowed inside script files.

2
  • 1
    Interesting. In my vim that command generates a list of 596 lines. While I got the number 1278 command from index.txt. Commented Jan 8, 2022 at 20:49
  • I believe getcompletion('', 'command') will only list Ex commands (the ones you enter in the Command-line, after pressing :), it will not list Normal-mode commands, or keystrokes that execute special actions in Insert-mode.
    – filbranden
    Commented Jan 11, 2022 at 2:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.