Vim を使用しながら端末にアクセスする方法はありますか?
別のターミナルを開いたり、現在のターミナルを保存して終了したりしません。
VimにSIGTSTPシグナルを送信できます。これを行うには ctrl+z。 Vimはバックグラウンドで中断され、ターミナルを使用できます。端末でfg
と入力して、vimで再開します。
ボーナスのヒント:これは、ほぼすべてのターミナルアプリケーションで機能します。 bg
を使用して、アプリケーションがバックグラウンドで実行を継続できるようにします。
Vimで、次のように入力します。
:!sh
:!
は外部プロセス(この場合はsh
、別のシェル)を起動します。シェルを終了すると、制御はvimに戻ります。シェルをvimと同時に使用する場合は、&
をshコマンドの最後に追加します。
:!sh&
:Shell
コマンド(または短い形式の:sh
)を使用できます。 :help :Shell
から:
このコマンドはシェルを起動します。シェルが終了すると( "exit"コマンドの後)、Vimに戻ります。 Shellコマンドの名前は「Shell」オプションに由来します。
デフォルトでは、Ubuntuではこれによりbashが提供されます。完了したら、exit
と入力してvimに戻ります。
最近のvim以降、次のことができるようになりました。
:terminal
これは最初にVim 8.0.69 で追加されましたが、多くのバグがありました。 :help terminal
を参照してください:
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
The terminal feature is optional, use this to check if your Vim has it:
echo has('terminal')
If the result is "1" you have it.
[...]
The terminal feature requires the +multi_byte, +job and +channel features.
==============================================================================
1. Basic use terminal-use
This feature is for running a terminal emulator in a Vim window. A job can be
started connected to the terminal emulator. For example, to run a Shell:
:term bash
Or to run a debugger:
:term gdb vim
The job runs asynchronously from Vim, the window will be updated to show
output from the job, also while editing in any other window.
すべての答えに加えて。
ConqueTermプラグイン をインストールできます
このプラグインは、vimバッファー内で対話型プログラムを実行する機能を提供します。
インストール後、次の2行を.vimrc
に追加できます。
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
を押すと、bash
を実行できます。 Shift + Tを押して、現在のConqueタブを閉じます Shift + W
高速な開閉が必要な場合は、bash
を使用します。
これは gif です。
Screenまたはbyobuのもう1つのオプションは、これらのプログラム内でタブを開くことです。これらのプログラムを使用すると、ターミナルセッションc.qを簡単に保持できます。シェルを開いて、キーボードでこれらの画面を切り替えます。
Vim 8.1の新しいバージョンでは、必要な作業は:terminal
と出来上がりです! (これは組み込みです)