web-dev-qa-db-ja.com

vim 8.1に切り替えたり、vimscript内で前の分割に戻らずに、ターミナル分割を開くにはどうすればよいですか?

基本的に、次の機能が必要です。
vimsの新しいターミナル機能を使用して、編集中のファイルからフォーカスを奪うことなく、新しいターミナルウィンドウを開くボタンを押して、次を使用してコードをコンパイルできるようにしたいです。
"cmake -Bbuild-H。&& cmake --build build/--- j4 -w"は、コンパイルをライブで表示し、不要になったときに別のボタンを使用して再度閉じることができるようにします。

では、元の分割にフォーカスを残したまま、:terminalを使用して複雑なコマンドを実行するにはどうすればよいですか?

1
user2741831

私の知る限り、あなたは今はできません。 1つのコマンド(:terコマンド)またはシェル(:ter)を実行できますが、開いているシェルにコマンドを入れることはできません。
:ter cmake -Bbuild-H。 && cmake --build build/--- j4 -w
はビルドを開始しますが、C-WwまたはC-WkまたはC-WjまたはC-WhまたはC-Wlで他のウィンドウに戻る必要があります。次に、ビルドを見ながら入力を続けることができます。

nmap <leader> b :ter cmake -Bbuild -H. && cmake --build build/ -- -j4 -w

これを.vimrcに入れてください。リーダーを押すと、bが起動します。まだ変更していない場合、デフォルトのリーダーは\です。
おそらくTmuxでそれを行うことができます。

あなたはこのようにそれを行うことができます:

function! s:Buildit()
  ter cmake -Bbuild -H. && cmake --build build/ -- -j4 -w
  wincmd w 
endfunction
com! Buildit call s:Buildit()
nnoremap <leader> b :Buildit<CR>
2
user2773829