How to add a command in vim editor?
Solution 1:
Yes. Vim documentation, section 40.2, Command-line mappings:
The Vim editor enables you to define your own commands. You execute these commands just like any other Command-line mode command. To define a command, use the ":command" command, as follows:
:command DeleteFirst 1delete
Now when you execute the command ":DeleteFirst" Vim executes ":1delete", which deletes the first line.
Note: User-defined commands must start with a capital letter. You cannot use ":X", ":Next" and ":Print". The underscore cannot be used! You can use digits, but this is discouraged.
Put that line in your ~/.vimrc
(minus the inital :
of course) and it will be defined every time you start vim. Also, use %:t
to make reference to the file being edited (writing ! gcc %:t
gets replaced by ! gcc foo.c
).
If you'd only like it to be defined for the one file, or for certain files, you want an autocommand.
Solution 2:
Vim already has support for Makefiles (:make). If you create one for your source, you can specify in it what you want done. Also, through ctags, Vim will be able to iterate through any errors found during compilation.
Solution 3:
Add a user defined vi editor command:
This will make it so that when the user types :Legend
in normal mode, a block of text is added under the cursor.
Step 1: Put this line into a file named ~/legend_header.txt`
this text will be added
Step 2: Put this command into your ~/.vimrc file (if the file doesn't exist, create it):
"The following command puts the contents of ~/legend_header.txt
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt
Step 3: Restart vi for the changes to take effect. You're done.
Test it
Step 1: Open a new file in vi. Be in the default "normal mode" in vi. Type :Legend
Step 2: The contents of ~/legend_header.txt
should be added where the cursor is.