Multiple commands on same line
I've been trying to find something that will let me run multiple commands on the same line in Vim, akin to using semicolons to separate commands in 开发者_C百科*nix systems or &
in Windows. Is there a way to do this?
A bar |
will allow you to do this. From :help :bar
'|'
can be used to separate commands, so you can give multiple commands in one line. If you want to use'|'
in an argument, precede it with'\'
.
Example:
:echo "hello" | echo "goodbye"
Output:
hello
goodbye
NB: You may find that your ~/.vimrc
doesn't support mapping |
, or \|
. In these cases, try using <bar>
instead.
Put <CR>
(Carriage Return/Enter) between and after commands. For example:
map <F5> :w<CR>:!make && ./run<CR>
Don't use |
because:
Some commands have problems if you use
|
after them|
does not work consistently in configuration files, see:help map_bar
You could define a function that executes your commands.
function Func()
:command
:command2
endfunction
And place this in, for example, your vimrc. Run the function with
exec Func()
The command seperator in vim is |
.
Thought this might help someone trying to do substitutions in a chain and one fails
from a comment
%s/word/newword/ge | %s/word2/newword2/ge
You can use the e
flag to ignore the error when the string is not found.
I've always used ^J
to separate multiple commands by pressing Ctrl+v, Ctrl+j.
You can create a new file, and write your commands on it. Then :so %
, which means source current file.
精彩评论