VIM命令模式与输入模式切换
Posted 码农编程进阶笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VIM命令模式与输入模式切换相关的知识,希望对你有一定的参考价值。
vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器。vi有两种工作模式:命令模式和文本输入模式。启动vi需要输入vi,按[Spacebar]键并输入文件名后回车。
切换模式键
vi从命令模式切换到文本输入模式。每个键以不同方式使vi进入文本输入模式。按[ESC]键使vi从文本输入模式回到命令模式。
表1列出了vi从命令模式切换到文本输入模式的命令键及其功能。
表1 切换到文本输入模式的命令键
键 |
功能 |
i |
在光标左侧输入正文 |
I |
在光标所在行的行首输入正文 |
a |
在光标右侧输入正文 |
A |
在光标所在行的行尾输入正文 |
o |
在光标所在行的下一行增添新行,光标位于新行的行首 |
O |
在光标所在行的上一行增添新行,光标位于新行的行首 |
说明:1. 光标的位置由双下划线(═)标明。
2. 当前行指光标所在的那一行。
退出命令
只有一种方式进入vi,但是有几种方式退出vi,退出方式的选择取决于如何处理编辑后的文件。
除了ZZ命令外,这些命令都以:开始,用[Return]结束命令行。表2列出了vi编辑器的退出命令及其功能。
表2 vi编辑器的退出命令
键 |
功能 |
:wq |
保存文件,退出vi编辑器 |
:w |
保存文件,但不退出vi编辑器 |
:q |
退出vi编辑器 |
:q! |
不保存文件,退出vi编辑器 |
ZZ |
保存文件,退出vi编辑器 |
文本修改键
这些键只适用于命令模式。表3列出了vi编辑器的退出命令及其功能。
表3 命令模式下vi编辑器的文本修改键
键 |
功能 |
x |
删除光标位置指定的字符 |
dd |
删除光标所在的行 |
u |
撤销最近的修改 |
U |
撤销对当前行上做的所有修改 |
r |
替换光标位置上的一个字符 |
R |
替换从光标位置开始的字符,同时改变vi到文本输入模式 |
.(点) |
重复上一次的修改 |
光标移动指令
在命令模式下,这些键可以在文档中移动光标。表4列出了vi编辑器的退出命令及其功能。
表4 vi的光标移动键
键 |
功能 |
h或[ ] |
将光标向左移动一格 |
j或[ ] |
将光标向下移动一格 |
k或[ ] |
将光标向上移动一格 |
l或[ ] |
将光标向右移动一格 |
$ |
将光标移到当前行的行尾 |
w |
将光标向右移一个字 |
b |
将光标向左移一个字 |
e |
将光标移到字尾 |
0(零) |
将光标移到当前行的行首 |
[Return]键 |
将光标移到下一行的行首 |
[Spacebar]键 |
将光标向右移动一位 |
[Backspace]键 |
将光标向左移动一位 |
注意:在文本输入模式下避免使用光标键(箭头键)。因为在某些系统中,光标键被解释为普通的ASCII 字符。如果在文本输入模式下使用光标键,那么对应的ASCII字符将被插入文件中。
剪切和粘贴键
这些键用来重新安排用户文件中的文本,在vi的命令模式下可用。表5列出了vi编辑器的剪切和粘贴键及其功能。
表5 vi编辑器的剪切和粘贴键
键 |
功能 |
d |
删除指定位置的文本,并存到临时的缓冲区中。可以使用put操作符(p或P键)访问这个缓冲区 |
y |
将指定位置的文本复制到临时缓冲区。可以使用put操作符访问这个缓冲区 |
P |
将指定缓冲区的内容放到当前光标的位置之上 |
p |
将指定缓冲区的内容放到当前光标的位置之下 |
翻页键
翻页键用来大块滚动用户的文件,在vi的命令模式下可用。表6列出了vi编辑器的翻页键及其功能。
表 6 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:右移一个位置
以上是关于VIM命令模式与输入模式切换的主要内容,如果未能解决你的问题,请参考以下文章