我想autocmd BufWrite在我的 中执行 shell 命令.vimrc,然后 echo (在 vim 中)\xc2\xa0a 消息说它已经完成,而不显示 shell。
(基本上touch *.less),然后回显一条信息消息“文件已触及!”。
第一部分有效,但第二个命令是在 shell 而不是 vim 中执行的。
\n\n命令应该是这样的:
\n\nautocmd BufWritePost *.less silent! !touch \'%:p:h\'/*.less | echo \'file \'.expand(\'%:p:h\').\' touched !\'\nRun Code Online (Sandbox Code Playgroud)\n\n我想我需要一种方法来“结束”命令并允许其他命令。
\n\n我尝试了这个但没有取得更大的成功:
\n\n:silent !touch \'%:p:h\'/*.less && exit 0 | unsilent! | echo "file touched"\nRun Code Online (Sandbox Code Playgroud)\n\n任何想法 ?
\n如果你通过一个函数,它应该可以工作:
function! Cmd()
silent! execute '! touch %:p:h/*.less'
echo 'file '.expand('%:p:h').' touched !'
endfunction
autocmd BufWritePost *.less call Cmd()
Run Code Online (Sandbox Code Playgroud)