Vim 多个链命令,第一个使用范围

xxj*_*jnn 3 vim

一些 Vim 函数在一定范围内工作:

:'<,'>TOhtml
Run Code Online (Sandbox Code Playgroud)

第一个命令取一个范围,后面的命令通过管道传输结果,其语法是什么?

在wiki的评论中,它建议使用一个插件来允许所有命令在该范围内运行;但在这里我只需要第一个参数来处理范围。

# These are the commands I am attempting to chain
:'<,'>TOhtml
:w! ~/mylink
:q!

# The last two can chain or be one command
:w! ~/mylink | q!
:wq! ~/mylink

# But these fail
:'<,'>TOhtml | wq! ~/mylink
:execute "'<,'>TOhtml" | "wq! ~/mylink"
Run Code Online (Sandbox Code Playgroud)

elm*_*art 5

使用execute是一种可行的方法,但您只需引用 for 命令:execute,而不是第二个命令。

即替换:

:execute "'<,'>TOhtml" | "wq! ~/mylink"
Run Code Online (Sandbox Code Playgroud)

有了这个:

:execute "'<,'>TOhtml" | wq! ~/mylink
Run Code Online (Sandbox Code Playgroud)