当前位置:网站首页>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 (一个单词)
边栏推荐
猜你喜欢
PAT serie b write the number 1002
The method of solving stored procedure table name passing through variable in mysql
剑指 Offer 68 - II. 二叉树的最近公共祖先
这里有110+公开的专业数据集
怀念故乡的面条
typescript24-类型推论
(2022 Nioke Duo School IV) H-Wall Builder II (Thinking)
typescript26 - literal types
MySQL-数据定义语言-DDLdatebase define language
pytorch、tensorflow对比学习—功能组件(激活函数、模型层、损失函数)
随机推荐
typescript27 - what about enumeration types
Dynamic Programming 01 Backpack
PMP 项目沟通管理
风险策略调优中重要的三步分析法
项目风险管理必备内容总结
状态压缩dp
Visual Studio提供的 Command Prompt 到底有啥用
Asynchronous reading and writing of files
August 22 Promotion Ambassador Extra Reward Rules
High Numbers | 【Re-integration】Line Area Score 880 Examples
PMP 项目质量管理
typescript27-枚举类型呢
Excel做题记录——整数规划优化模型
在互联网时代,有诸多「互联网+」模式的诞生
7月编程排行榜来啦!这次有何新变化?
ModuleNotFoundError: No module named 'tensorflow.keras' error message solution
The method of solving stored procedure table name passing through variable in mysql
一个往年的朋友
律师解读 | 枪炮还是玫瑰?从大厂之争谈元宇宙互操作性
干货!如何使用仪表构造SRv6-TE性能测试环境