所有的 Linux 系统都会内建 VI 文本编辑器,VIM 具有程序编辑的能力,可以看作是 VI 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补全、编译及错误跳转等方便编程的功能特别丰富。且VIM与VI编辑器完全兼容。
Vi 和 Vim 的三种常见模式:
正常模式:
以 vim 打开一个文档就直接进入了正常模式,在这个模式中,可以使用【上下左右】按键来移动光标,可以使用【删除字符】或【删除整行】来处理文档内容,可以使用【复制、粘贴】处理数据
插入/ 编辑模式:
首先按一下【i、o、a、r】等任意一个字母,进入编辑模式,一般都是使用【i】
命令行模式:
这个模式中,可以提供相关指令,完成读取存盘、离开、替换、显示行符号等。
一般模式:
在一般模式中,最主要的功能就是:删除、复制、粘贴。
命令 | 功能描述 |
---|---|
u | 撤销之前的操作 |
移动 | |
w | 跳至下一个单词 |
e | 跳至下一个单词尾 |
b | 跳至上一个单词头 |
shift+^ | 移动至行头 |
shift+$ | 移动至行尾 |
GG/ shift+h | 移动至页头 |
G/ L | 移动至页尾 |
n+G | n 为数字,代表移动至第几行(例如 5+G,就会移动至第5行) |
复制 | |
yy | 复制光标当前一行 |
n+yy | n 为数字,代表复制多少行(例如 5+yy,就会连续复制5行) |
y+$ | 复制当前光标位置处,至当前行结尾处内容 |
y+^ | 复制当前光标位置处,至当前行开头处内容 |
y+w | 复制当前的单词 |
x | 剪切当前光标位置的字符(向后) |
shift+x | 剪切当前光标位置前一个的字符(向前) |
黏贴 | |
p | 黏贴复制的内容到光标当前行的位置 |
n+p | n 为数字,代表黏贴多少次次(例如 5+p,就会连续黏贴5次) |
删除 | |
dd | 删除光标当前一行 |
n+dd | n 为数字,代表删除多少行(例如 5+dd,就会连续删除5行) |
d+w | 删除一个单词(连同当前单词后面的空格) |
d+$ | 删除当前光标位置处,至当前行结尾处内容 |
d+^ | 删除当前光标位置处,至当前行开头处内容 |
编辑模式:
在普通模式下,按一下 i 就会进入到标记模式中;推出编辑模式按 ESC 即可。
按键 | 功能描述 |
---|---|
i | 当前光标前 |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行最后 |
O | 当前光标的上一行 |
指令模式:
指令模式一般都是一般模式中进入的,按: / ?
这三个键任意一个都可以进入指令模式。进入指令模式后,光标会移动至最下面一行,这个模式中可以进行对文件的读取,存盘,大量取代字符,离开等操作。
按键 | 功能描述 |
---|---|
:q | 退出 |
:w | 保存 |
:wq | 保存并退出 |
:q! | 强制退出,不做任何修改 |
/要查询的单词 | 在文中查找对应的单词;n 查找下一个/ N 查找上一个 |
:noh | 取消高亮显示 |
:set nu | 显示行号 |
:set nonu | 取消行号 |
:s/old/new | old 为准备替换的单词,new为新的单词;替换仅为当前光标所在行的第一个单词 |
:s/old/new/g | old 为准备替换的单词,new为新的单词;替换仅为当前光标所在行的所有单词 |
:%s/old/new | old 为准备替换的单词,new为新的单词;替换仅为每一行的第一个单词 |
:%s/old/new/g | old 为准备替换的单词,new为新的单词;替换为全局替换 |