当前位置:网站首页>vim配置+ctag像source insight一样方便阅读代码
vim配置+ctag像source insight一样方便阅读代码
2022-08-01 04:58:00 【月山知了】
1,配置amix/vimrc
在 https://github.com/amix/vimrc 下载 amix/vimrc
并安装:
$ git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
// 执行该命令后 ~/.vimrc 文件会变成需要的配置
$ sh ~/.vim_runtime/install_awesome_vimrc.sh
2,下载taglist(相当于sourceinsight的左侧窗口显示函数和变量)
http://www.vim.org/scripts/script.php?script_id=273
解压把 taglist.vim 放到 ~/.vim_runtime/my_plugins 目录中
并在 ~/.vimrc 文件中添加如下行:
source ~/.vim_runtime/my_plugins/taglist.vim
3,在~/.vim_runtime/vimrcs/basic.vim添加如下配置
" my start
set mouse=a
set number
set cursorline
let Tlist_Use_Right_Window=0 "taglist 显示在左侧
let Tlist_Exit_OnlyWindow=1 "taglist 只剩下一个窗口时,自动关闭
let Tlist_File_Fold_Auto_Close=1
map tl :TlistToggle
nnoremap ev :vsplit $MYVIMRC
nnoremap sv :source $MYVIMRC
" my end
4,使用配置好的vim
比如:进入源代码目录,以Android源代码为例:
比如:阅读frameworks/base目录的代码
首先:在frameworks/base目录执行:
$ ctags -R
然后: 随便打开文件:如打开PowerManagerService.java
frameworks/base$ vim ./services/core/java/com/android/server/power/PowerManagerService.java
在打开的文件中:常用操作
执行:Shift + * // 搜索光标处的变量
执行:ctrl + o // ctrl + * 反向操作,后退回去
执行: tl <Enter> // 会打开当前文件的函数和变量窗口
执行:,nn // 会打开文件目录浏览
执行:ctrl + ] // 跳到函数和变量的定义处
执行:ctrl + t // 调回执行 ctrl + ] 处
执行: ts <函数名或变量名> // 显示那些文件调用了该函数
执行: ! 用于执行命令
执行: tabnew 文件名 // 新标签中打开该文件
执行: gt // tabnew打开的多个标签中跳转
执行: vw // vim的可视化模式复制该单词,然后到命令行模式中进行搜索该单词
执行: 进入命令行模式执行: Shift+insert // 粘贴在可视化模式中复制的单词
执行:vim /<函数名或变量名>/ % | copen
执行:vim /test1/ ** | copen // 如下就递归找出了在当前目录下所有包含test1 字符串的文件,并且点击想查看的那行就直接能跳转到这个文件包含test1的位置中去。
1. 只搜索当前文件 vim /main/ % | copen
2. 只搜索当前目录 vim /main/ * | copen
3. 搜索上级目录下,并递归 vim /main/ ../** | copen 4. 可以在多个路径中搜索 vim /main path1/** path2/** | copen 执行:ctrl + d // 向下翻半页 执行:ctrl + u // 向上翻半页 执行:f + 字符 // 在光标行,查找该字符 ~/.vim_runtime目录中配置的插件的快捷命令都可以到:~/.vim_runtime中 grep 查找到 如到 ~/.vim_runtime/vimrcs/plugins_config.vim中能找到Nerd Tree配置的快捷键。 自动补全:Ctrl + N :reg Vim与系统剪贴板交互方法 选中一行 :"+Y //复制一行 :"+yy //复制一行 选中多行后 :"+y 选中单词后 :"+y (Shift) :"+yw (一个单词)
边栏推荐
- (2022 Nioke Duo School IV) D-Jobs (Easy Version) (3D prefix or)
- Error: AttributeError: module 'matplotlib' has no attribute 'figure'
- Optional parameters typescript19 - object
- (2022牛客多校四)A-Task Computing (排序+动态规划)
- typescript23-元组
- 【云原生之kubernetes实战】kubernetes集群的检测工具——popeye
- Typescript22 - interface inheritance
- 怀念故乡的面条
- (Codeforce 757) E. Bash Plays with Functions
- 认真对待每一个时刻
猜你喜欢
随机推荐
阿叶的目标
(2022 Niu Ke Duo School IV) K-NIO's Sword (Thinking)
USB3.0:VL817Q7-C0的LAYOUT指南(二)
y83. Chapter 4 Prometheus Factory Monitoring System and Actual Combat -- Advanced Prometheus Alarm Mechanism (14)
TIM登陆时提示00001(TIM00001)
RSA主要攻击方法
风险策略调优中重要的三步分析法
Progressive Reconstruction of Visual Structure for Image Inpainting 论文笔记
typescript24-类型推论
USB3.0:VL817Q7-C0的LAYOUT指南(三)
Mysql中的数据类型和运算符
typescript25 - type assertion
开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
25. Have you been asked these three common interview questions?
深圳某游戏研发公司给每个工位都装监控,网友:堪比坐牢!
万字逐行解析与实现Transformer,并进行德译英实战(一)
律师解读 | 枪炮还是玫瑰?从大厂之争谈元宇宙互操作性
MySQL Practice Summary -
SQL Analysis of ShardingSphere
High Numbers | 【Re-integration】Line Area Score 880 Examples