在工程中最常用的 vim使用技巧
- 学习交流加(可免费帮忙下载CSDN资源):
- 个人微信: liu1126137994
- 学习交流资源分享qq群1(已满): 962535112
- 学习交流资源分享qq群2: 780902027
文章目录
- 1、vim编辑常用快捷键
- 2、文件索引工具( cscope-indexer)
- 2.1 利用cscope-indexer建立源码文件索引关系
- 2.2 在vim中快速进入到函数定义的位置
- 2.3 在vim中快速找到函数被调用的位置
- 2.4 在vim中快速进入到文件开头或者结尾
- 2.5 在vim中快速替换字符串
- 3、总结
本文记录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
在工程中最常用的 vim使用技巧相关推荐
- LaTeX中一些常用符号及编写技巧
博客中阅读效果更佳哦:LaTeX中一些常用符号及编写技巧 希腊字母 小写形式 代码 大写形式 代码 α \alpha A \Alpha β \beta B \Beta δ \delta Δ \Delt ...
- ACM/OI中C++常用优化(实用/调试/技巧)代码(语法)
一.C++万能编译头文件 #include<bits/stdc++.h> 从 #include <iostream> #include <cstdio> #incl ...
- Javascript中最常用的一些经典技巧
1. οncοntextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border οncοntextmenu ...
- 开发中一些常用的css小技巧
2019独角兽企业重金招聘Python工程师标准>>> 一.清除图片下方和两侧几像素的缝隙 例子复现: 需求结果: html结构: <div class="img-b ...
- ML之FE:特征工程中的特征拼接处理(常用于横向拼接自变量特征和因变量特征)(daiding)
ML之FE:特征工程中的特征拼接处理(常用于横向拼接自变量特征和因变量特征) 目录 特征工程中的特征拼接处理(常用于横向拼接自变量特征和因变量特征) 输出结果 实现代码 特征工程中的特征拼接处理(常用 ...
- ML之FE:特征工程中常用的五大数据集划分方法(特殊类型数据分割,如时间序列数据分割法)讲解及其代码
ML之FE:特征工程中常用的五大数据集划分方法(特殊类型数据分割,如时间序列数据分割法)讲解及其代码 目录 特殊类型数据分割 5.1.时间序列数据分割TimeSeriesSplit 特殊类型数据分割 ...
- ML之FE:特征工程中常用的一些处理手段(缺失值填充、异常值检测等)及其对应的底层代码的实现
ML之FE:特征工程中常用的一些处理手段(缺失值填充.异常值检测等)及其对应的底层代码的实现 目录 特征工程中常用的一些处理手段(缺失值填充.异常值检测等)及其对应的底层代码的实现
- ios之Xcode工程中添加文件常用快捷键
1.Xcode某个工程中添加文件 有两种方式: 方式一:"command"+"n",弹出添加文件对话框. 方式二:在需要添加文件的工程目录下右键,选择" ...
- [vue-cli] vue-cli工程中常用的npm命令有哪些
[vue-cli] vue-cli工程中常用的npm命令有哪些 npm install:下载 node_modules 资源包的命令 ==思考问题:== 为什么下载资源包要用npm install? ...
最新文章
- webrtc android ndk,webrtc 针对 android 平台的编译和运行
- Ajax监测开始执行及结束执行
- mysql的多master调度_innodb中master线程的调度的算法改进(mysql 5.6.26)
- 【NLP】创建强大聊天机器人的初学者指南
- SUN JAVA面试笔试题
- FPGA基础之LUT详解
- curl put方法 测试http_HTTP接口调试利器!4.8万Star的HTTP命令行客户端!
- Linux下用dump实现备份和还原
- 香港科技大学TensorFlow速成(1)
- 如何理解什么是放射?
- Access denied for user 'root'@'localhost' Could not obtain connection
- jQuery增加删除修改tab导航特效
- 与大数据同行—学习和教育的未来 - 电子书下载(高清版PDF格式+EPUB格式)
- app invento2r wxbit版 快速开发简单蓝牙上位/蓝牙串口助手
- 52周存钱挑战2.0
- explain的使用
- FTP服务器、部署YUM仓库与NFS共享服务
- JAVA系列:SimpleDateFormat解析带T字符的时间格式( yyyy-MM-ddTHH:mm:sssZ )
- 最新华农c语言教材答案,华农C语言题目及答案完整版
- java毕业设计鸿鹄教育培训(附源码、数据库)