• 学习交流加(可免费帮忙下载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