当前位置:网站首页>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 (一个单词) 边栏推荐
- Immutable
- Li Chi's work and life summary in July 2022
- Risk strategy important steps of tuning method
- Excel record of integer programming optimization model to solve the problem
- 万字逐行解析与实现Transformer,并进行德译英实战(二)
- 故乡的素描画
- typescript25-类型断言
- pytroch、tensorflow对比学习—使用GPU训练模型
- 力扣(LeetCode)212. 单词搜索 II(2022.07.31)
- Dry goods!How to Construct SRv6-TE Performance Test Environment Using Instrumentation
猜你喜欢

typescript21-接口和类型别名的对比

基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置

MySQL-数据定义语言-DDLdatebase define language

Excel record of integer programming optimization model to solve the problem

C# | 使用Json序列化对象时忽略只读的属性

今日睡眠质量记录68分

II. Binary tree to Offer 68 - recent common ancestor

怀念故乡的月亮

(2022牛客多校四)K-NIO‘s Sword(思维)

pytroch、tensorflow对比学习—搭建模型范式(低阶、中阶、高阶API示例)
随机推荐
7 行代码搞崩溃 B 站,原因令人唏嘘!
6-23漏洞利用-postgresql代码执行利用
Li Chi's work and life summary in July 2022
pytroch、tensorflow对比学习—使用GPU训练模型
PAT乙级 1001 害死人不偿命的(3n+1)猜想
高数 | 【重积分】线面积分880例题
文件的异步读写
LeetCode 387. 字符串中的第一个唯一字符
UE4 模型OnClick事件不生效的两种原因
pytorch、tensorflow对比学习—功能组件(优化器、评估指标、Module管理)
怀念故乡的月亮
The Principle Of Percona Toolkit Nibble Algorithm
干货!如何使用仪表构造SRv6-TE性能测试环境
【愚公系列】2022年07月 .NET架构班 085-微服务专题 Abp vNext微服务网关
PAT serie b write the number 1002
(2022 Nioke Duo School IV) D-Jobs (Easy Version) (3D prefix or)
万字逐行解析与实现Transformer,并进行德译英实战(三)
今日睡眠质量记录68分
[kali-information collection] enumeration - DNS enumeration: DNSenum, fierce
状态压缩dp