2024-04-27 04:12:25 发布
网友
好吧,你要找的最简单的形式就是pipe命令。它允许您在同一行上运行多个命令行。在您的例子中,这两个命令是write`w`和execute current file`!%:p`。如果有为当前文件运行的特定命令,则第二个命令将变为,例如`!python%:p`。所以,最简单的回答就是:
:w | ! %:p ^ ^ ^ | | |--Execute current file | |--Chain two commands |--Save current file
最后要注意的是,并不是所有的命令都可以被链接。根据Vim docs,某些命令接受管道作为参数,从而断开链。。。
使用autowrite选项:
:set autowrite
Write the contents of the file, if it has been modified, on each :next, :rewind, :last, :first, :previous, :stop, :suspend, :tag, :!, :make, CTRL-] and CTRL-^ command [...]
选项1:
编写类似的函数并将其放入启动设置中:
function myex() execute ':w' execute ':!!' endfunction
你甚至可以将一个键组合映射到它——看看文档。
选项2(更好):
请参阅用于重新映射击键的文档-您可以通过简单的密钥重新映射来完成它。下面的代码有效,但有“filename.py”硬编码。也许您可以深入研究并找出如何用当前文件替换它?
:map <F2> <Esc>:w<CR>:!filename.py<CR>
映射之后,您可以在命令模式下按F2键。
imap、vmap等。。。是不同模式的映射。以上仅适用于命令模式。以下内容也应在插入模式下工作:
:imap <F2> <Esc>:w<CR>:!filename.py<CR>a
VIM手册的第40.1节非常有用。
好吧,你要找的最简单的形式就是pipe命令。它允许您在同一行上运行多个命令行。在您的例子中,这两个命令是write`w`和execute current file`!%:p`。如果有为当前文件运行的特定命令,则第二个命令将变为,例如`!python%:p`。所以,最简单的回答就是:
最后要注意的是,并不是所有的命令都可以被链接。根据Vim docs,某些命令接受管道作为参数,从而断开链。。。
使用autowrite选项:
选项1:
编写类似的函数并将其放入启动设置中:
你甚至可以将一个键组合映射到它——看看文档。
选项2(更好):
请参阅用于重新映射击键的文档-您可以通过简单的密钥重新映射来完成它。下面的代码有效,但有“filename.py”硬编码。也许您可以深入研究并找出如何用当前文件替换它?
映射之后,您可以在命令模式下按F2键。
imap、vmap等。。。是不同模式的映射。以上仅适用于命令模式。以下内容也应在插入模式下工作:
VIM手册的第40.1节非常有用。
相关问题 更多 >
编程相关推荐