当前位置: 首页 > article >正文

vim函数定义跳转相关设置

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

小结如下:

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

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

" 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-]>

http://www.kler.cn/a/509079.html

相关文章:

  • Perl语言的数据库编程
  • 从AI生成内容到虚拟现实:娱乐体验的新边界
  • 数字小偷:2025年全面防护指南
  • Go语言简洁框架目录和高效的快发框架设计
  • 【Linux】13.Linux进程概念(2)
  • 【从零开始使用系列】StyleGAN2:开源图像生成网络——环境搭建与基础使用篇(附大量测试图)
  • 如何在亚马逊云科技上消除无服务器网页应用冷启动时间(下篇)
  • Selenium自动化测试实战
  • 红队可视化工具:网络安全的“透视眼”
  • 3. 后端验证前端Token
  • 【BUUCTF】[GXYCTF2019]BabySQli
  • ansible自动化运维实战--服务端安装、环境配置与测试(1)
  • C语言编程笔记:文件处理的艺术
  • [Qt] Box Model | 控件样式 | 实现log_in界面
  • JavaScript 中的 `find` 方法
  • Ardupilot开源无人机之Geek SDK进展2024-2025
  • LabVIEW 蔬菜精密播种监测系统
  • 数据分析的新利器-微软开源的GraphRAG
  • 搭建Hadoop源代码阅读环境
  • vscode项目依赖问题
  • 网络编程 | UDP广播通信
  • 渗透测试之越权漏洞详解 水平越权 垂直越权 目录越权 SQL跨库查询越权 以及未授权漏洞 一篇文章说明白
  • 2024春秋杯密码题第一、二天WP
  • HTML学习笔记(5)
  • Java日志配置
  • 蓝桥杯 连续奇数和问题解析