我一直试图找到一些东西,可以让我在Vim的同一行上运行多个命令,类似于在*nix系统中使用分号分隔命令或在Windows中使用&。有办法做到这一点吗?
&
vim中的命令分隔符是|。
|
|条将允许你这样做。从:help :bar
:help :bar
'|'可用于分离命令,因此您可以在一个命令中给出多个命令 线。如果你想在参数中使用'|',在它前面加上'\'.
'|'
'\'
例子:
:echo "hello" | echo "goodbye"
输出:
hello goodbye
注意:你可能会发现你的~/.vimrc不支持映射|或\|。在这些情况下,尝试使用<bar>代替。
~/.vimrc
\|
<bar>
我一直使用^J通过按Ctrl+v, Ctrl+j来分隔多个命令。
^J
您可以定义一个执行命令的函数。
function Func() :command :command2 endfunction
把这个放到,比如说,你的vimrc。使用
exec Func()
在命令之间和之后放置<CR>(回车回车)。例如:
<CR>
map <F5> :w<CR>:!make && ./run<CR>
不要使用|,因为:
如果在某些命令后面使用|,则会出现问题
|在配置文件中不能一致工作,请参阅:help map_bar
:help map_bar
您可以创建一个新文件,并在其中写入您的命令。然后是:so %,表示源当前文件。
:so %
我想这可能会帮助一些人在链上做替换,一个失败了
从评论
%s/word/newword/ge | %s/word2/newword2/ge
当没有找到字符串时,可以使用e标志来忽略错误。
e