1.vi的三种模式(Linux环境)
一般命令模式;编辑模式;命令行模式;
- 命令模式:以vi打开一个文件就直接进入一般命令模式。在这个模式中,可以使用【上下左右】按键来移动光标,【删除字符】或【删除整行】【复制、粘贴】来处理文件内容;
- 编辑模式:命令模式下,按下【i、a】等字母后进入编辑模式;按下这些按键四,在界面下方会出现【INSERT]的字样,此时才可以进行编辑;按下【Esc】键可退出编辑模式;
- 末行模式:命令模式下,输入【:/ ?】中的任何一个,就可以将光标移动到最下面的那一行,此模式即为命令行模式。这个模式中,可以提供【数据查找】的操作,而读取、保存、批量替换、退出vi、显示行号等的操作都是在此模式下完成;
简易执行范例
- 使用【vi 文件名】进入一般模式;
- 按下i进入编辑模式,开始编辑文字,编辑文本;
- 文本编辑完后,按下【Esc】键回到一般命令模式;
- 按下【:】进入命令行模式,【wq】文件保存并退出vi环境;
2.按键说明(快速入门)
- 第一部分:一般命令模式下可用的功能说明;光标移动、复制粘贴、查找替换等
光标移动
按键 | 作用 |
---|
h或向左箭头 | 光标向左移动一个字符 |
j 或向下箭头 | 光标向下移动一个字符 |
k或向上箭头 | 光标向上移动一个字符 |
l或向右箭头 | 光标向右移动一个字符 |
% | 括号对应跳转 |
0或功能键【Home】 | 移动到光标所在行行首 |
$ 或功能键【End】 | 移动到光标所在行行尾 |
gg | 移动到整个文件的第一行 |
ngg | 移动到整个文件的第n行(n为数字) |
G | 移动到整个文件的最后一行 |
gg=G | 整体代码缩进排版 |
复制粘贴删除
按键 | 功能 |
---|
yy | 复制光标所在的那一行 |
nyy | 复制光标所在的向下n行,(n为数字) |
dd | 剪切(删除)光标所在的一整行 |
ndd | 剪切(删除)光标所在的向下n行,(n为数字) |
p | 将已复制的数据粘贴(当前光标所在行的下一行位置粘贴) |
u | 撤销 即恢复前一个操作 |
【CTRL】 +r | 反撤销 |
x | 删除光标所在位置的一个字符 |
d0 | 删除光标当前位置至行首的所有内容 |
d$或D | 删除光标当前位置至行尾的所有内容 |
dw | 删除一个单词(注意使光标位于单词首字母) |
查找与替换
按键 | 功能 |
---|
/word | 向光标之下寻找一个名称为word的字符串 |
?word | 向光标之上寻找一个名称为word的字符串 |
n | n为英文按键,代表重复前一个查找的 操作 |
N | N为英文按键,与n相反,为反向进行前一个操作 |
r | 按r键在当前光标位置输入需要替换的字符,实现单个字符替换 |
:n1,n2s/word1/word2/g | 末行模式下n1和n2为数字,在第n1行与第n2行寻找word1这个字符串,并将该字符串替换为word2 |
:1,$s/word1/word2/gc | 末行模式下从第一行到最后一行寻找word1字符串,并将该字符串替换为word,且在替换前征求用户意见 |
注释:
s:substitute 替换
g:global 全局
c: confirm 确认
- 第二部分:一般命令模式切换到编辑模式的可用按键说明
进入编辑模式
按键 | 功能 |
---|
i | 进入插入模式,从光标当前位置前插入 |
a | 进入插入模式,从光标当前位置后插入 |
o | 进入插入模式,从光标当前位置的下一行处插入 |
v | 进入可视模式,hjkl键选中,进行对应需要的操作; |
【Esc】 | 退出编辑模式,回到一般命令模式中 |
- 第三部分:一般命令模式切换到命令行模式的可用按键说明
命令行模式的保存、退出
按键 | 功能 |
---|
:w | 将编辑的数据写入硬盘文件中 |
:w! | 若文件属性为只读时,强制写入该文件 |
:q | 退出vi编辑器 |
:! | 若曾修改过文件,又不想保存,强制退出不保存 |
:wq | 保存并退出;若为:wq!则为强制保存并退出 |
:set nu | 显示行号,设置之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与set nu 相反,为取消行号 |