回答:
はい、たとえば、したい場合ls
は試してください:
:!ls
シェルを生成するには、使用します
:shell
:w !sudo tee %
nano
私はctrl+z
viをスリープさせ、シェルで必要なものを実行してfg
からviを再開するために使用する傾向があります。正確にはあなたの質問への答えではありませんが、私はそれが非常に速い方法であると思います。
バックグラウンドでviを開いていることを忘れた場合(これは忙しいときに起こる可能性があります)、使用してシェルからログアウトしようとすると、ctrl+d
バックグラウンドジョブが実行されていることを警告され、それらを閉じることができます、または、もう一度ctrl + dを押してログアウトします。また、同じファイルを2回再オープンしようとすると、回復の警告が表示されるため、を押しa
て中止し、fgを実行してviに戻ることができます。
私の好みのイディオムは
!!command
これは略記です
:.!command
コマンドを介して現在の行をパイプ処理し、出力をファイルに挿入します。私にとって最も一般的なケースは、viでコマンドを編集して実行することです。
!!sh
または
!<motion>command
など(たとえば)
!apsh
シェルを介して現在の段落全体を実行します。
!}
段落の先頭に配置する必要があることに注意してください!ap
。(これがすべてのviにあるのか、それともvimのみにあるのかはわかりません)
これは.vimrcにあります。しばらく前にStack Overflowで見つかりました:
" Executes the current line in a bash shell; syntactically similar to slimv's ,d feature
:nmap ,,d Y:!<C-R>"<C-H><CR>