vim ctags 在从定义列表中选择后打开分屏
vim ctags open split screen after choosing from list of definitions
我想模仿"pycharm"在vim中选择多个定义的效果。我正在使用 ctags,在我的 .vimrc
中有两个选项,但不知道如何绑定它们
1) 映射默认的 ctrl+] 组合以显示定义列表
map <C-]> g<C-]>
2) 从列表中选择定义后,我按回车,此时我想在当前缓冲区下面打开分屏
map <C-]> :rightbelow vsplit <CR> :exec("tag ".expand("<cword>"))<CR>
但是函数定义在新标签页中打开...
g<c-]>
等同于:tjump
。 :stjump
是 :tjump
.
的拆分变体
nnoremap <c-]> :<c-u>rightbelow vertical stjump <c-r><c-w><cr>
一般经验法则:
- 为您的映射提供一种模式。
n
在这种情况下是正常的。
- 使用
noremap
而不是 map
除非您使用 <Plug>
映射。
如需更多帮助,请参阅:
:h :vert
:h :stjump
:h c_CTRL-R_CTRL-W
我想模仿"pycharm"在vim中选择多个定义的效果。我正在使用 ctags,在我的 .vimrc
中有两个选项,但不知道如何绑定它们
1) 映射默认的 ctrl+] 组合以显示定义列表
map <C-]> g<C-]>
2) 从列表中选择定义后,我按回车,此时我想在当前缓冲区下面打开分屏
map <C-]> :rightbelow vsplit <CR> :exec("tag ".expand("<cword>"))<CR>
但是函数定义在新标签页中打开...
g<c-]>
等同于:tjump
。 :stjump
是 :tjump
.
nnoremap <c-]> :<c-u>rightbelow vertical stjump <c-r><c-w><cr>
一般经验法则:
- 为您的映射提供一种模式。
n
在这种情况下是正常的。 - 使用
noremap
而不是map
除非您使用<Plug>
映射。
如需更多帮助,请参阅:
:h :vert
:h :stjump
:h c_CTRL-R_CTRL-W