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编辑器常用命令详解相关推荐

  1. Linux常用命令详解(两万字超长文)

    Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...

  2. NodeJs学习笔记002--npm常用命令详解

    npm 常用命令详解 npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls ...

  3. Git 常用命令详解

    Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...

  4. Linux常用命令详解(最全)

    Linux命令目录 Linux命令集合 系统信息 关机 (系统的关机.重启以及登出 ) 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 - 使用 "+" ...

  5. Linux常用命令详解(转)

    Linux常用命令详解(转) Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,首先它是自由软件,用户不用支付费用就可以使用它,并可根据自己的需要对它进行修改.另外,它具有Unix的全部功能 ...

  6. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  7. Samtools(CentOS Linux)安装及常用命令详解

    序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...

  8. router linux命令,router os 常用命令详解

    router os 常用命令详解 发布时间:2006-04-20 01:17:30来源:红联作者:[Hl.y] 看了很多router os 的资料都是关于如何安装的,却很少见到关于router os的 ...

  9. U-Boot的常用命令详解

    2019独角兽企业重金招聘Python工程师标准>>> U-Boot的常用命令详解 U-Boot 还提供了更加详细的命令帮助,通过 help 命令还可以查看每个命令的参数说明.由于开 ...

  10. Linux常用命令详解文库

     Linux常用命令详解文库.txt精神失常的疯子不可怕,可怕的是精神正常的疯子!Linux常用命令详解 来源: LUPA开源社区 发布时间: 2007-05-27 05:34 版权申明 字体: ...

最新文章

  1. 值得收藏的 14 个 Linux 下 CPU 监控工具
  2. SAP新总账下的利润中心内部转移定价
  3. Vue3之——和Vite不得不说的事
  4. Selenium WebDriver- 使用Frame中的HTML源码内容操作Frame
  5. oracle 三个口令管理,Oracle学习笔记(12)口令和资源管理
  6. [XSY] 绿色(圆方树、树形DP、树上差分)
  7. mysql php7安装配置_centos7无网络下安装部署php7.1.33+mysql5.7.28+apache2.4.6-Go语言中文社区...
  8. WebStorm 关联 TFS(转)
  9. TVP5158的多路复用技术
  10. margin与padding的bug
  11. 业务逻辑配置化的可选技术方案
  12. 指数加权移动平均法(EWMA)
  13. 有人说做运营死路一条,但他没搞清运营是做什么的!
  14. effective c++读书随记
  15. 海康威视官方安装包(提供64位安装包)
  16. 需要给变量赋缺省值吗?
  17. 异构计算给我们带来了哪些思考?
  18. 大数据 机器学习 分类算法_13种用于数据科学的机器学习分类算法及其代码
  19. 喜达屋54家酒店遭POS恶意软件植入 房客银行数据泄露
  20. FPGA练习:计数器

热门文章

  1. FAT32U盘挂载无法更改权限记录
  2. 比较贵的计算机配置,什么电脑配置好 几款配置比较豪华的笔记本电脑推荐【图文】...
  3. LISP 冻结excel窗格_Excel这10个实操技巧,每个都很牛逼,绝对不能错过
  4. QT QTableWidget设置单元格不可编辑
  5. C++中L和_T()之区别
  6. linux 设备模型详解,Linux2.6 设备模型之input子系统详解
  7. 「零基础从零开始写VO视觉里程计」如何求解线性方程 Hdx=b?(7-)
  8. 高品质深圳市地图shp数据arcgis软件道路地名县区边界水系地铁站点2021年
  9. python核心编程;可以帮你提高Python编程效率十条建议
  10. C语言入门练习题-题目+答案