Vim 简介

Vim是在Linux环境下的一种强大的文本编辑工具,之所以学习它,是由于在服务器上写代码需要直接在服务器上操作,不像windows上有那种简单课操作的编辑器,如sublime等等。

Vim 模式

Vim与大多数文本编辑器不同,它的默认模式为移动光标,删除文本等,而不是大多数编辑器那样直接为插入模式。

普通模式:

普通模式能进行的操作如移动光标,删除文本等。

删除指令:

dd :删除当前行

d+ 上下左右移动指令,分别表示删除上一行,左一个,下一行,或右一个

2dd: 删除两行

插入模式:

在普通模式按i,或a进入插入模式,ESC推出插入模式。

可视模式:

这个模式类似与普通模式,对样本有高亮

命令行模式:

在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/?键)或者过滤命令(!键)

游标使用:

h,j,k,l:分别表示上下左右移动

w: 向下一个单词,b: 向上一个单词

进入插入模式

i : 当前光标出插入

A: 当前光标所在行最后一个位置插入

o: 当前光标的下一行插入

a: 当前光标的后一个位置

退出Vim模式

:x: 保存并退出,等同于:wq

:q!: 强制退出,不保存

:q: 退出不保存

shift + zz: 退出并保存

删除文本

普通模式下的删除文本操作。

x: 删除当前光标处的一个字符

X:删除光标前一个字符

dd: 删除整行

dw: 删除整个单词

D: 删除至句尾

d^: 删除至句首

dG: 删除至文章末尾

d1G: 删除至文章开头

重复执行上次命令

普通模式下.表示重复执行上一次命令。执行相同执行操作代码:N<command>,如10x,20dd,d5w

显示行号: :set nu

行间跳跃

NG: 游标跳到第N行

gg: 游标跳到第一行

G: 游标跳到最后一行

ctrl + o: 回到上一次跳转的位置

行内跳跃

w: 跳到下一个单词的开头

e: 当前单词的结尾

0: 跳到行头

$: 跳到行尾

f 字母:向后搜索字母并跳到第一个该字母的位置

F 字母:向前搜索字母,第一个字母位置

t 字母: 向后搜索字母,并跳到这个字母的前一个数

T 字母: 向前搜索字母,并跳到其后一个数

~: 将字母大小写转换

文本的复制

yy: 复制游标所在的整行

3yy:复制3行

y0: 复制到行首

y$: 复制到行尾

字符替换及坐标操作

r + <替换字母>: 替换掉光标所在位置的字母

R: 连续替换,知道按下esc

cc: 删掉这一行,换为插入模式

cw: 删掉一个词然后进入插入模式

C: 删除光标位置一直到行末,进入插入模式

u: 撤销当前操作

U: 撤销当前所有操作

指令替换

1
%s/imgs/car_openimg\/imgs # 使用car_openimg/imgs替换imgs

缩进

shift + >: 向右缩进

shift + <: 向左缩进

查找

/ + word: 表示查找word,输入n或N查找下一个位置

? + word: 与上相同,只不过查找方向不同

\*: 查找游标所在位置的单词

g\*: 查找部分符合要求的单词

视窗

:new: 新建视窗

:close: 关闭视窗

:q: 同上

执行外部shell命令

:! command:执行外部shell 命令

:w filename: 将当前编辑的文件另存为filename

vim 确认当前的括号:

shift + e: 光标跳到当前内容的第一个框

重复上次操作:小数点 .

VIM 打开多个文件

1
2
vim 1.py 2.py
:bn ## 切换

Vim 行移动

1
dd,k,p

k为向上移动,当移动到合适的位置时用p粘贴。

tabe 多标签切换

:tabe a.txt: 打开a.txt 文件

gt: 在多标签中切换

:tabc 关闭标签,或:x

vim 跳转到变量或函数的定义处

1
2
[ ,ctrl+i #跳转
ctrl + o : #跳转回来

查找鼠标所在位置的字符:gd