一:启动vi
符号 | 意义 |
---|---|
vi filename | 打开或新建文件,并将光标置于第一行首 |
vi +n filename | 打开文件,并将光标置于第n行首 |
vi +/pattern filename | 打开文件,直接到匹配内容 |
vi +filename | 打开或新建文件,并将光标置于最后一行首 |
vi +srt filename | 打开文件,并将光标置于第一个与str匹配的位置 |
vi -r filename | 上次使用vi系统时崩溃,恢复filename |
vi -m filename | 以只读模式打开 |
vi filename1 filename2 | 打开多个文件,依次编辑 |
vi -d filename1 filenamen | 比较两个文件的差别 |
二:三种模式
- 命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
符号 | 意义 |
---|---|
: | 切换到底线命令模式,以在最底一行输入命令。 |
i | 切换到输入模式,以输入字符 。 |
I | 从当前所在行的第一个非空格符处开始插入。 |
~ | 大小写转化。 |
x | 删除当前光标所在处的字符。 |
n+x | 向又删除n行内容,包括光标所在位置 |
Ctrl+f | 像文章尾部翻一屏 |
Ctrl+b | 像文章首部翻一屏 |
Ctrl+d | 像文章尾部翻半屏 |
Ctrl+U | 像文章首部翻半屏 |
a | 从当前光标所在的下一个字符出开始插入 |
A | 从当前光标所在行的最后一个字符开始插入 |
o | 从当前光标的所在行的下一行插入新的一行 |
O | 从当前光标的所在行的上一行插入新的一行 |
r | 替换所在光标的那个字符一次 |
R | 进入替换模式,替换所在光标的那个字符,直到遇到Esc为止 |
dd | 删除光标所在行 |
n+dd | 向下删除n行内容,包括光标所在行 |
n+yy | 将从光标所在行向下n行复制 |
n+yw | 将从光标所在的位置向右的n个字符串(单词)复制 |
start commmand end | y复制,d删除,gU变大写,gu变小写 |
p | 将复制(或者最后一次删除)的字符串(或行)粘贴到所在行的位置 |
u | 撤销上一部操作 |
. | 重复上一部操作 |
ZZ | 保存退出 |
ZQ | 不保存退出 |
- 末行模式(扩展模式 )
命令行模式按":“键进入末行模式,提示符为”:"
末行命令执行后,vi自动回到命令模式,若在末行模式的输入过程中,可按退格键将输入的命令全部删除,再按一下退格键,即可回到命令模式
符号 | 意义 |
---|---|
:w | 将编辑的数据保存到文件中。 |
:w! | 若文件属性为"可读"时,强制写入文件。 |
:q | 退出。 |
:q! | 强制退出不保存文件。 |
# | 具体到第几行。 |
#,# | 从第几行到第几行。 |
#,+# | 从左侧第几行加上第几行。 |
$ | 最后一行。 |
% | 全文。 |
:w filename | 将编辑的数据保存成另一文件。 |
: /word | 向下寻找一个名称为word的字符串。 |
: ?word | 向上寻找一个名称为word的字符串。 |
:n1,n2s/word1/word2 | 在第n1行与第n2行之间寻找word1的字符串,并替换为word2,只替换一个。 |
:n1,n2s/word1/word2/g | 在第n1行与第n2行之间寻找word1的字符串,并替换为word2,全局替换。 |
:1,$s/word1/word2/g | 寻找word1的字符串,并替换为word2。 |
%!xxd | 编辑二进制文件 |
%!xxd -r | 转回二进制 |
:set nu | 显示行号。 |
:set nonu | 隐藏行号。 |
:next | 打开下一个文件 |
:prev | 打开前一个文件 |
:first | 打开第一个文件 |
:wall | 保存所有 |
:qall | 退出所有 |
set ai | 自动缩进 |
set noai | 取消自动缩进 |
set hlsearch | 高亮搜索 |
set nohlsearch | 禁用高亮搜索 |
syntax on | 语法高亮 |
syntax off | 取消语法高亮 |
set list | 显示tab和换行符 |
set nolist | 取消显示tab和换行符 |
:wqall | 退出保存所有 |
!command | 执行命令 |
r!command | 执行命令,直接写入文件 |
用set all可以查看更多帮助
- 输入模式
在命令行模式下输入 在这里插入图片描述i,I,a,A即可到输入模式。
其他:
按键 | 功能 |
---|---|
v | 字符选择,将光标经过的地方反白选择 |
v(大写) | 块选择,将光标经过的地方反白选择 |
ctrl+v | 块选择,可以用长方形的方式选择数据 |
vim+o(大写) | 将多文件垂直分割 |
vim+o(小写) | 将多文件水平分割 |
Ctrl+w,s | 水平分割 |
Ctrl+w,v | 垂直分割 |
Ctrl+w,q | 取消相邻窗口 |
Ctrl+w,o | 取消全部窗口 |