Neovimのターミナルモードを終了する


60

Normalモードに入っTerminalた後にモードに戻る方法がわかりませんInsert...

エスケープが機能しないようです。

何か案が ?

回答:


58

を押すことになってい<C-\><C-n>ます。

:help terminal-emulatorマッピングの提案を参照してください。


2
ヘルプページが機能しませんでした。を使用する必要があります:help terminal-emulator-input
jasonszhao

3
今ではちょうど:hターミナルエミュレーター

41

@romainlによる答えは正しいですが、私がやったようにグーグルからこれにつまずいたかもしれない人のためにもう少し情報を追加したかったです。

ドキュメントから直接、このメモを取得します。

ターミナルモードには、マッピング用の独自の名前空間があり、「t」プレフィックスでアクセスします。端末マッピングを使用して、端末との対話をカスタマイズすることができます。たとえば、ターミナルモードを終了するようにマッピングする方法は次のとおりです。

:tnoremap <Esc> <C-\><C-n>

その知識があれば、おそらく現在のワークフロー(タブ/ウィンドウの移動など)に合わせてターミナルマッピングを作成する必要があります。


こんにちは、正確なマッピングを設定しましたが、<Esc>を押しても何も起こりません。理由は何ですか?
ケビン・バーク

Exモードから追加した場合、結果は同じですか?間違った設定ファイルを更新する可能性があります...
ダン・ブラッドベリ

1
ありがとう。これは私が私の好適なマッピングを追加助けtnoremap kj <C-\><C-n>
ニック・メリル

2

終了して閉じる

tnoremap <Esc> <C-\><C-n>:q!<CR>

Vim 8では、これも機能します。

tnoremap <ESC> <C-w>:q!<CR>

1
あなたが必要としないNでは<c-w>N、あなたは簡単に押すことができ:た後<c-w>。そして、Vimのすべての開いているバッファーとウィンドウでVimを本当に閉じたい場合は:qa!、より良い選択かもしれません。しかし、その場合、すべての変更が失われます。
クリスチャンブラバンド

1

Tmuxを使用している場合、Vimが使用する前に「C- \」を取得するウィンドウペイン内を移動するための「vimのような」バインディングをインストールした可能性があります。その場合、これらを削除して.tmux.conftmuxを再起動します。

bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
bind-key -T copy-mode-vi C-\ select-pane -l

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.