2011-11-22 3 views
15

iTerm2は "Option key as + ESC"(またはメタとして使用されているが、明らかに廃止されている)という非常に便利な機能を提供しています。iTerm2 /ターミナルのvimの "M-"バインディングが機能しない

私はそれらを試しましたが、オプションキーはBash(set -o emacsモード)とEmacsでは期待通りに動作しますが、Vimでは動作しません。したがって、私は "M"バインディングを使用することはできません。私が見つけたことはということです :私はオプションに「+ ESC」を設定している場合

  • は、VimはちょうどESC +キーを理解し、そして私が実際にメタキーを意味しない考えを持っていません。
  • "meta"にオプションを設定した場合、 "option"で修正されたキーは、修飾子なしの場合と同じように動作します(入力したキーの組み合わせからvimが理解できる方法を正式にテストする方法はわかりません)。

"M-"マッピングはMacVim(7.3.53)で完全に機能しますが、これはコンソールの外であり、この質問の範囲ではありません。

これらのマッピングをiTerm2またはTerminalのVimで動作させる方法に興味があります。

マイスペック:7.3.107_0 + python26 @

  • MAC OS Xライオン10.7.2
  • iTerm2 1.0.0.20111020
  • のvim [MacPortsのいえ]
+2

は時々、人々は「を意味するように非常に狭い解釈に用語「メタ」を使用しますので、例えば、私は挿入モードでの単語の末尾に移動するために私のvimrcの中でこのマッピングを設定しています上位ビットがセットされたASCII文字 ";しかし、より一般的には、「メタ」は上位ビットを使用するか、またはESCを接頭辞として使用することを意味します。私は、「Option as Meta」とは特に、UTF-8(または他の8ビット)エンコーディングを使用することと互換性がない「上位ビットを設定する」ことを意味すると仮定します。現代の端末エミュレータは、通常UTF-8にデフォルト設定されており、「Meta」のESC接頭辞を使用する必要があります。 Mac OS X端末の「メタキーとしてのオプション」オプションは、「接頭辞付きESC」を意味します。 –

+1

http://stackoverflow.com/a/15399297/2355112には、Macの「Option + char」のマッピングに関するソリューションがあります。 – oozzal

答えて

8

I最新のiTerm2をダウンロードし、それが送信されたもの/ Vimによって印刷されたもの(i<C-v><M-a>)を次の設定で表示しようとしました:

オプションとして
  • オプション:

    Vimは何かを待って、そこにとどまる:

    Vimはメタとしてオプション

  • 私のフランス語のキーボードで通常と期待されているæを印刷します発生する。何も印刷されません。私がOptionとaを順番に押すと、ちょうどaが得られます。オプションとaをランダムな順序で押すと、áが表示されることがあります。 + ESCとして

  • オプション:

    Vimのプリント^[a "文字Aに続く文字をエスケープ" を意味します。 Vimがこれまでにいくつかの仮定の黒魔術なし<M->を受けることはありませんように見えるこれらのテストから

あなたは「+ ESCなどのオプション」に固執するならば、あなたが<Esc>somethingにすべてのカスタム<M-something>マッピングを変更する必要がありますようです。これはうまくいくかもしれませんが、英語以外の言語であればどんな種類の散文でも苦痛を書くことになります。

私は何をすべきか:私は簡単にœ…«»のような文字を入力することができ、私は<Leader>を使用するようにそれがあるように私はすべての私のカスタムマッピング用(,にマッピングされ、:help mapleaderを参照)Optionキーを残します。

ここでは、プラグイン用に予約して、やや単純で潜在的に安全なアプローチを提唱する人もいます。

inoremap <leader>, <C-x><C-o> "my way (copied elsewhere) 
inoremap ,, <C-x><C-o>  "another way 
+1

正確に。 Vimは決して ''の組み合わせを得ることはありません。問題は、私が 'M'バインディングを持っているいくつかのプラグインがあり、プラグインを使いこなすのが不便だということです。本当に速い 'Esc + key'を' 'に変換することにそれを騙すためのvimパッチがあるのでしょうか? – Dan

+2

また、 ''と ''のようなものをマップして、Eclipseで 'Alt +(up | down)'がすることをやりたいと思います。代わりに 'Esc +(j | k)'をマップすると、挿入モードを終了して真にそれらの移動キーの1つを押すと痛いでしょう... – Dan

+0

''が必要なプラグインをリストアップできますか? – romainl

4

私は通常として動作するように私のオプションキーを左に、Vimが<T-バインディングとしてそれらを見たことを発見しました。

noremap! <T-Right> <C-o><Right>; 
関連する問題