vim编辑器相当于Windows下的word和wps等可用来编辑文本的软件,之所以在开发工作中需要会使用vim编辑器,是因为Vim可实现跨平台编辑文本,无论在Mac,Windows上,还是服务器平台上,配置文件大同小异,操作习惯基本相同。
和Windows下的编辑器不一样的是,vim的基本操作都是以键盘命令为主。在初次使用时与日常的鼠标操作有很大的不同,但是使用习惯后,你会爱上这种帅气且高效的编辑方式。
vim编辑器的文本操作是在不同模式下进行的。可分为normal模式或者命令模式,编辑模式(vim底部出现--INSERT--
字符),底部命令模式(vim底部有冒号:
)。
注:编辑模式和底部命令模式之间切换时,需要先按Esc回到normal模式。为解决模式切换的问题,我的习惯是,每次操作都按Esc,然后根据vim底部提示知晓当前模式。
normal模式:通过vim filename
命令打开文件,进入该模式,也可叫命令模式,在此模式下,任何的键盘操作被视为命令,即在vim的Normal模式下,所有的键均为功能键。其他模式按Esc键回到该模式。
在此模式下,常用命令有:
-
光标移动:
-
h
左移光标一个字符 -
l
右移光标一个字符 -
k
光标上移一行 -
j
光标下移一行 -
^
/ 数字0
/home
键 光标移动至段首 -
$
/end
键 光标移动至段尾 -
gg
/{
光标移至文章的开头 - 大写字母
G
/}
光标移至文章的最后 -
nG
移动到第n行的行头,n代表数字 -
w
光标跳到下个字的开头 -
b
光标回到上个字的开头 -
Ctrl+f
向前翻屏 -
Ctrl+b
向后翻屏 -
Ctrl+d
向前翻半屏 -
Ctrl+u
向后翻半屏
-
-
删除文字:
-
x
每按一次,删除光标所在位置后面的一个字符。nx
表示删除多个字符。eg:6x表示删除光标所在位置后面的6个字符 -
X
大写的X,每按一次,删除光标所在位置前面的一个字符。nX
表示删除多个字符 -
dd
删除光标所在行。ndd
表示删除多行
-
-
复制、粘贴文字:
-
yy
复制光标所在行到缓冲区。nyy
表示复制多行。eg:6yy表示拷贝从光标所在的该行“往下数”6行文字
-
除了整行复制,还可以像Windows下一样,选中复制。选中复制分为两种:
1.按v
进入可视化模式(vim底部出现--VISUAL--
字符)。进入可视化模式之后,移动光标到指定位置,即选中光标开始和结束位置内容,按y
键,将选中内容存到vim缓冲区。
2.按Ctrl + v
进入可视化块模式(vim底部出现--VISUAL BLOCK--
字符),进入这个模式可以配合光标的上下左右移动,在文本中选取文本块进行复制。
-
p
paste,将vim缓冲区内的字符贴到光标所在位置
注:所有与
y
有关的复制命令都必须与p
配合才能完成复制与粘贴功能。
- 查找文字:
-
/text
text为需要查找的文本 -
n
向后查找下一个 -
N
向前查找下一个
-
注:替换在底部命令模式中完成
- 撤销:
-
u
撤销上次操作
编辑模式:从normal模式按i
/(小写字母)o
/(大写字母)O
等都可进入该模式,进入该模式后vim底部出现--INSERT--
字符。在该模式下可进行文档编辑操作,与word类似。
注:在该模式下对文档进行编辑后,要进入底部命令模式对文档进行保存
进入该模式的方式:
-
i
在光标处插入
一个小技巧:按8,再按i,进入编辑模式,输入=, 按两次Esc进入命令模式,就会出现8个=。 这在插入分割线时非常有用,如30i+两次Esc就插入了36个+组成的分割线。
- 小写字母
o
在光标所在行下面新建一行插入 - 大写字母
O
在光标所在行上面新建一行插入
底部命令模式:在normal模式下按冒号:
,进入该模式。此时,vim底部出现冒号:
,即可在冒号:
后键入命令,按Enter
后生效。
在此模式下,常用命令有:
-
w
保存 -
q
退出 -
wq
保存退出 -
q!
强制退出,不保存 -
set nu
显示行号 -
pwd
显示vim的工作目录 -
w filename
存入文件filename中,即另存为 -
set mouse=a
可用鼠标选中文本,选中文本后,vim底部出现--VISUAL--
字符,进入可视化模式,后与y
和p
配合完成复制粘贴 -
set mouse=v
可用鼠标选中文本,与word类似,与鼠标右键配合完成复制粘贴 -
s/old/new
将光标所在行第一个 old 替换为 new -
s/old/new/g
将光标所在行所有 old 替换为 new -
%s/old/new/gc
全文执行替换,询问是否替换 -
3,10s/old/new/gic
将第3行到第10行内容替换,忽略大小写,且每个询问是否替换
网友评论