web-dev-qa-db-ja.com

IntelliJへのエスケープIDEA IdeaVimからのショートカット

VimとIntelliJのデフォルトのホットキーの両方に慣れています。それらを変更する必要がないようにしたいのですが、何らかのエスケープキーの後で、たとえばCTRL-Pなどの競合するIntelliJバインディングを使用できるようにしたいと思います。

競合するバルーンと私の research はあまり役に立ちませんでした。私が見つけた唯一のことは、vimプラグインをホットキーでオフにして、完了後にオンにすることができるということですが、毎回1つオンにすることを忘れないでください。

私の問題に対する解決策はありますか?

22

VIMプラグインをオフにして、キーストロークを実行してから、オンに戻します。 ^Z VIMこの目的のためのエミュレーターコマンドにバインドされています。これで十分です。これを設定するには、[設定...]> [キーマップ]に移動し、「vimエミュレーター」を検索して右クリックしますコマンド名でショートカットを割り当てます。

ただし、プレフィックスキーで使用するIntelliJコマンドのセットが限られている場合は、プレフィックスキーを選択し、それがIntelliJでバインドされていないことを確認してから、~/.ideavimrc呼び出したい元のバインディングとともに。

例えば、 ^D VIMは「ウィンドウを下にスクロール」、IntelliJ(キーマップ「Mac OS X 10.5+」を使用)は「デバッグ」です。両方を使用できるようにしたい場合:

  • intelliJにバインドされていないプレフィックスキーを選択します。 ^Z
  • その他の設定=> Vimエミュレーションで、ショートカットを見つけます ^D ハンドラーをVimに設定します。
  • あなたの~/.ideavimrc、次のマッピングを追加します:

    nnoremap <C-Z><C-D> :action Debug<CR>

入力できます ^D Vimアクションの場合は下にスクロールします、または ^Z^D IntelliJアクションDebugの場合、実際にはIdeaVIMを無効にする必要はありません。もちろん、この方法で実行するIntelliJコマンドごとに〜/ .ideavimrcにマッピングを追加する必要がありますが、数が限られている場合は、一度設定すればそれで完了です。

18
jbyler

すべての競合するマッピングのバインディングを含む 。ideavimrc を作成しました。多分それは誰かに役立つでしょう。

imap jj <Esc>

let mapleader = " "
map <leader>a :action $SelectAll<CR>
map <leader>b :action GotoDeclaration<CR>
map <leader>c :action $Copy<CR>
map <leader>d :action EditorDuplicate<CR>
map <leader>e :action RecentFiles<CR>
map <leader>f :action Find<CR>
map <leader>g :action GotoLine<CR>
map <leader>h :action TypeHierarchy<CR>
map <leader>i :action ImplementMethods<CR>
map <leader>m :action EditorScrollToCenter<CR>
map <leader>n :action FileChooser.NewFolder<CR>
map <leader>o :action OverrideMethods<CR>
map <leader>p :action ParameterInfo<CR>
map <leader>q :action QuickJavaDoc<CR>
map <leader>r :action Replace<CR>
map <leader>s :action SaveAll<CR>
map <leader>t :action Vcs.UpdateProject<CR>
map <leader>u :action GotoSuperMethod<CR>
map <leader>v :action $Paste<CR>
map <leader>w :action EditorSelectWord<CR>
map <leader>x :action $Cut<CR>
map <leader>y :action EditorDeleteLine<CR>
map <leader>[ :action EditorCodeBlockStart<CR>
map <leader>] :action EditorCodeBlockEnd<CR>
48
melihovv

@melihovvによる優れた回答に加えて、実行、デバッグ、構成の選択アクションを~/.ideavimrcに追加しました。

map <leader>dd :action Debug<CR>
map <leader>cd :action ChooseDebugConfiguration<CR>
map <leader>rr :action Run<CR>
map <leader>cr :action ChooseRunConfiguration<CR>
2
John Slavick

keymap ここにバインドなし:使用するため、。ideavimrcを構成する白紙の状態から開始できます

1
animaacija

簡単なオプションとして、IntelliJキーバインドに挿入モードを使用することもできます。私はideavimから始めたばかりですが、今のところこれでうまくいくようです。

0
alex0ptr