web-dev-qa-db-ja.com

vimで、「command-right」と「command-left」をMacの行頭と行末にマップする方法は?

Macのデフォルトのテキスト編集のようにしようとしています。私は試した map! <D-Left> 0およびmap! <D-Right> $〜/.vimrcにありますが、もちろん機能しませんでした。これどうやってするの?

10
Marty

私の知る限り、コマンドキー修飾子の構文( <D-...> )は、Mac OS XのVimのGUIモードインスタンスでのみ有効です。

VimインスタンスはGUIベースである必要があります。これは、ほとんどのターミナルエミュレーター(TerminaliTermなど)はコマンドキーの組み合わせの制御シーケンスを生成しないため、Vimのttyのみのインスタンスはコマンドキーの組み合わせが押されたことを知る方法がありません(ターミナルエミュレータは、ttyインターフェイスを介して何も送信しません)。実際、Terminalは、⌘←と⌘→(Command-Leftと-Right)を開いているウィンドウを循環するようにバインドするため、入力時にこれらのキーは「すでに使用されています」 ターミナルのコンテキスト。

MacVim (GUIモードで実行する場合)には、(他のMacスタイルのキーストロークの中でも)<D-Left>および<D-Right>の機能マッピングが付属しています(それぞれ- <Home>0とほぼ同じ)および <End>$と同じ))。注意点の1つは、これらのデフォルトのマッピングは$VIM/gvimrcで確立されているため、~/.gvimrcからのみ適切にオーバーライドできることです。

Mac OS X用のVimの他のGUIベースのバージョンがあったと思いますが、MacVimは唯一の最新バージョンのようです。

大まかに言って、スタートアップファイルは$VIM/vimrc~/.vimrc$VIM/gvimrc~/.gvimrcの順序で処理されます。 MacVim$VIM/gvimrc<D-Left>をマップするため、<D-Left>のマッピング(実際にオーバーライドする場合)を~/.gvimrcに配置して、「最終決定」を行う必要があります。

9
Chris Johnsen