私は最近(再び)大々的にvimに夢中になり、今では.vimrc
ファイルにたくさんのカスタマイズがあります。そこにあるすべてがIDEAプラグインのコンテキストで意味をなすわけではないことを私は理解していますが、への再マッピングのようなものが取り上げられ、尊重されれば、私は本当にそれを望んでいます。それを行う方法はありますか?つまり、IDEAのキーマップにあるすべてのものを手動で微調整する必要はありません。jj
Esc
ありがとう。
更新された回答:IdeaVimバージョン0.35(2014-05-15リリース)は、から設定とキーバインディングを読み取ります~/.ideavimrc
。source ~/.vimrc
からのマッピングを含める場合は、そのファイルに入れることができます~/.vimrc
。
0.33と0.34は~/.vimrc
直接読み取ります。
0.33(2014-04-28リリース)は、へのマッピングなど、VIM-288jjを実装した最初のバージョンでしたESC。これはうまく機能し、IDEAプリファレンスに新しいVimエミュレーションセクションがあり、~/.vimrc
マッピングとIntellijマッピング間のすべての競合が一覧表示され、IDEAまたはIdeaVimのいずれかにキーを割り当てることで競合を解決できます。こちらがツイッターでのリリース発表です。
(注:私は作成者ではなく、満足しているユーザーです。)
更新:はい!以下の回答を参照してください。
簡単な答え:いいえ。
私もこれをやろうとしてき.vimrc
ました。何年にもわたって慣れてきた非常に複雑なものがあるからです。
とにかく、回避策(一種)があります。IdeaVimの設定は、ホームフォルダー内のフォルダー(vim.xml
Windowsの場合)にあるファイルに保存されます。XMLを編集して、必要なものを追加できます。たとえば、次の行を追加して、入力する代わりにを押してファイルを保存します。 .IntelliJIdea10/config/keymaps
C:\Users\<user_name>
F2
:w!
<action id="SaveAll">
<keyboard-shortcut first-keystroke="F2"/>
</action>
ただし、関数やvim設定などを追加する方法がわかりません(これは私が通常使用するもの.vimrc
です)。
PSこれは、.vimrcが使用されない理由を説明している可能性があります(私の強調):
不思議なことに、プラグインはVIMソースコードを参照せずに作成されています(正規表現の処理を除く)。私は基本的に、正しい動作を検証するためのリファレンスとして、優れたVIMドキュメントとVIM自体を使用しています。
ソース: http: //ideavim.sourceforge.net/
プラグインのリポジトリ(https://github.com/JetBrains/ideavim )の説明によると、その内容を含むファイル「〜/.ideavimrc 」を作成することでこれを実現できます。
source ~/.vimrc
IdeaVIMの問題#VIM-288(編集、更新:jbylerの回答を参照、VIM-288は修正されました)は、修正されたときに問題を解決するようです。私も、Escキーを使用する代わりに「jk」を挿入モードで終了させる方法を探していました。私はIntelliJプラグインの専門家ではありませんが、IdeaVIMソースコードを変更して、「jk」ショートカットがそこにハードコーディングされるようにしました。その後、プラグインを再デプロイして、公式バージョンの代わりにそれを使用するだけでした。これが私がそれをした方法です:
IdeaVIMソースコードを入手してください。
そのページの「開発」の指示に従って、プラグインの開発環境をセットアップできます。
IdeaVIMプロジェクトがすべてセットアップされたので、次のファイルを開きます:com.maddyhome.idea.vim.key.RegisterActions.java
このファイルには、すべてのビジュアル/挿入/通常モードコマンドとそれに対応するキーバインディングが含まれているようです。「exitinsertmode」キーバインドを変更する私の例では、「VimInsertExitMode」を探してください。新しいショートカットのために、このコードブロックに行を追加する必要があります。
編集後のコードのセクションは次のとおりです。
parser.registerAction(KeyParser.MAPPING_INSERT, "VimInsertExitMode", Command.Type.INSERT, new Shortcut[]{
new Shortcut(KeyStroke.getKeyStroke('[', KeyEvent.CTRL_MASK)),
new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK)),
new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)),
new Shortcut("jk"),
new Shortcut(new KeyStroke[]{KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SLASH, KeyEvent.CTRL_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK)})
});
次に、プロジェクトをデプロイし(.jarを作成)、プラグインフォルダーに追加します。参考までに、次の手順に従いました。
キーマップフォルダからVim.xmlファイルを保存する必要があるかもしれませんが、よくわかりません。私は自分の物を削除し、IntelliJを再起動したときに作り直しました。
やってみて!今すぐ終了挿入モードのショートカットとして「jk」を使用できるはずです!
ご存知のとおり、私はWindowsのホームフォルダーにある.vimrcである程度の成功を収めているので、通常はC:\ Users\yourLoginです。これは仕様によるもののようです。Olegは、IdeaVIMがここでVImコマンドのサブセットを使用していると述べています。
http://youtrack.jetbrains.com/issue/VIM-134#tab=Comments
youtrackシステムのコメントを表示するにはログインする必要があるようです。
オレグシュピノフ2011年8月15日18:12
IdeaVIMプラグインは.vimrcファイルからいくつかの構成データをロードしますが、vimプラグインのサポートは利用できず、利用できません。これは、IdeaVimプラグイン内のすべてのVIMランタイムを書き換える必要があるためです。
後者が予想されるWindowsを使用している場合は、ファイルに_vimrcではなく.vimrcという名前を付ける必要があることに注意してください。
set ignorecase
少なくとも動作します!
IdeaVimは現在(少なくとも0.35という早い段階で)、マップとそのバリエーションだけでなく、限られた数のセットコマンドをサポートしています。それらを自動的に取得するには、設定を〜/.ideavimrcに入れます。
Windows 7で動作させるには、C:\Users[username]に.ideavimrcを作成します。
私のために働いた。
私は昨日これを行う方法を理解しました。次のコマンドを実行することで、.vimrcをideavim設定にシンボリックにリンクすることができました。
ln -s $HOME/.vimrc $HOME/.ideavim