【Linux学习】vim编辑器的使用

前言

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

一、vim是什么?

vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

vim键盘图

二、vim的使用

1. vim的三种模式

基本上 vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

1.1 命令模式(Command mode)

当我们在命令行输入vim,就启动了vim,进入了命令模式。
此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

1.2 输入模式(Insert mode)

在命令模式下进入输入模式的方式:

  • 输入a
  • 输入i
  • 输入o

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • Enter,回车键,换行
  • Back space,退格键,删除光标前一个字符
  • Del,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • Home/End,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • Esc,退出输入模式,切换到命令模式

1.3 底线命令模式(Last line mode)

在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
按ESC键可随时退出底线命令模式。

简单的说,我们可以将这三个模式想成底下的图标来表示:

2. vim命令集

2.1 vim命令模式命令集

  1. 进入输入模式:
命令说明
按「i」进入插入模式「insert mode」,按 “i” 进入插入模式后是从光标当前位置开始输入文件
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字
  1. 从插入模式切换为命令模式
按「ESC」键
  1. 移动光标
命令说明
按「h」左移一格
按「j」下移一格
按「k」上移一格
按「l」右移一格
按「G」移动到文章的最后
按「$」移动到光标所在行的“行尾”
按「^」移动到光标所在行的“行首”
按「w」光标跳到下个字的开头
按「e」光标跳到下个字的字尾
按「b」光标回到上个字的开头
按「#l」(#代表数字)光标移到该行的第#个位置,如:5l,56l
按[gg]进入到文本开始
按[shift+g]进入文本末端
按「ctrl」+「b」屏幕往“后”移动一页
按「ctrl」+「f」屏幕往“前”移动一页
按「ctrl」+「u」屏幕往“后”移动半页
按「ctrl」+「d」屏幕往“前”移动半页
  1. 删除文字
命令说明
按「x」每按一次,删除光标所在位置的一个字符
按「#x」例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
按「X」大写的X,每按一次,删除光标所在位置的“前面”一个字符
按「#X」例如,「20X」表示删除光标所在位置的“前面”20个字符
按「dd」删除光标所在行
按「#dd」从光标所在行开始删除#行
  1. 复制
命令说明
按「yw」将光标所在之处到字尾的字符复制到缓冲区中。
按「#yw」复制#个字到缓冲区
按「yy」复制光标所在行到缓冲区。
按「#yy」例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
按「p」将缓冲区内的字符贴到光标所在位置。

注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

  1. 替换
命令说明
按「r」替换光标所在处的字符
按「R」替换光标所到之处的字符,直到按下「ESC」键为止
  1. 撤销上一次操作
命令说明
按「u」如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复
按「ctrl + r」撤销的恢复
  1. 更改
命令说明
按「cw」更改光标所在处的字到字尾处
按「c#w」例如,「c3w」表示更改3个字
  1. 跳至指定的行
命令说明
按「ctrl」+「g」列出光标所在行的行号
按「#G」例如,「15G」,表示移动光标至文章的第15行行首

2.2 vim底线模式命令集

在使用末行模式之前,请记住先按「ESC」键确定已经处于正常模式,再按「:」冒号即可进入末行模式。

  1. 列出行号
命令说明
输入「set nu」输入「set nu」后,会在文件中的每一行前面列出行号
  1. 跳到文件中的某一行
命令说明
输入数字「#」「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行
  1. 查找字符
命令说明
「/关键字」先按「/」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往后寻找到想要的关键字为止
「?关键字」先按「?」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往前寻找到想要的关键字为止
  1. 保存文件
命令说明
「w」在冒号输入字母「w」就可以将文件保存起来
  1. 离开vim
命令说明
「q」按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim
「wq」一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件