Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

ctrlp.vimのプロンプトのマッピングを変更する

$
0
0

Vimでファイルを開いたりする定番プラグインの一つに、ctrlp.vimというプラグインがあります。

見た目がよく、特別な設定なしに軽快に動き、なかなかいいですね。

僕はUnite.vimをメインに使っていたために今まで導入していなかったのですが、「ディレクトリ配下全てのファイルから、特定のファイルを開く」というケースではctrlp.vimを使うようになりました。

ただ、ctrlp.vimのプロンプトでは結構大胆にキーマッピングを潰される上、自分の直感とずれててとても使いにくく感じました。
幸い、g:ctrlp_prompt_mappings変数で一括で変更出来るので思い切り変更しました。

letg:ctrlp_map ='<C-f>'letg:ctrlp_prompt_mappings = {
  \ 'PrtBS()':              ['<c-h>'],
  \ 'PrtDeleteWord()':      ['<c-w>'],
  \ 'PrtCurEnd()':          ['<c-e>'],
  \ 'PrtCurLeft()':         ['<c-b>'],
  \ 'PrtCurRight()':        ['<c-f>'],
  \ 'PrtSelectMove("j")':   ['<c-j>'],
  \ 'PrtSelectMove("k")':   ['<c-k>'],
  \ 'PrtHistory(-1)':       ['<c-n>'],
  \ 'PrtHistory(1)':        ['<c-p>'],
  \ 'AcceptSelection("e")': ['<cr>'],
  \ 'ToggleRegex()':        ['<c-r>'],
  \ 'ToggleByFname()':      ['<c-d>'],
  \ 'PrtExit()':            ['<c-l>','<esc>','<c-c>'],
  \ 'ToggleFocus()':        ['<nop>'],
  \ 'PrtExpandDir()':       ['<nop>'],
  \ 'AcceptSelection("h")': ['<nop>'], 
  \ 'AcceptSelection("t")': ['<nop>'],
  \ 'AcceptSelection("v")': ['<nop>'],
  \ 'ToggleType(1)':        ['<nop>'],
  \ 'ToggleType(-1)':       ['<nop>'],
  \ 'PrtInsert()':          ['<nop>'],
  \ 'PrtCurStart()':        ['<nop>'],
  \ 'PrtClearCache()':      ['<nop>'],
  \ 'PrtDeleteEnt()':       ['<nop>'],
  \ 'CreateNewFile()':      ['<nop>'],
  \ 'MarkToOpen()':         ['<nop>'],
  \ 'OpenMulti()':          ['<nop>'],
  \ 'PrtDelete()':          ['<nop>'],
  \ 'PrtSelectMove("t")':   ['<nop>'],
  \ 'PrtSelectMove("b")':   ['<nop>'],
  \ 'PrtSelectMove("u")':   ['<nop>'],
  \ 'PrtSelectMove("d")':   ['<nop>'],
  \ }

<c-h>で削除、<c-f><c-b>で前後にカーソル移動、単純にファイルを開く以上に使うキーは未設定にしました。また、プラグイン名の通り<c-f>で動作を開始させるのも、既存のマッピングに衝突していたので、<c-f>に変更しました。

ctrlp.vimの魅力を犠牲にするような設定で偲びないですが、複雑なことはUnite.vimや他のプラグインを使うので、こんな感じで使っていこうと思います。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>