Dou*_*yle 66
好的,您正在寻找的最简单的形式是管道命令.它允许您在同一行上运行多个cmdline命令.在你的情况下,这两个命令是写`w`并执行当前文件`!%:p`.如果你有一个特定的命令,你运行当前文件,第二个命令变为,例如`!python%:p`.那么,对你问题最简单的答案就是:
:w | ! %:p
^ ^ ^
| | |--Execute current file
| |--Chain two commands
|--Save current file
Run Code Online (Sandbox Code Playgroud)
最后要注意的是,并非所有命令都可以链接.根据Vim文档,某些命令接受管道作为参数,从而打破链条......
gah*_*ooa 28
选项1:
编写与此类似的函数并将其放在启动设置中:
function myex()
execute ':w'
execute ':!!'
endfunction
Run Code Online (Sandbox Code Playgroud)
你甚至可以将一个关键组合映射到它 - 看一下文档.
选项2(更好):
查看重新映射击键的文档 - 您可以通过简单的密钥重映射来完成它.以下工作,但有"filename.py"硬编码.也许你可以挖掘并弄清楚如何用当前文件替换它?
:map <F2> <Esc>:w<CR>:!filename.py<CR>
Run Code Online (Sandbox Code Playgroud)
映射后,您只需在命令模式下按F2即可.
imap,vmap等...是不同模式的映射.以上仅适用于命令模式.以下应该也可以在插入模式下工作:
:imap <F2> <Esc>:w<CR>:!filename.py<CR>a
Run Code Online (Sandbox Code Playgroud)
VIM手册的第40.1节非常有用.
str*_*ger 12
使用autowrite选项:
:set autowrite
Run Code Online (Sandbox Code Playgroud)
在每个文件中写下文件的内容(如果已修改):next,:rewind,:last,:first,:previous,:stop,:suspend,:tag,:!,:make,CTRL-]和CTRL- ^命令[...]