- 学习交流加(可免费帮忙下载CSDN资源):
- 个人微信: liu1126137994
- 学习交流资源分享qq群1(已满): 962535112
- 学习交流资源分享qq群2: 780902027
文章目录
本文记录vim编辑器的代码编辑常用快捷键与在vim中如何进行函数跳转等快捷操作。可以查看右侧目录快速找到你所需要的内容。
主要学习以下内容:
- .vimrc配置文件
- cscope-indexer 文件索引组件
- 使用上述两个组件更加快捷的编辑代码
1、vim编辑常用快捷键
当我们使用vim打开一个文件的时候,刚进到文件,是处于命令行模式(就是无法编辑代码)。
当按下键盘上的 i 或者 a 都可以进入编辑模式。进入编辑模式就可以移动光标进行代码编辑。但是vim中的编辑模式,很不好编辑,比如我们想要复制一行内容到另一行,还要用鼠标右键进行复制粘贴。这很不方便。但是不是在编辑模式下,也就是去命令行模式下,可以有一些快捷键来满足我们的一些快捷的需求。
在编辑模式下按下键盘上的 Esc 按键,进入到命令行模式。在命令行模式下,有如下快捷键(注意一定是命令行模式):
- 拷贝某一行的内容:yy (让鼠标的光标在某一行停留,连续按下键盘上的 y 两次,即可复制该行的内容)
- 剪切某一行的内容:dd (让鼠标的光标在某一行停留,连续按下键盘上的 d 两次,即可剪切该行的内容,剪切后该行的内容消失,相当于删除)
- 粘贴:p (当执行完yy或者dd后,将光标移动到你想粘贴的位置,按下p,即可粘贴内容)
- 拷贝多行的内容: 按下v + 光标移动选中一些行,选好后松开v,然后按下y,即可拷贝选中的行的内容。
- 剪切多行的内容:按下v + 光标移动选中一些行,选好后松开v,然后按下d,即可剪切选中的行的内容。剪切后,选中的内容消失,相当于删除。
- 列模式:ctrl + v 后,移动光标可以选择列的内容
- 删除:dd可以看成是删除单独行,v + 光标移动选中内容再按下d可以看成是删除多行内容。
- 显示行号:进入命令行模式下,按下
Shift + :
,然后输入set nu
- 去掉行号:进入命令行模式下,按下
Shift + :
,然后输入set nonu
2、文件索引工具( cscope-indexer)
使用这个cscope-indexer工具,可以使用宋老师提供的 .vimrc
配置文件(点击下载 .vimrc 配置文件点击下载),或者你自己去网上搜一下看如何配置。下载好之后将它拷贝到你的Linux系统的home目下(~ 目录下),替换你原来的配置文件。
然后还需要下载cscope-indexer工具:$ sudo apt install cscope
2.1 利用cscope-indexer建立源码文件索引关系
在一些大工程中,如果你想去查看函数的定义位置,或者找到调用该函数的位置,在vim中,使用cscope-indexer工具比较好用。
比如我想查看我的内核源码,我就需要先在内核源码的目录下,输入命令:
$ cscope-indexer -r
这个命令就让内核目的所有文件都建立了一个索引。
2.2 在vim中快速进入到函数定义的位置
然后我们用vim打开一个文件。进入命令行模式。
输入Shift + :
进入可以手动输入命令的状态。然后输入:
回车!
就可以找到start_kernel函数的定义位置。可能有多处定义位置,输入数字选择进入到哪一个定义的函数位置。
或者使用如下快捷键也可以达到上述的效果:
ctrl + \ 抬起来后按下g 前提是光标在start_kernel处放着
2.3 在vim中快速找到函数被调用的位置
输入Shift + :
进入可以手动输入命令的状态。然后输入:
或者使用如下快捷键也可以达到上述的效果:
ctrl + \ 抬起来后按下 c ,前提是光标在该函数处
2.4 在vim中快速进入到文件开头或者结尾
光标在某一处,如何快速移动到文件的末尾:命令行模式下,大写打开,按下G。
光标在某一处,如何快速移动到文件的开头:命令行模式下,小写打开,按下gg。
2.5 在vim中快速替换字符串
如何替换某一个文件中的一个字符串?
进入命令行模式,输入Shift + :
进入可以手动输入命令的状态。然后输入:
其中ostr是想要替换掉的字符串,nstr是新字符串。
或者使用如下快捷键也可以达到上述的效果:
ctrl + \ 抬起来后按下r 然后将ostr换成原始字符串,nstr换成新字符串
3、总结
学会使用vim。
学习探讨加个人:
qq:1126137994
微信:liu1126137994