vim函数定义跳转相关设置

修改下vim的一些ctags相关快捷键,个人用着顺手点。

小结如下:

  • normal模式下的gk,用来打开一个预览窗口预览函数定义(需要ctags生成好tags文件)。
  • normal模式下的gd,修改映射为ctrl+],即跳转到函数定义(vim内置的ctags的跳转)。
  • normal模式下的F5,用来替换优化下原来的gd(我的个人用法是优化),作用是高亮当前单词,并加入vim的搜索mode中,这样按下n可以跳到下一个位置,N可以上一个位置。

以下是具体内容,加入到 ~/.vimrc中即可。

lua 复制代码
" preview defination in a preview window
" nnoremap gk :ptag expand("<cword>"), This can not be used...
func PreviewSymbol()
    let l:word_under_cursor = expand("<cword>")
    echo "find def for symbol " . l:word_under_cursor
    " :ptag (l:word_under_cursor)
    execute "ptag " . l:word_under_cursor
endf
nnoremap gk :call PreviewSymbol()<CR>




let g:current_word_match_id = -1
function! ToggleHighlightCurrentWord()
  " if has hightword already, clear it
  if g:current_word_match_id != -1
    silent! call matchdelete(g:current_word_match_id)
    let g:current_word_match_id = -1
    return
  endif

  let l:current_word = expand('<cword>')

  " if empty, do nothing
  if empty(l:current_word)
    return
  endif

  " Use the same color with Search highlight group
  highlight link CurrentWord Search

  " set highlight and store the highlighted word to current_word_match_id 
  let g:current_word_match_id = matchadd('CurrentWord', '\<' . escape(l:current_word, '\') . '\>')

  " set cur highlighted word as vim's search pattern
  execute 'let @/ = "\\<' . escape(l:current_word, '\') . '\\>"'
endfunction

" Bind this function to <F5>
nnoremap <F5> :call ToggleHighlightCurrentWord()<CR>

nnoremap gd <c-]>
nnoremap gt <c-]>
相关推荐
辣椒酱.12 小时前
vscode报错------控制台
vscode·编辑器
自己的九又四分之三站台14 小时前
Manium:现代化的数学动画创作引擎(Manim 的可视化编辑器方向项目)
编辑器
粤M温同学14 小时前
VsCode快速打出console.log()方法设置
vscode·编辑器
2501_9071368215 小时前
Excel数据根据标题行自动匹配合并到指定模板文件
excel·软件需求
nnsix16 小时前
Unity XR 编辑器VR设备模拟功能
unity·编辑器·xr
前端小臻16 小时前
分享一个vscode的todo插件(todo Tree 包含使用
ide·vscode·编辑器
[J] 一坚16 小时前
实用shell脚本学习分享一
linux·运维·编辑器
分***816 小时前
批量识别身份证并导出excel工具分享,身份证识别工具离线识别 + 字段精准优化,Win10/11 直接用
excel·身份证识别
YoungHong199216 小时前
把Google Antigravity(或任何基于VS Code开源构建的编辑器)的插件市场切换为微软官方市场
microsoft·编辑器
runepic17 小时前
Python 批量合并多个 Excel 数据(自动补 0 + 生成明细)
java·python·excel