Vim介绍

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。百度百科

使用

vim a.php #

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段,以其它任何模式按esc 即可进宪普通模式

i 在当前光标字符前插入 insert

a 在当前光标字符后插入 append

I 在当前行首插入 Insert

A 在当前行尾插入 Append

o 在下方开一新行,插入 open

O 在上方开一新行,插入 Open

r 替代字符,将当前字符替代为紧跟着输入的字符 replace

R 进入替代模式,将当前及之后的字符都替代为紧跟着输入的字符串,直到按 `` 返回 Normal 模式 Replace

gj 移动到屏幕折行后的下行

gk 移动到屏幕折行后的上行


命令模式是在普通模式下按 : 进入,用于搜索、保存退出等操作。

:w 保存

:w file 另存为文件

:q 退出

:q! 放弃修改退出

:wq 保存修改并退出


移动命令

Vim 的各种移动命令主要是在标准模式下

h 光标左移

j 光标下移

k 光标上移

l 光标右移

0 跳到行首,可以理解为无穷大的

h^ 跳到行首开始的第一个非空白字符

$ 跳到行尾,可以理解为无穷大的

lgg跳到首行,可以理解为无穷大的

kG跳到末行,可以理解为无穷大的

jw 跳到下一个词首

ge 跳到上一个词尾

b 跳到单词开头

e 跳到单词尾部

5k 向上移动 5 行

5j 向下移动 5 行

5w 向后移动 5 个词

fx 向前移动到字符 x 上

Fx 向后移动到字符 x 上

tx 移动到字符 x 前

Tx 向后移动到字符 x 前

zz 当前行设为页面中心

ctrl+o 移动到上次编辑位置,可以跨文件操作

ctrl+i 从上次编辑位置移动到本次编辑位置,可以跨文件操作


剪切操作

x 删除当前光标所在处的字符

X 删除当前光标左边的字符

d$ 删除从光标到一行末尾的整个文本

d0 删除从光标到一行开头的所有单词

dd 删除当前光标处的一整行

5dd 删除从光标开始处的 5 行代码

dgg 删除从光标到文本开头

dG 删除从光标到文本结尾

di 删除在引号之间的内容

dit 删除 HTML 标签内容

dtx 向后删除字符直到遇到第一个 x 字符

dw 删除到下一个单词的词首

dW 删除到右边界

daw 删除到左或边界,适合删除 HTML 属性

diw 删除光标所在单词

daw 删除光标所在单词,包括空格

dit 删除 html 标签内容

dat 删除 html 标签

D 删除到行尾

C 删除到行尾,进入插入模式

c^ 删除到行首

c$ 删除到行尾

ciw 删除单词并进行修改

caw 删除单词和空格并进行修改


复制粘贴

y 复制

p

yy 复制一整行

2yy 复制从当前光标所在行开始的 2 行

yit 复制标签内容

yat 复制完整标签

yG 复制到最后

y {复制到段落开始 y} 复制到段落结尾

yiw 复制单词并移到词首

yaw 复制单词并移到上个单词尾部

yit 复制 html 标签内容

yat 复制 html 标签


修改替换

cw 删除从光标处到单词结尾的文本并进入到插入模式

cb 删除从光标处到单词开头的文本并进入到插入模式

cc 删除一整行并进入到插入模式 r 替换当前光标下的字符

R 进入到替换模式

ctx 向后修改内容到

x 也就是意味着删除光标到 x 中间内容,并进入插入模式

ci 改写双引号中的内容

cc 编辑当前行

c^ 删除到行首,并进入编辑模式

c$ 删除到行尾,并进入编辑模式


注释操作

gcc 注释

gc2j 注释两行


查找替换

:/string 正向查找

:?string 反向查找

fx 向后查找 x 字符,按;继续查找

Fx 向前查找 x 字符,按;继续查找

:% s/a/b/g 全局搜索a替换为b

:5,12s/a/b/g 从第 5 行到 12 行替换 ab

:.,+2s/a/b/g 从当前行到后两行替换 ab


快速跳转

gg 跳转到第一行

G 跳转到最后一行

5G 跳到第 5 行

:5 跳转到第 5 行(命令模式)

{ 到段首

} 到段尾


撤销重做

u 撤销上一步的操作

ctrl+r 将原来的插销重做一遍