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

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 itif g:current_word_match_id != -1silent! call matchdelete(g:current_word_match_id)let g:current_word_match_id = -1returnendiflet l:current_word = expand('<cword>')" if empty, do nothingif empty(l:current_word)returnendif" Use the same color with Search highlight grouphighlight 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 patternexecute 'let @/ = "\\<' . escape(l:current_word, '\') . '\\>"'
endfunction" Bind this function to <F5>
nnoremap <F5> :call ToggleHighlightCurrentWord()<CR>
nnoremap <leader>g :call ToggleHighlightCurrentWord()<CR>nnoremap gd <c-]>
nnoremap gt <c-]>
http://www.lryc.cn/news/523984.html

相关文章:

  • 如何使用Python爬虫获取微店商品详情:代码示例与实践指南
  • Autosar CP RTE规范解读之不同 BSW 接口的通知与软件组件激活机制:标准化接口与 AUTOSAR 接口的实现方式
  • 基于STM32的智能门锁安防系统(开源)
  • 搭建Hadoop源代码阅读环境
  • 【25】Word:林涵-科普文章❗
  • Spring Boot接收参数的19种方式
  • 云IDE:开启软件开发的未来篇章
  • Leetcode 189 轮转数组
  • 华为服务器(iBMC)监控指标解读
  • 网络编程-UDP套接字
  • Web 音视频(一)基础知识
  • 数字化时代,传统代理模式的变革之路
  • Linux 高级路由与流量控制-用 tc qdisc 管理 Linux 网络带宽
  • 【数据库知识】PostgreSQL介绍
  • 软考,沟通管理
  • Linux 存储设备和 Ventoy 启动盘制作指南
  • Android SystemUI——CarSystemBar车载状态栏(九)
  • 多级缓存 JVM进程缓存
  • 使用Chrome和Selenium实现对Superset等私域网站的截图
  • 如何让大语言模型更好地理解科学文献?
  • anaconda安装和环境配置
  • Python基础学习(五)文件和异常
  • Mono里运行C#脚本29—mono_trampolines_init
  • 从语音识别到图像识别:AI如何“看”和“听”
  • vue3+ts+uniapp 微信小程序(第一篇)—— 微信小程序定位授权,位置信息权限授权
  • 回归算法、聚类算法、决策树、随机森林、神经网络
  • [Qt]系统相关-文件操作-QFile、QFileInfo类以及相关操作函数
  • C#高级:用Csharp操作鼠标和键盘
  • Mac 使用 GVM 管理多版本 Go 环境
  • 25届合肥工业大学自动化考研复试攻略