2016-05-25 9 views
2

私は;;の行末に移動してコロンを挿入しました(cのような言語で便利です)。そして、私が持っている私のscheme.vimファイルに:これでファイルタイプのバッファにのみキーバインディングをマップ解除するにはどうすればよいですか?

iunmap ;; 

問題がある:

  1. それはそう、このコマンドにそれがすでにマップされていないのですその時点で私はスキームファイルを開くたびに、実行しようとします私は警告を受けるでしょう。

  2. このキーはグローバルにマップされないため、同じセッションで非スキームファイルを開くと、このバインディングは記憶されません。

少なくとも#1を解決したいと思いますが、バインディングがアクティブなのでエラーが発生しないようにするだけです。

+1

はあなたが iunmap 'てみました;;'? – romainl

+0

どういう意味ですか?私は ''キーに何もマッピングしていないので、エラーが発生します。 –

+0

''はキーではなく、現在のバッファへのマッピングを制限するコマンドの ':map'ファミリの引数です。この引数はftpluginsで使用され、カスタムファイルタイプ固有のマッピングが他のファイルタイプに漏れないようにします。 ftpluginによって作成されたマッピングを無効にし、ftpluginが適切に記述されているようにするには、このコマンドを使用できます。このコマンドは、バッファローカルマッピング ';;'をアンマップします。 – romainl

答えて

5

;;マッピングを'filetype'に基づいてバッファローカルマッピングにするのが最善でしょう。

autocmd FileType c,javascript inoremap <buffer> ;; <esc>m'A;<esc>``a 

このマッピングに必要な数のファイルタイプを追加できます。ファイルタイプはコンマで区切ります。より多くのヘルプを参照してください

:h :au 
:h :map-local 
:h 'filetype' 
:h FileType 
関連する問題