当前位置:网站首页>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 (一个单词) 边栏推荐
猜你喜欢

UE4 从鼠标位置射出射线检测

故乡的素描画

Pyspark机器学习:向量及其常用操作

typescript28 - value of enumeration type and data enumeration

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

Typescript20 - interface

y83. Chapter 4 Prometheus Factory Monitoring System and Actual Combat -- Advanced Prometheus Alarm Mechanism (14)

typescript24-类型推论

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

【愚公系列】2022年07月 Go教学课程 023-Go容器之列表
随机推荐
pytroch、tensorflow对比学习—使用GPU训练模型
(more than 2022 cattle school four) A - Task Computing + dynamic programming (sort)
风险策略调优中重要的三步分析法
C# | 使用Json序列化对象时忽略只读的属性
scheduleWithFixedDelay和scheduleAtFixedRate的区别
Mysql基础篇(Mysql数据类型)
报错:AttributeError: module ‘matplotlib’ has no attribute ‘figure’
Excel record of integer programming optimization model to solve the problem
typescript23-tuple
请问shake数据库中想把源的db0的数据同步到目的db5,参数怎么设置呢?
PMP 相关方管理必背总结
基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置
Li Chi's work and life summary in July 2022
(2022牛客多校四)K-NIO‘s Sword(思维)
在沈自所的半年总结
请问表格储存中用sql只能查询到主键列,ots sql非主键不支持吗?
How to promote new products online?
Dry goods!How to Construct SRv6-TE Performance Test Environment Using Instrumentation
2022年超全的Android面经(附含面试题|进阶资料)
Mysql基础篇(约束)