2011-01-07 21 views
0

ドイツのMacキーボードレイアウトの場合、<A-7>にバインドされているので、|と入力すると痛みがあり、Altキーに到達するのは難しいです。Vim:キーバインディングを交換するにはどうすればいいですか?

このように、私は(|7のバインディングを交換する)は、次の再マッピングを行うにはしたいと思います:

imap 7 <Bar> 
imap <A-7> 7 

最初のものは動作しますが、二番目にはありません。私はすでにinor(再マッピングなし)とのすべての組み合わせを試しましたが、成功しませんでした。

多分私は再マッピングの概念を得ていません。それとも、私は何か他のものが欠けている。

+0

ところで。書式設定のヘルプは、このキーフォーマットの使い方を教えてくれないので、 '7'はグラフィカルキーのように見えます。[7]のように見えます。 – crispy

+1

は、ボックス内に7を同封するためにを使用してください。ところで、バーはどこに ' 'にバインドされましたか?システムのショートカット/キーボードオプションの場合、 'inoremap 7 | inoremap 7'。 – ZyX

答えて

2

私の経験では、モディファイアを含む再マッピングの中にはMacVimでは動作しないものがあります。私が使用する2つの回避策は次のとおりです。

  1. 他の修飾キーを試してみてください。または

  2. 使用キーボードマエストロ(Mac OS X用の優れたキーマッパー)の再マッピングを行うには

+0

ありがとう! Keyboard Maestroは、この一貫性のない非合理的なMacキーボードレイアウト(混乱)を癒す最善の方法と思われます。 – crispy

2

私は、あなたが探している答えがあると思う:

inoremap 7 <bar> 
inoremap <bar> 7 

私は、私のセミコロンとコロンの使用法を交換するために同様のバインディングを使用しています(私は挿入モード用ではありません)。

nnoremap ; : 
nnoremap : ; 

xnoremap ; : 
xnoremap : ; 

UpdaコメントのRory O'Kaneの提案に基づいて(感謝!)

+0

これは動作します!ありがとう!私はキーボードのマエストロを使用します。 – crispy

+1

2つの 'noremap'バインディングは、' nnoremap'と 'xnoremap'を使うように分割して、ノーマルモードとビジュアルモードでのみ適用する必要があります。 'noremap'はあなたのマッピングを[Operator-pending mode](http://vimdoc.sourceforge.net/htmldoc/intro.html#Operator-pending-mode)と[Select mode](http:// vimdoc。 sourceforge.net/htmldoc/visual.html#Select-mode)、 'd;'のような操作やSelectモードでの文字の入力を中断します。 [':help:map-modes'](http://vimdoc.sourceforge.net/htmldoc/map.html#:map-modes)を参照してください。 –

+0

グッドキャッチロリー、それを指摘してくれてありがとう!私の投稿(と.vimrc)を更新します。 –

関連する問題