vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器。vi有两种工作模式:命令模式和文本输入模式。启动vi需要输入vi,按[Spacebar]键并输入文件名后回车。
vi从命令模式切换到文本输入模式。每个键以不同方式使vi进入文本输入模式。按[ESC]键使vi从文本输入模式回到命令模式。
下面列出了vi从命令模式切换到文本输入模式的命令键及其功能。
键 功能
i 在光标左侧输入正文
I 在光标所在行的行首输入正文
a 在光标右侧输入正文
A 在光标所在行的行尾输入正文
o 在光标所在行的下一行增添新行,光标位于新行的行首
O 在光标所在行的上一行增添新行,光标位于新行的行首
说明:1. 光标的位置由双下划线(═)标明。
2. 当前行指光标所在的那一行。
只有一种方式进入vi,但是有几种方式退出vi,退出方式的选择取决于如何处理编辑后的文件。
除了ZZ命令外,这些命令都以:开始,用[Return]结束命令行。下面列出了vi编辑器的退出命令及其功能。
键 功能
:wq 保存文件,退出vi编辑器
:w 保存文件,但不退出vi编辑器
:q 退出vi编辑器
:q! 不保存文件,退出vi编辑器
ZZ 保存文件,退出vi编辑器
这些键只适用于命令模式。下面列出了vi编辑器的退出命令及其功能。
键 功能
x 删除光标位置指定的字符
dd 删除光标所在的行
u 撤销最近的修改
U 撤销对当前行上做的所有修改
r 替换光标位置上的一个字符
R 替换从光标位置开始的字符,同时改变vi到文本输入模式
. (点)重复上一次的修改
在命令模式下,这些键可以在文档中移动光标。下面列出了vi编辑器的退出命令及其功能。
键 功能
h或[ ] 将光标向左移动一格
j或[ ] 将光标向下移动一格
k或[ ] 将光标向上移动一格
l或[ ] 将光标向右移动一格
$ 将光标移到当前行的行尾
w 将光标向右移一个字
b 将光标向左移一个字
e 将光标移到字尾
0 (零)将光标移到当前行的行首
[Return] 键将光标移到下一行的行首
[Spacebar] 键将光标向右移动一位
[Backspace] 键将光标向左移动一位
注意:在文本输入模式下避免使用光标键(箭头键)。因为在某些系统中,光标键被解释为普通的ASCII 字符。如果在文本输入模式下使用光标键,那么对应的ASCII字符将被插入文件中。
这些键用来重新安排用户文件中的文本,在vi的命令模式下可用。下面列出了vi编辑器的剪切和粘贴键及其功能。
vi编辑器的剪切和粘贴键
键 功能
d 删除指定位置的文本,并存到临时的缓冲区中。可以使用put操作符(p或P键)访问这个缓冲区
y 将指定位置的文本复制到临时缓冲区。可以使用put操作符访问这个缓冲区
P 将指定缓冲区的内容放到当前光标的位置之上
p 将指定缓冲区的内容放到当前光标的位置之下
翻页键用来大块滚动用户的文件,在vi的命令模式下可用。下面列出了vi编辑器的翻页键及其功能。
vi编辑器的翻页键
键 功能
[Ctrl-d] 将光标向下移到文件尾,通常每次移动12行
[Ctrl-u] 将光标向上移到文件头,通常每次移动12行
[Ctrl-f] 将光标向下移到文件尾,通常每次移动24行
[Ctrl-b] 将光标向上移到文件头,通常每次移动24行
三种常见的模式:Normail Mode(命令模式),Insert Mode(输入模式)和Visual Mode(视图模式)。
命令模式和输入模式的切换有Append,Insert,Replace,Subsitute 记作AIRS,这种记忆方法特别方便,英文单词的意思是空气,vim在命令模式和输入模式的切换就像空气一样,无影无形。
编辑文本无非就是基本的字符输入和切换光标的位置,平时光标切换就是通过键盘上的上下左右的键盘来实现的,这个上下左右的键盘切换光标虽然也是很方便,但是是不是要从我们键盘手势上移动,而vim可以完全不用移动,通过hjkl。
h:左移一个位置
j:往下一行
k:往上一行
l:右移一个位置