LoginSignup
1
2

More than 1 year has passed since last update.

vim-lspの定義ジャンプとvim本来のtagジャンプを共存させる

Last updated at Posted at 2019-11-28

vim-lspの定義ジャンプがいい感じなので<C-]>キーを上書きして使っているのだが、vimのhelpを見る際などに<C-]>が動作しなくて不便なことがある。

方針としてはまず:LspDefinitionを実行してみて失敗したら本来のvimの定義ジャンプを呼び出すようなキーバインドを登録したい。

本質的にはvim-lspに限らず他のプラグインでも同様にできるはず。

nnoremap <expr> <silent> <C-]> execute(':LspDefinition') =~ "not supported" ? "\<C-]>" : ":echo<cr>"

エラーメッセージをマッチさせるという、かなりアドホックなやり方だが現時点ではちゃんと動く。
vim-lspの仕様が変われば動かなくなるかもしれない。

2021/09/07追記:

上の方法だと定義が新しいwindowで開かれてしまうので下の方法のほうが良いかもしれない。

  nnoremap <expr> <C-]> execute('LspPeekDefinition') =~ "not supported" ? "\<C-]>" : ":LspDefinition<cr>"

一度LspPeekDefinitionを実行してみて大丈夫そうならLspDefinitionを実行する。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2