Learn VIM
动手学VIM编辑器
0x1:What is VIM editor?
vi编辑器通常被简称为vi,而vi又是visual editor的简称 。它在Linux上的地位就像Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。vi有3种基本工作模式:命令行模式、文本输入模式和末行模式。
Vim是vi的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。
—摘自百度百科
0x2:命令模式情形下的一些命令
进入命令模式的方法:ESC
#查看VIM编辑器的帮助信息。
:help
#正常退出退出编辑器
:q
#保存并退出编辑器
:wq
#保存退出编辑器,并将文件存储为filename
:wq filename
#强制退出,不保存
:q!
#打开某文件(需保存当前文件,否则会报错)
:e /root/file
#强制打开某文件
:e! /root/file
#读取某文件,追加到当前文件末尾
:r /root/file
#保存文件
:w (文件路径)
0x3:插入模式的一些快捷按键操作
#进入插入模式,将光标放在当前光标之后
a
#进入插入模式,将光标放在当前光标所在的行尾
A
#在当前光标的下一行插入新行,并将光标放在新行的行首
o
#在光标的前一行插入一行,并将光标放在行首
O
#在光标所在位置进入插入模式,貌似这个用得最多了
i
0x4 移动光标
在进行编辑的时候,可能需要移动光标位置,进行修改或者输入新的内容,除了使用方向键之外,在命令模式下,使用hmjkl也能够快速的移动光标。
k:向上移动光标
j:向下移动光标
h:向前移动光标
l:向右移动光标
这种感觉有点像玩FPS游戏的wasd方式,不过是把操作放在了右手上而已。用起来感觉还蛮不错的。
0x5 删除文本
使用退格键或者delete键可以删除当前光标前或所在处的字符,然而在VIM中还可以使用命令来删除我们想删除的内容哦。
x :删除当前光标所在处的字符,如果想删除多个字符,连续着按。
dd :删除当前光标所在行,如果想删除多行,可以用ndd的方式,n为你想删除的行数。
dw :删除光标处的单词,包括词尾的空格。
de :删除当前光标所在处的单词,和dw的区别在于保留了单词词尾的空格。
d^ :删除当前光标所在位置到行首的所有字符。
d$ :删除当前光标到行尾的所有字符。
J :将当前光标所在行和下一行合并(删除行尾的换行符)
0x6 撤销和恢复
u :撤销上一步操作,可多次使用。
Ctrl+r :放弃上一次撤销操作,可使用多次。
0x7 快速移动光标
b :将光标移动到当前光标所在单词的前一个单词的首字母,可以使nb,即移动n个单词的位置。
w :将光标移动到当前光标的后一个单词的首字母,可以使nw,即移动到n个单词后的首字母。
e :移动到后一个单词的尾字母,可以使ne,效果与之前的效果类似。
ge :与e的作用相反,移动光标至前一个单词的尾字母,也可是是nge,n表示需要跨过的单词数目。
^ :快速移动光标到行首,Home键,0键也可以移动光标的行首。
$ :快速移动光标到行尾,End键也可以移动光标到行尾。n$,可以将光标移动到当前行之后n-1行的末尾。
g :跳到当前文本的第一行,也可以使用1G。
G :跳到当前文本的最后一行。
nG :跳转到第n行,其中n为一个正整数。
当然,咱们的鼠标也是可以定位光标的,哪里需要点哪里!
0x8 查找功能
在命令模式下,正向查找的命令为“/”
/pattern :pattern为需要查找的字符串,可以是正则表达式。
在正向查找状态下
n :跳转到下一条匹配的内容。
N :跳转到上一条匹配的内容。
反向查找的命令为“?”
?pattern
在反向查找状态下
n :跳转到上一条匹配的内容。
N :跳转到下一条匹配的内容。
0x9 替换功能
替换使用的命令是s,基本格式如下:
: s/pattern1/pattern2/
pattern1表示要查找的文本,pattern2为替换后的文本,“/”为分隔符,分隔符也可以是“:”。
谨慎的查找替换
:%s/pattern1/pattern2/gc
执行这条命令之后,VIM会查找到所有匹配pattern1的字符串,并提示用户是否需要进行替换。
以上是VIM编辑器的一些基础的使用方法,其功能还很强大,待之后用到了再补充吧。
参考书:《Linux 命令、编辑器与SHELL编程》 王刚等著