VIM - multiple commands on same line

不羁的心 提交于 2019-12-17 15:00:05

问题


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 *nix systems or & in windows. Is there a way to do this?


回答1:


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.




回答2:


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




回答3:


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()



回答4:


The command seperator in vim is |.




回答5:


I've always used ^J to separate multiple commands by pressing Ctrl+v, Ctrl+j.




回答6:


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.




回答7:


You can create a new file, and write your commands on it. Then :so %, which means source current file.



来源:https://stackoverflow.com/questions/3249275/vim-multiple-commands-on-same-line

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!