2017-2-20更新
Vim简介
Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
Vim基本模式
普通模式:正常模式,Vim的默认模式,用于移动光标,删除文本等,通过各种命令组合,能够更高效的进行文本编辑;
插入模式:即insert模式,普通模式下按键盘i
(在光标所在字符前进入插入模式)或者a
(在光标所在字符后进入插入模式)键进入,用于输入及编辑文本内容,按<ESC>
键会返回编辑模式;
命令行模式:在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:
键),搜索(/
和?
键)或者过滤命令(!
键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
PS:Vim 需要输入的大小写,包括命令
常用命令
光标移动
k 上移;
j 下移;
h 左移;
l 右移。
翻页
ctrl+f 在文件中前移一页(相当于 page down);
ctrl+b 在文件中后移一页(相当于 page up);
定位
gg 将光标定位到文件第一行起始位置;
G 将光标定位到文件最后一行起始位置;
NG或Ngg 将光标定位到第 N 行的起始位置。
* 当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
# 当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;
ctrl + g 显示当前文件行/总数,结合数字+G或g的使用
行为参数
w 右移光标到下一个单词的开头;
e 右移光标到一个单词的末尾;
b 左移光标到前一个单词的开头;
0 数字0,左移光标到本行的开始;
$ 右移光标,到本行的末尾;
^ 移动光标,到本行的第一个非空字符。
搜索
普通模式下键入/
,后面加上需要搜索的字符串,按下回车即开始正向搜索,找到字符串后,光标停留在字符串前,此时,按下n
键会继续搜索。
键入?
,加上需要搜索的字符串,按下回车则是开始反向搜索,其他选项参考/
。
/str1 正向搜索字符串 str1;
?str2 反向搜索字符串 str2 。
n 继续搜索,找出 str1 字符串下次出现的位置;
N 继续搜索,找出 str1 字符串上一次出现的位置;
ctrl + O 回退上一个搜索的位置,重复按可回退更多
ctrl + I 跳转至新的位置
删除&替换
Vim中,删除表示讲删除的内容剪切到内存缓冲区,所以删除、剪切均不是真正的删除,所以,删除(剪切)的内容可以用于粘贴到其他位置。
dd 删除行
x 删除字符
p 小写字母 p,将缓冲区的内容粘贴到光标的后面;
P 大写字母 P,将缓冲区的内容粘贴到光标的前面。
c 替换当前字符
更改类操作组合
我们可以通过,组合操作的方式强化更改类的操作命令,基本的语法是:
c [number] motion
这里的motion
就是前面提到的行为参数,比如:
ce 替换掉一个单词;
dw 从当前光标删除到下一个单词;
de 从当前光标删除到行末尾;
其他操作:
rc 用 c 替换光标所指向的当前字符;
nrc 用 c 替换光标所指向的前 n 个字符;
5rA 用 A 替换光标所指向的前 5 个字符;
x 删除光标所指向的当前字符;
nx 删除光标所指向的前 n 个字符;
3x 删除光标所指向的前 3 个字符;
dw 删除光标右侧的字;
ndw 删除光标右侧的 n 个字;
3dw 删除光标右侧的 3 个字;
db 删除光标左侧的字;
ndb 删除光标左侧的 n 个字;
5db 删除光标左侧的 5 个字;
dd 删除光标所在行,并去除空隙;
ndd 删除(剪切) n 行内容,并去除空隙;
3dd 删除(剪切) 3 行内容,并去除空隙;
撤销&重复使用
u 撤销你的上一次操作
ctrl + R 回退你撤销的操作
. 重复你的上一次操作 ,句号的那个点
参考来自:
Vimtutor
Vim入门基础
Vim使用入门
简明 VIM 练级攻略
命令行基础和vim基础和熟悉
linux命令参考:
linux基本命令(很全的)