vim编辑器
vim的三种模式
一般指令模式(command mode)
打开文件的时候就进入了一般指令模式(这个是默认的模式),这个模式中可以移动光标,可以“删除字符”或者“删除整行”,也可以使用“复制,粘贴”来处理文件数据
但是无法编辑文件内容
常用按键说明
按键 | 效果 |
---|---|
ctrl + f | 屏幕向下移动一页,相当于[Page Down]按键 |
ctrl + b | 屏幕向上移动一页,相当于[Page Up]按键 |
ctrl + d | 屏幕向下移动半页 |
ctrl + u | 屏幕向上移动半页 |
x,X | 在一行字当中,x为向后删除一个字符,X为向前删除一个字符 |
0 | 数字0,移动到这一行的最前面字符处,相当与[Home]按键 |
$ | 移动到这一行的最后面字符处,相当于[End]按键 |
u | 复原前一个动作 |
G | 移动到这个文件的最后一行 |
ctrl + r | 重做前一个动作 |
gg | 移动到这个文件的第一行,相当于1G |
dd | 删除游标所在的那一整行 |
ndd | n为数字,删除光标所在的向下n行 |
yy | 复制游标所在的那一行 |
nyy | n为数字,复制光标所在的向下n行 |
p, P | p为将已复制的数据在光标下一行粘贴上,P则为粘贴在游标上一行 |
n + Enter | n为数字,光标向下移动n行 |
/word | 向光标之下寻找一个名称为word的字符串 |
?word | 向光标之上寻找一个字符串名称为word的字符串 |
:n1,n2s/word1/word2/g | n1与n2为数字,在第n1和n2行之间寻找word1这个字符串,并将该字符串取代为word2 |
:1,$s/word1/word2/g | 从第一行到最后寻找word1字符串,并将该字符串取代为word2 |
:1,$s/word1/word2/gc | 从第一行到最后一行寻找word1字符串,并将该字符串取代为word2,且在取代前显示提示字符给用户确认是否需要取代 |
编辑模式(insert mode)
当按下(i, I, o, O, a, A, r, R)等任何一个字符之后进入编辑模式,这样就可以对文本内容进行编辑了,注意:如果要回到一般的指令模式时,则必须要按下[Esc]这个按键即可退出编辑模式
常用按键说明
按键 | 效果 |
---|---|
i,I | 进入插入模式(Insert mode),i为从目前光标所在处插入,I为在目前所在行的第一个非空格符处开始插入 |
a,A | 进入插入模式(insert mode),a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入 |
o, O | 进入插入模式(insert mode),o为在目前光标所在的下一行处插入新的一行,O为在目前光标所在处的上一行插入新的一行 |
r,R | 进入取代模式(Replace mode),r只会取代光标所在那一个字符一次;R会一直取代光标所在的文字,直到按下Esc为止 |
Esc | 退出编辑模式,回到一般指令模式中 |
指令行命令模式
在一般模式中,输入(: / ?)三个中的任何一个按钮,就可以进入指令行命令模式,这个模式中可以”查找字符”,而“读取”,“存盘”,“大量取代字符”,“离开vim”,“显示行号”等等动作都是在这个模式中达成的
按键 | 效果 |
---|---|
:w | 将编辑的数据写入硬盘文件中 |
:q | 离开vim |
:wq | 存储后离开 |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 取消行号 |
vim的暂存档,非正常退出的恢复
暂存档
我们在使用vim编辑的时候,vim会在与编辑的文件的目录下,再建立一个名为.filename.swap的文件,对filename做的动作就会被记录到这个.filename.swap中
非正常退出之后的恢复
当非正常推出后,vim会出现一些警告信息,以下是如何处理这些警告信息
操作 | 效果 |
---|---|
(O)pen Read-Only | 打开此文件成为只读档 |
(E)dit anyway | 正常方式打开需要编辑的那个文件,并不会载入暂存盘的内容,不过很容易出现两个使用者互相改变对方的文件等问题 |
(R)ecover | 加载暂存盘的内容,用于救回之前未储存的工作 |
(D)elte it | 开启文件之前将暂存盘删除(.swap文件) |
(Q)uit | 按下q就离开vim |
(A)bort | 忽略这个编辑行为,与q类似 |
vim区块选择
操作 | 效果 |
---|---|
v | 字符选择,会将光标经过的地方反白选择! |
V | 行选择,会将光标经过的行反白选择 |
ctrl + v | 区块选择,可以用长方形的方式选择资料 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除掉 |
p | 将刚刚复制的区块,在游标所在处贴上 |
vim多文件编辑与多窗口功能
多文件编辑按键
操作 | 效果 |
---|---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个vim开启的所有文件 |
vim支持多文件编辑,一个vim可以运行 vim file1 file2 ...
,从而打开多个文件,进行多文件编辑,操作示例如下:
现在我的目录下有两个文件如下所示
[root@localhost tmp]# ls -al
总用量 20
drwxr-xr-x. 2 root root 60 10月 17 18:53 .
dr-xr-x---. 16 root root 4096 10月 17 18:53 ..
-rw-r--r--. 1 root root 72 10月 17 18:48 bbb
-rw-r--r--. 1 root root 5172 10月 17 18:44 man_db.conf
-rw-r-
运行 vim man_db.conf bbb
用 :files
查看可以得到如下结果
:files
1 %a "man_db.conf" 第 27 行
2 "bbb" 第 0 行
请按 ENTER 或其它命令继续
这样可以回到任意文件下进行编辑,并且能够随意地切换,必要的时候可以将man_db.conf下的内容复制到bbb中。
假如我要将man_db.conf中的第一行到第四行的内容复制到bbb的末尾,进行如下操作即可:
- 执行
gg
到文本内容的开头 - 执行
4yy
复制接下来的四行 - 执行
:n
切换到bbb文件 - 执行
G
到文件末尾 - 执行
p
即可在文件末尾添加刚刚复制的文件了 - 执行
wq
保存并且退出
多窗口功能
情景描述
操作 | 效果 |
---|---|
:sp [filename] | 开启一个新窗口,如果有filename,表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示) |
ctrl + w + [j,↓] | 光标移动到下方的窗口 |
ctrl + w + [k,↑] | 光标移动到上方的窗口 |
ctrl + w + q | 类似于:q,离开 |
vim的关键字补全
主要操作如下
组合按钮 | 补齐的内容 |
---|---|
ctrl + x -> ctrl + n | 通过目前正在编辑的这个文件的内容文字作为关键词,予以补齐 |
ctrl + x -> ctrl + f | 以当前目录内的文件名作为关键词,予以补齐 |
ctrl + x -> ctrl + o | 以扩展名作为语法补充,以vim内建的关键词,予以补齐 |
需要进行实验,相应的截图如下
vim环境设定与记录
这一节我发现就算我设置了自动缩排好像也没啥效果(或者说是在编写html的时候达不到windows那些集成工具的效果,话不多说To be continue吧)
To be continue……