vi 编辑器
语法
vi(选项)(参数) 选项
+<行号>:从指定行号的行开始先是文本内容;
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
-l:使用lisp模式,打开“lisp”和“showmatch”;
-m:取消写文件功能,重设“write”选项;
-M:关闭修改功能; -n:不实用缓存功能;
-o<文件数目>:指定同时打开指定数目的文件;
-R:以只读方式打开文件;
-s:安静模式,不现实指令的任何错误信息。
参数
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
知识扩展
vi编辑器有三种工作方式:命令方式、输入方式和ex转义方式。通过相应的命令或操作,在这三种工作方式之间可以进行转换。
移动光标的方法
参数 | 描述 |
---|---|
h 或者 ← | 光标向左移动一个字符 |
l 或者 → | 光标向右移动一个字符 |
j 或者 ↓ | 光标向下移动一个字符 |
k 或者 ↑ | 光标向上移动一个字符 |
如果想进行多次移动的话,例如向下移动30行,可以使用“30j”或“30↓”的组合按键,即即加上想要进行的次数(数字)后,按下操作即可
参数 | 描述 |
---|---|
【ctrl】+ f | 屏幕向下移动一页,相当于【Page Down】按键(常用) |
【ctrl】+ b | 屏幕向上移动一页,相当于【Page Up】按键(常用) |
【ctrl】+ d | 屏幕向下移动半页 |
【ctrl】+ u | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n【space】 | n:表示数字,按下数字后再按空格键,光标会向右移动这一行的n个字符 |
0 或 功能键【home】 | 移动到这一行的最前面字符处(常用) |
$ 或 功能键【End】 | 移动到这一行的最后面字符处 (常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个文件的最后一行 |
nG | n:表示数字。移动到这个文件的第n行 |
gg | 移动到这个文件的第一行,相当于1G |
n【Enter】 | n:表示数字。光标向下移动 n 行 |
查找与替换
参数 | 描述 |
---|---|
/word | 向下查找一个名称为word的字符串 |
?word | 向上查找一个名称为word的字符串 |
n | n:是英文按键。代表重复前一个查找的操作 |
N | N:是英文按键。与 n 相反。为 “反向”进行前一个查找操作 |
: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。且在替换前显示提示符给用户确认(confirm) 是否需要替换 |
删除、复制、粘贴
参数 | 描述 |
---|---|
x,X | 在一行中,x为向后删除一个字符(相当于【del】按键),X为向前删除一个字符(相当于【Backspace】) |
nx | n:表示数字,连续向后删除 n 个字符 |
dd | 删除光标所在的那一整行 |
ndd | n:表示数字。删除光标所在的向下 n 行 |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除从光标所在到最后一行的所有数据 |
d$ | 删除从光标所在到该行的最后一个字符 |
d0 | 数字0,删除从光标所在到该行的最前面一个字符 |
yy | 复制光标所在的那一行 |
nyy | n:表示数字,复制光标所在的向下 n 行 |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后以后的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符该行行尾的所有数据 |
p,P | p为将已复制的数据在光标下一行粘贴,P则粘贴在光标上一行 |
J | 将光标所在行与下一行的数据合并成同一行 |
c | 重复删除多个数据,例如向下删除10行,[10cj] |
u | 复原前一个操作 |
【ctrl】+ r | 重做上一个操作 |
. | 重复前一个操作 |
进入插入或替换的编辑模式
参数 | 描述 |
---|---|
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】 | 退出编辑模式,回到一般模式中 |
命令行的保存、离开等命令
参数 | 描述 |
---|---|
:w | 将编辑的数据写入硬盘文件中 |
:w! | 强制写入该文件。到底能不能写入,跟对该文件的文件权限有关 |
:q | 离开vi |
:q! | 若曾修改过文件,又不想存储,“!”强制离开不保存文件 |
:wq | 保存后离开 |
ZZ | 若文件没有更懂,则不保存离开,若文件已经被更动过,则保存后离开 |
:w[filename] | 将编辑的数据保存成另一个文件(类似于另存文件) |
:r[filename] | 在编辑的数据中,读入另一个文件的数据,即将“filename”这个文件的内容加到光标所在行后面 |
:n1,n2 w [filename] | 将 n1 到 n2的内容保存成 filename这个文件 |
:! command | 暂时离开vi 到命令行模式下执行 command 的显示结果 |
vim 环境的更改
参数 | 描述 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
块选择的按键的意义
参数 | 描述 |
---|---|
v | 字符选择,会将光标经过的地方反白选择 |
V | 行选择,会将光标经过的行反白选择 |
【ctrl】+v | 块选择,可以用长方形的方式选择数据 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除 |
多文件编辑的按键
参数 | 描述 |
---|---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个vim的打卡的所有文件 |
多窗口情况下的按键功能
参数 | 描述 |
---|---|
:sp [filename] | 打开一个新窗口,如果有filename,表示在新窗口打卡一个新文件。没有则表示两个窗口打开同一个文件内容 |
:vsp [filename] | 竖屏打开 |
【ctrl】+w + j 【ctrl】+w + ↓ |
光标移动到下面的窗口 |
【ctrl】+w + k 【ctrl】+w + ↑ |
光标移动到上面的窗口 |
【ctrl】+w +q | 结束离开 |
vim环境设置与记录
参数 | 描述 |
---|---|
:set all | 显示目前所有的环境参数设置值 |
:syntax on :syntax off |
表示是否依据程序相关语法显示不同颜色 |