我做了很多Python快速模拟的东西,我不断保存(:w)然后运行(:!!).我想知道,有没有办法结合这些行动.也许是一个"保存并运行"命令.
谢谢你的帮助.
好的,您正在寻找的最简单的形式是管道命令.它允许您在同一行上运行多个cmdline命令.在你的情况下,这两个命令是写`w`并执行当前文件`!%:p`.如果你有一个特定的命令,你运行当前文件,第二个命令变为,例如`!python%:p`.那么,对你问题最简单的答案就是:
:w | ! %:p ^ ^ ^ | | |--Execute current file | |--Chain two commands |--Save current file
最后要注意的是,并非所有命令都可以链接.根据Vim文档,某些命令接受管道作为参数,从而打破链条......
选项1:
编写与此类似的函数并将其放在启动设置中:
function myex() execute ':w' execute ':!!' endfunction
你甚至可以将一个关键组合映射到它 - 看一下文档.
选项2(更好):
查看重新映射击键的文档 - 您可以通过简单的密钥重映射来完成它.以下工作,但有"filename.py"硬编码.也许你可以挖掘并弄清楚如何用当前文件替换它?
:map:w :!filename.py
映射后,您只需在命令模式下按F2即可.
imap,vmap等...是不同模式的映射.以上仅适用于命令模式.以下应该也可以在插入模式下工作:
:imap:w :!filename.py a
VIM手册的第40.1节非常有用.
使用autowrite选项:
:set autowrite
在每个文件中写下文件的内容(如果已修改):next,:rewind,:last,:first,:previous,:stop,:suspend,:tag,:!,:make,CTRL-]和CTRL- ^命令[...]
命令组合似乎通过|
字符工作,所以也许像别名 :w|!your-command-here
到一个独特的键组合?
干得好:
:nmap
保存并运行(你必须处于n模式 - 只需添加esc和a for i模式)