VIM总结之一:VIM编辑器常用命令详解
VIM编辑器常用命令详解(基础篇)
——键字如飞
最近又重温了一下VIM编辑器的教程,结合自己这一段时间使用VIM的经验和体会,总结了一些在VIM使用过程中常用而且实用的命令。主要分为快速移动光标、快速进入合适的编辑位置、编辑过程中的删除和撤销操作、编辑过程中的剪切复制和粘贴操作、常用的查找替换命令和文件的保存及编辑器的退出。由于我喜欢清晰简明的格式,所以这些命令都以表格的形式整理如下。
1 移动光标
键 |
光标动作 |
hjkl,方向键 |
移动一位,hjkl代表左、下、上、右 |
数字0 |
移至本行开头 |
^ |
移至本行第一个非空字符,匹配开头 |
$ |
移至本行结尾,可以包含空格 |
w |
移至下一单词或标点的开头 |
W |
移至下一单词开头,忽略标点 |
b |
移至上一单词或标点开头 |
B |
移至上一单词开头,忽略标点 |
ctrl-f/PgDn |
下翻一页 |
ctrl-b/PgUp |
上翻一页 |
nG |
移至第n行 |
G |
移至光标最后一行 |
: n enter键 |
移至第n行 |
n+ |
向下跳n行 |
n- |
向上跳n行 |
H |
移至当前屏幕的第一行 |
L |
移至当前屏幕的最后一行 |
注意许多vi的命令前面都可以缀上数字,前缀数字可以控制该命令执行的次数,比如5j可以使得光标向下移动5行。
2 基本编辑
键 |
光标动作 |
a |
在当前字符后插入文本 |
A |
在行尾插入文本 |
i |
在当前字符前插入文本 |
I |
在行首插入文本 |
o |
当前行下方插入新行并进入插入模式 |
O |
当前行上方插入新行并进入插入模式 |
3 删除和撤销
键 |
光标动作 |
x |
删除当前字符(剪切) |
nx |
向后删除当前行在内的n个字符(剪切) |
dd |
删除(剪切)当前行 |
ndd |
向下删除当前行在内的n行(剪切) |
dW |
删除当前字符到下一单词的起始处(删除整个单词) |
d$ |
删除当前字符到当前行的末尾(剪切) |
d0 |
删除当前字符到当前行的起始处(剪切) |
d^ |
删除当前字符当当前行下一个非空字符(剪切) |
dG |
删除当前行到文件末尾(剪切) |
d20G |
删除当前行到文件第20行(d与定位符结合使用,x不行)(剪切) |
u |
撤销上一次操作 |
nu |
撤销n次操作 |
U |
撤销对当前行的所有操作 |
4 剪切、复制和粘贴
注意:x和d键实质上是剪切键,两者功能略有差异。y是复制键,p是粘贴键。
键 |
光标动作 |
yy |
复制当前行 |
5yy |
向下复制当前行在内的5行 |
yw |
当前字符到下一单词的起始处 |
y$ |
当前字符到当前行的末尾 |
y^ |
当前字符到当前行下一个非空字符 |
y0 |
当前字符到当前行的行首 |
yG |
当前行到文件末尾 |
y20G |
当前行到文件第20行(用法和d完全一样,d实际就是剪切) |
p |
粘贴到当前字符(行)后面(下方) |
P |
粘贴到当前字符(行)前面(上方) |
J |
合并当前行和下一行为一行 |
R |
替换模式,和windows下的insert模式差不多 |
v |
进入选择模式(VISUAL),可以利用方向键选择字符,然后x、d剪切或者y复制 |
5 查找和替换
键 |
光标动作 |
fx(当前行内查找) |
光标移至本行下一处出现字符x的位置,输入分号重复上一次搜索 |
/(搜索单词或短语) |
使用/命令后,屏幕底端会出现/,接下来输入要搜索的单词或短语,enter结束 |
:s/old/new |
用new替换行中首次出现的old(:分号用于启动一条ex命令) |
:s/old/new/g |
用new替换行中所有的old |
:n,m s/old/new/g |
用new替换从n到m行里所有的old |
:%s/old/new/g |
用new替换当前文件里所有的old |
:set nu |
显示行号 |
:set nonu |
取消显示行号 |
6 保存工作
键 |
光标动作 |
:w |
仅保存文件 |
:q |
退出文件,没有修改 |
:q! |
放弃修改并退出文件 |
:wq |
保存并退出文件 |
:w file1 |
文件另存为file1 |
ZZ |
保存并退出文件 |
当然这些都是最基础的命令,使用这些命令基本可以是我们顺利地完成VIM下的文本编辑,但是还远达不到“键字如飞”的境界。早就听前辈们说如果能够熟练使用VIM编辑器的话,你会真切地爱上她的,因为它会使你双手完全不用离开常用的位置,能够让你很“懒”地完成文本编辑工作。真的希望自己不久的将来能够体验到那种感觉,感受一下“键字如飞“的顺畅感。小伙伴们如果有什么很好用的命令,可以在下面留言共同交流,也让我们大家一起进步^_^
祝枫
2016年6月23日于深圳
VIM总结之一:VIM编辑器常用命令详解相关推荐
- Linux常用命令详解(两万字超长文)
Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...
- NodeJs学习笔记002--npm常用命令详解
npm 常用命令详解 npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls ...
- Git 常用命令详解
Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...
- Linux常用命令详解(最全)
Linux命令目录 Linux命令集合 系统信息 关机 (系统的关机.重启以及登出 ) 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 - 使用 "+" ...
- Linux常用命令详解(转)
Linux常用命令详解(转) Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,首先它是自由软件,用户不用支付费用就可以使用它,并可根据自己的需要对它进行修改.另外,它具有Unix的全部功能 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- Samtools(CentOS Linux)安装及常用命令详解
序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...
- router linux命令,router os 常用命令详解
router os 常用命令详解 发布时间:2006-04-20 01:17:30来源:红联作者:[Hl.y] 看了很多router os 的资料都是关于如何安装的,却很少见到关于router os的 ...
- U-Boot的常用命令详解
2019独角兽企业重金招聘Python工程师标准>>> U-Boot的常用命令详解 U-Boot 还提供了更加详细的命令帮助,通过 help 命令还可以查看每个命令的参数说明.由于开 ...
- Linux常用命令详解文库
Linux常用命令详解文库.txt精神失常的疯子不可怕,可怕的是精神正常的疯子!Linux常用命令详解 来源: LUPA开源社区 发布时间: 2007-05-27 05:34 版权申明 字体: ...
最新文章
- 值得收藏的 14 个 Linux 下 CPU 监控工具
- SAP新总账下的利润中心内部转移定价
- Vue3之——和Vite不得不说的事
- Selenium WebDriver- 使用Frame中的HTML源码内容操作Frame
- oracle 三个口令管理,Oracle学习笔记(12)口令和资源管理
- [XSY] 绿色(圆方树、树形DP、树上差分)
- mysql php7安装配置_centos7无网络下安装部署php7.1.33+mysql5.7.28+apache2.4.6-Go语言中文社区...
- WebStorm 关联 TFS(转)
- TVP5158的多路复用技术
- margin与padding的bug
- 业务逻辑配置化的可选技术方案
- 指数加权移动平均法(EWMA)
- 有人说做运营死路一条,但他没搞清运营是做什么的!
- effective c++读书随记
- 海康威视官方安装包(提供64位安装包)
- 需要给变量赋缺省值吗?
- 异构计算给我们带来了哪些思考?
- 大数据 机器学习 分类算法_13种用于数据科学的机器学习分类算法及其代码
- 喜达屋54家酒店遭POS恶意软件植入 房客银行数据泄露
- FPGA练习:计数器
热门文章
- FAT32U盘挂载无法更改权限记录
- 比较贵的计算机配置,什么电脑配置好 几款配置比较豪华的笔记本电脑推荐【图文】...
- LISP 冻结excel窗格_Excel这10个实操技巧,每个都很牛逼,绝对不能错过
- QT QTableWidget设置单元格不可编辑
- C++中L和_T()之区别
- linux 设备模型详解,Linux2.6 设备模型之input子系统详解
- 「零基础从零开始写VO视觉里程计」如何求解线性方程 Hdx=b?(7-)
- 高品质深圳市地图shp数据arcgis软件道路地名县区边界水系地铁站点2021年
- python核心编程;可以帮你提高Python编程效率十条建议
- C语言入门练习题-题目+答案