Escキーが機能しないときにESC信号をvimに送信する方法は?


20

Esc挿入モードから対話モードに戻りたいときに、キーに問題があります。挿入モードを解除するために使用される別のキーがありますか。


13
プレスコントロール[
トーマスディッキー

3
vi.stackexchange.com/q/300/9708でもかなりの提案があります。
ガイ

2
新しいMacbook Pro?<grin>
ルイFリベイロ

2
いいえ、thinkpad x1カーボン
サンドラロス

回答:


7

既存のソリューションにもかかわらず、Vim の従来のソリューションは、.vimrc構成内のキーを再マップすることです。実際、多くのVimユーザーは、に再マップされたより簡単に到達可能なキーを持っていEscます。一般的な選択肢はCtrl+ Enter、またはjj、などです。

これを有効にするには、次のようなもの.vimrcをに追加して、Vimをリロード/再起動します。

" Shift-Enter
inoremap <S-CR> <Esc>
" Double-j
inoremap jj <Esc>

詳細と代替案


1
Eyup、それがVimのやり方です。もう一つの一般的な方法は、が推進学びVimのハード・ウェイ(ブック)であるinoremap jk <Esc>
grochmal

これは良い解決策ですが、Ctrl + Enter + jのみを使用すると問題は何ですか?
サンドラロス

@SandraRoss本当に好きなキーの組み合わせを使用できます(ただし、Ctrl-EnterなどのいくつかはmacOSでは機能しません)。とはいえ、Ctrl + Enter + jを押すと入力が難しくなり、Vimで2つの非修飾キー(Enter、j)を使用して3つのキーの組み合わせを構成できるかどうかは正直わかりません。
コンラッドルドルフ

わかりました。実際、macos Xを使用しているため、Ctrl + Enter + jjは機能しません。少なくとも、Ctrl + jで入力する必要があるものを教えてください。
サンドラロス

@SandraRossそのためには、動作するinoremap <C-j> <Esc>はずです。:-)
コンラッドルドルフ

32

Ctrl- [物理Escキーと同じ文字を端末に送信します。後者は、一般的に前者の単なるショートカットです。


3
私はかつて本物のvt220端末を持っていましたが、そのキーボードにはEscapeキーがありません。を押すことCtrl+[が生成の唯一の方法でしたEscape
クサラナナンダ

11

単一のキーを(Vimマッピングなしの)純粋な* nixソリューションとして使用できるようにする場合は、別のキーをとして定義できますEsc。EmacsユーザーCapsLockCtrl一部のVimユーザー(私も含む)にリマップCapsLockするのと同じように、リマップしEscます。これは、X11を使用するすべての* nixで機能します。

を使用してxev -event keyboard(そしてを押してCapsLock)キーのキーコードを取得しCapsLockます(私にとってはキーコード66です)。次にxmodmap、キーの再マッピングに使用できます。

xmodmap -e 'remove Lock = Caps_Lock' -e 'keycode 66 = Escape'

ログイン時にこれを取得xmodmapするには~/.Xmodmap、次のように式を追加できます。

remove Lock = Caps_Lock
keycode 66 = Escape

ただし、2番目の部分はYMMVですが、すべてのディスプレイマネージャーが実行されるわけではありません~/.Xmodmap。それらのいくつかに追加xmodmap .Xmodmapする必要があるかもしれません.xinitrc


私はあなたの言うことを正確に知っています。今週初めに見ました
サンドラロス

私はそうしますが、CapsLockを作成キーとして使用します(:
-DopeGhoti

6

Ctrl-Cを試してみてください。これは私にとっては有効であり、私の意見ではESCより簡単です。ただし、デフォルトで有効になっているかどうかはわかりません。


CTRL-CはASCIIで0x03、SIGINTをシェルに送信します-ESCと同じではありません。

@catただし、vimでも基本的に同じように機能します。私はいつもはCtrl-Cの代わりに、Escキーを使用しています
エリックW

1
@cat:vimにはそのハンドラーがあるため、無料で入手できます。自分で何もする必要はありません。この答えはそのまま使用できます。試したところです。それは動作しない、一般的に任意のアプリケーションのために?いいえ、しかしそれは求められたものではありません。
モニカとのライトネスレース

2
@cat:本当ですか?タイトルは「ESCキーが機能しないときにESC信号をvimに送信する方法」です。、唯一のタグはvimであり、質問で説明されている問題はVimの挿入モードのエスケープに関するものです。質問の要約部分は次のとおりです。「挿入モードを解除するために使用される別のキーが存在しますか?」それがVimとその挿入モードに固有のものではない場合、その内容はわかりません。
モニカとの明度レース

1
@LightnessRacesinOrbitまあ、最初にタイトルを見たとき、それは「Escに使用される別のキー」であり、質問はまったく特定のものに見えませんでしたvim。ごめんなさい!_(ツ)_ /¯

-3

Ctrl + F2

デフォルトで有効になっています。設定を行う必要はありません。

できる通常モードに移動します:q! or :wq


3
Ctrl+F2エスケープを送信できますが、他のものも送信します。
クサラナナンダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.