介绍

Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 Vim的第一个版本由布莱姆·米勒在1991年发布。现在是在开放源代码方式下发行的自由软件。

操作:

vim的4种模式

(一)普通/正常/命令模式(Normal mode)

正常模式:打开即进入正常模式,无法插入字符,在任何模式都可以通过按esc键回到正常模式。

(二)插入模式(insert mode)

插入模式:在正常模式下按i,a,o进入插入模式。插入模式在输入文本时使用。

(三)命令行模式(command-line mode)

命令模式:用于执行较长、较复杂的命令;在正常模式下键入冒号(:)即可进入该模式。

(四)可视模式(visual mode)

可视模式:在正常模式按v,shift+v,ctrl+v可以进入可视模式行。

vim配置文件地址:~/.vimrc

启动默认进入正常模式!任何模式esc都能回到正常模式!

插入模式:

:wq 保存并退出

:w 存盘

:q 退出

:q!强制退出

dd 删除当前行并把删除的内容保存到剪贴板

P(大写)粘贴到当前行的前一行

p(小写)粘贴到当前行的后一行

h 左 j 下 k 上 l 右

插入

a 在光标后插入

A 在行尾插入

i在当前字符之前插入

I在行首插入

o 在当前行后插入一个新行

O 在当前行前插入一个新行

cw 替换(change)从光标所在位置后到一个单词(word)结尾的字符

简单地移动光标

0 到行首

^ (shift+6) 当本行第一个不是blank字符的位置(blank指空格、tab键、换行、回车等)

$ (shift+4) 到本行行尾

g_ 到本行最后一个不是blank字符的位置

G (shift+g)跳转到结尾

ctrl+g 显示位置/状态信息

/pattern 搜索pattern字符串(如果搜索出了多个匹配项,可按n键跳到下一个)

拷贝/粘贴

p (在当前位置之后)粘贴

P大写 (在当前位置之前)粘贴

yy 拷贝当前行,相当于ddp

撤销和重做(undo/redo)

u undo 撤销

ctrl+r redo 重做

R 替换模式

r 替换字符

打开/保存/退出/改变文件

:e 文件名 打开一个文件

:w 存盘

:saveas 文件名 另存为

3个保存退出的命令

😡 保存并退出 如果有需要才会保存

ZZ(大写) 保存并退出,不需要冒号

:wq 保存并退出

:q! 退出不保存

:qa! 强行退出所有正在编辑的文件,就算别的文件有更改

:bn和:bp 可以同时打开多个文件使用他们来切换上一个或下一个文件

重复命令

.(小数点) 可以重复上一次的命令

N<命令> 重复某个命令N次

dd 删除当前行并把删除的内容保存到剪贴板

2dd 重复dd命令2次,即删除两行并把删除的内容保存到剪贴板

5p 重复粘贴文本5次

移动

NG G大写,光标移动到第N行 或使用Ngg

:N 也是光标移动到第N行

gg 光标移动到第一行

G 光标移动到最后一行

d按单词移动

w 到下一个单词的开头

e 到下一个单词的结尾

w/e 小写,单词由字母、数字、下划线组成(如果你认为单词是默认方式,是由字母数字下划线组成,用e/w)

W/E 大写,单词包括blank字符分隔符(如果认为单词是由blank字符分隔符组成,用W和E)

% 匹配括号移动(光标要先移动到括号上)

打开一个VIM文件

vim 文件名

打开n个vim文件

vim 文件1 文件2 文件3….

打开后默认显示file1,切换方式,在正常模式输入:ls

行操作

home 或 ^ 到行首

end 或 $ 到行尾

dd 删除一行 ndd 删除n行 5dd 删除5行

yy 复制一行 nyy 复制n行 5yy 复制5行

p 将复制行(向下)粘贴 P将复制的行(向上)粘贴

删除到行首 d+home或^

删除到行尾 d+end或$

词操作

dw 删除一个词,删除时要将光标移动到这个词的词首,如果光标不在一个词的词首,则删除所在单词的光标后的字母。

yw 复制一个词

w 切换单词

块操作

D或d+$ 删除至行尾 d+^ 删除至行首

y+$ 复制至行尾 y+^ 复制至行首

V模式

进入V模式后,移动光标可以选择区域

以多行注释为例:

1.ctrl+v 进入到列块编辑模式

2.向上或向下移动光标选择需要注释的行

3.shift+I 并输入#

4.按ESC键,你所选择的区域在行首就被添加了#注释符,且退回到命令模式。

删除多行注释

1.ctrl+v进入列编辑模式。

2.向上或向下移动光标选择需要取消的注释

3.按d就会删除选中的注释符号。

vim 的命令行模式

:w 保存

:q 没有任何修改时退出。

:q! 修改了但不保存,强制退出。

:wq 保存并退出

:wq!强制保存并退出

保存还可以用 😡 或 ZZ

改光标所在的一个字符用 :r

替换

:%s/this/that 每一行的第一个this被替换成that

:%sthis/that/g 将文本中的所有this替换成that

:5,10 s/this/that/g 5到10行中所有的this被替换成that

:set nu 这个命令可以显示行号

斜杠/正向查找 :/target n往下查找 N往上查找

:noh 取消高亮显示

:!ifconfig 调用系统命令

vim中定位到某行

gg定位到行首

G定位到最后一行行首

6G定位到第6行

:6 定位到第6行

6gg 定位到第6行

读取其他文件

:r /etc/ssh/sshd_config.bak 读取/etc/ssh/sshd_config.bak文件

vim打开多个文件

vim -o /etc/passwd /etc/hosts 同时打开passwd和hosts,小写o上下分屏

vim -O /etc/passwd /etc/hosts 同时打开passwd和hosts,大写O左右分屏

ctrl+ww 在文件之间切换

部分素材来源于网络整合,侵删!