我一直试图找到能让我在vim的同一行上运行多个命令的东西,类似于使用分号分隔* nix系统中的命令或Windows中的&
。有没有办法做到这一点?
答案 0 :(得分:221)
栏|
将允许您执行此操作。来自:help :bar
'|'
可用于分隔命令,因此您可以在一个命令中提供多个命令 线。如果要在参数中使用'|'
,请在其前面加'\'
。
示例:
:echo "hello" | echo "goodbye"
输出:
hello
goodbye
注意:您可能会发现~/.vimrc
不支持映射|
或\|
。在这些情况下,请尝试使用<bar>
。
答案 1 :(得分:78)
在命令之间和之后放置<CR>
(回车/回车)。例如:
map <F5> :w<CR>:!make && ./run<CR>
请勿使用|
,因为:
如果您在其后使用|
|
在配置文件中无效,请参阅:help map_bar
答案 2 :(得分:37)
您可以定义一个执行命令的函数。
function Func()
:command
:command2
endfunction
并将其放在例如你的vimrc中。使用
运行该功能exec Func()
答案 3 :(得分:25)
vim中的命令分隔符为|
。
答案 4 :(得分:14)
我总是使用^J
按 Ctrl + v , Ctrl + j来分隔多个命令
答案 5 :(得分:8)
认为这可能有助于某人尝试在链中进行替换而且会失败
来自comment
% s/word/newword/ge | % s/word2/newword2/ge
您可以使用e
标志在找不到字符串时忽略错误。
答案 6 :(得分:1)
您可以创建一个新文件,并在其上编写命令。然后:so %
,表示源当前文件。