VIM - 同一行上的多个命令

时间:2010-07-14 18:35:29

标签: vim command

我一直试图找到能让我在vim的同一行上运行多个命令的东西,类似于使用分号分隔* nix系统中的命令或Windows中的&。有没有办法做到这一点?

7 个答案:

答案 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 %,表示源当前文件。