简介
VIM是一个高效率的、功能强大的文本编辑器。它不像word之类的软件那么友好,所有的操作都需要靠键盘来完成。
进入Vim编辑程序,可以在终端输入下面的命令:
$vim [filename]
其中filename是要编辑器的文件的路径名。如果文件不存在,它将为你建立一个新文件。
Vim编辑程序有三种操作模式,分别称为编辑模式、插入模式和命令模式。
编辑模式
当运行Vim时,首先进入编辑模式。
在Vim的编辑模式里可以进行剪切粘贴,删除插入等操作。当完成所有的编辑工作后,需要保存编辑器结果,退出编辑程序回到终端,可以发出ZZ命令(连续按两次大写的Z键),或者输入/wq。
键盘上有上、下、左、右箭头的导航键来完成光标的移动。也可以用下面的按键达到同样的目的
按键 | 功能 |
---|---|
k | 上移 |
j | 下移 |
h | 左移 |
l | 右移 |
更多的移动方法:
* 当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
# 当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;
(/) 移动到 前/后 句 的开始;
{/} 跳转到 当前/下一个 段落 的开始。
g_ 到本行最后一个不是 blank 字符的位置。
fa 到下一个为 a 的字符处,你也可以fs到下一个为s的字符。
t, 到逗号前的第一个字符。逗号可以变成其它字符。
3fa 在当前行查找第三个出现的 a。F/T和 f 和t一样,只不过是相反方向;
gg 将光标定位到文件第一行起始位置;
G 将光标定位到文件最后一行起始位置;
NG或Ngg 将光标定位到第N行的起始位置。
搜索方法:
无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。
/string 查找文本中光标位置下方的string字符串,如要查找apple则直接输入/apple即可
?string 查找文本中光标位置上方的string字符串,方法同上
删除与替换:
Vim常规的删除命令是d(删除行)、x(删除字符)。结合Vim的其他功能可以实现基础的删除功能。
将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符或一行、多行。
rc 用 c 替换光标所指向的当前字符;
nrc 用 c 替换光标所指向的前 n 个字符;
x 删除光标所指向的当前字符;
nx 删除光标所指向的前 n 个字符;
dw 删除光标右侧的字;
ndw 删除光标右侧的 n 个字;
db 删除光标左侧的字;
ndb 删除光标左侧的 n 个字;
dd 删除光标所在行,并去除空隙;
ndd 删除(剪切) n 行内容,并去除空隙;
Vim常规的替换命令有c和s,替换命令执行以后,通常会由编辑模式进入插入模式:
s 用输入的正文替换光标所指向的字符;
ns 用输入的正文替换光标右侧n个字符;
S 删除当前行,并进入编辑模式;
nS 删除当前行在内的n行,并进入编辑模式;
cw 用输入的正文替换光标右侧的字;
ncw 用输入的正文替换光标右侧的n个字;
cW 用输入的正文替换从光标到行尾的所有字符(同 c$ );
cb 用输入的正文替换光标左侧的字;
ncb 用输入的正文替换光标左侧的n个字;
cd 用输入的正文替换光标的所在行;
ncd 用输入的正文替换光标下面的n行;
c$ 用输入的正文替换从光标开始到本行末尾的所有字符;
c0 用输入的正文替换从本行开头到光标的所有字符。
复制粘贴:
Vim中删除的内容并非真正地删除,而是被剪切到了内存缓冲区。所以直接进行删除、粘贴操作就可以实现剪切的效果。
有时需要复制一段内容到新位置。这时就需要把指定内容复制(而不是剪切)到内存缓冲区。
yy 复制当前行到内存缓冲区;
nyy 复制 n 行内容到内存缓冲区;
“+y 复制1行到操作系统的粘贴板;
“+nyy 复制 n 行到操作系统的粘贴板。
粘贴的基本命令:
p 小写字母 p,将缓冲区的内容粘贴到光标的后面;
P 大写字母 P,将缓冲区的内容粘贴到光标的前面。
撤销和重复
编辑内容的过程中有时候会出现误操作,这时可以用撤消命令。如果想在当前光标位置重复上次执行的编辑命令,可以用重复命令。
u 撤消前一条命令的结果;
. 重复最后一条修改正文的命令。
插入模式
插入模式是可以正常编辑内容的模式
按以下按键均可以进入插入模式
i 在光标左侧插入正文a在光标右侧插入正文
o 在光标所在行的下一行增添新行
O 在光标所在行的上一行增添新行
I 在光标所在行的开头插入
A 在光标所在行的末尾插入
退出插入模式
按ESC键,退出插入模式之后,将会进入编辑模式 。
如果无法区分当前模式,那就狂按ESC键吧。