前言
所有的 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)
在命令模式下进入输入模式的方式:
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符 Enter,回车键,换行 Back space,退格键,删除光标前一个字符 Del,删除键,删除光标后一个字符 方向键,在文本中移动光标 Home/End,移动光标到行首/行尾 Page Up/Page Down,上/下翻页 Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 Esc,退出输入模式,切换到命令模式
1.3 底线命令模式(Last line mode)
在命令模式下按下:(英文冒号)就进入了底线命令模式。 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。 按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
2. vim命令集
2.1 vim命令模式命令集
进入输入模式:
命令 说明 按「i」 进入插入模式「insert mode」,按 “i” 进入插入模式后是从光标当前位置开始输入文件 按「a」 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字 按「o」 进入插入模式后,是插入新的一行,从行首开始输入文字
从插入模式切换为命令模式
移动光标
命令 说明 按「h」 左移一格 按「j」 下移一格 按「k」 上移一格 按「l」 右移一格 按「G」 移动到文章的最后 按「$」 移动到光标所在行的“行尾” 按「^」 移动到光标所在行的“行首” 按「w」 光标跳到下个字的开头 按「e」 光标跳到下个字的字尾 按「b」 光标回到上个字的开头 按「#l」 (#代表数字)光标移到该行的第#个位置,如:5l,56l 按[gg] 进入到文本开始 按[shift+g] 进入文本末端 按「ctrl」+「b」 屏幕往“后”移动一页 按「ctrl」+「f」 屏幕往“前”移动一页 按「ctrl」+「u」 屏幕往“后”移动半页 按「ctrl」+「d」 屏幕往“前”移动半页
删除文字
命令 说明 按「x」 每按一次,删除光标所在位置的一个字符 按「#x」 例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符 按「X」 大写的X,每按一次,删除光标所在位置的“前面”一个字符 按「#X」 例如,「20X」表示删除光标所在位置的“前面”20个字符 按「dd」 删除光标所在行 按「#dd」 从光标所在行开始删除#行
复制
命令 说明 按「yw」 将光标所在之处到字尾的字符复制到缓冲区中。 按「#yw」 复制#个字到缓冲区 按「yy」 复制光标所在行到缓冲区。 按「#yy」 例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。 按「p」 将缓冲区内的字符贴到光标所在位置。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
替换
命令 说明 按「r」 替换光标所在处的字符 按「R」 替换光标所到之处的字符,直到按下「ESC」键为止
撤销上一次操作
命令 说明 按「u」 如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复 按「ctrl + r」 撤销的恢复
更改
命令 说明 按「cw」 更改光标所在处的字到字尾处 按「c#w」 例如,「c3w」表示更改3个字
跳至指定的行
命令 说明 按「ctrl」+「g」 列出光标所在行的行号 按「#G」 例如,「15G」,表示移动光标至文章的第15行行首
2.2 vim底线模式命令集
在使用末行模式之前,请记住先按「ESC」键确定已经处于正常模式,再按「:」冒号即可进入末行模式。
列出行号
命令 说明 输入「set nu」 输入「set nu」后,会在文件中的每一行前面列出行号
跳到文件中的某一行
命令 说明 输入数字「#」 「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行
查找字符
命令 说明 「/关键字」 先按「/」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往后寻找到想要的关键字为止 「?关键字」 先按「?」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往前寻找到想要的关键字为止
保存文件
命令 说明 「w」 在冒号输入字母「w」就可以将文件保存起来
离开vim
命令 说明 「q」 按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim 「wq」 一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件