编辑器vim
一、vi简介
vi
是“Visual interface”
的简称,它在Linux
上的地位就仿佛Edit
程序在DOS
上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不像Word
或WPS
那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。vi
没有菜单,只有命令,且命令繁多。
Vi有三种基本工作模式:
- 命令模式
- 文本输入模式
- 末行模式
1、命令行模式
任何时候,不管用户处于何种模式,只要按一下ESC
键,即可使Vi
进入命令模式;我们在shell
环境(提示符为$
)下输入启动Vi
命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi
命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi
命令,则Vi
在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi
的合法命令,Vi
会响铃报警。
2、文本输入模式
在命令模式下输入插入命令i
、附加命令a
、打开命令o
、修改命令c
、取代命令r
或替换命令s
都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi
当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC
即可。
3、末行模式
末行模式也称ex
转义模式。在命令模式下,用户按“:
”键即可进入末行模式下,此时Vi
会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”
作为未行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:
: sp newfile
则分出一个窗口编辑newfile
文件。如果要从命令模式转换到编辑模式,可以键入命令a
或者i
;如果需要从文本模式返回,则按Esc
键即可。在命令模式下输入“:”
即可切换到未行模式,然后输入命令。
二、vim基础操作
vim
是从vi
发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便变成的功能特别丰富
1、进入插入模式:
i:进入光标前一个字符
a:进入光标后一个字符
I:插入行首
A:插入行末
o:向下新开一行,插入行首
O:向上新开一行,插入行首
2、进入命令模式:
ESC
:从插入模式或者末行模式 -> 命令模式
-
移动光标:
- h:左移
- j:下移
- k:上移
- l:右移
- M:光标移动到中间行
- L:光标移动到屏幕最后一行
- G:移动到指定啊很难过,行号
-G
- w:向后一次移动一个字
- b:向前一次移动一个字
- {:按段移动,上移
- }:按段移动,下移
- Ctr-d:向下翻半屏
- Ctr-u:向上翻半屏
- Ctr-f:向下翻一屏
- Ctr-b:向上翻一屏
- gg:光标移动文件开头
- G:光标移动文件末尾
-
删除命令:
- x:删除光标后一个字符
- X:删除光标前一个字符
- dd:删除光标所在行
- d0:删除光标前本行所有内容
- dw:删除光标开始位置的字
-
撤销命令:
- u:一步一步撤销
- Ctr-r:反撤销
-
重复命令:
- .:重复上一次操作的命令
-
文本行移动
- >>:文本行右移
- <<:文本行左移
-
复制粘贴
- yy:复制当前行,
n yy
复制n
行 - p:在光标所在位置向下新开辟一行,粘贴
- yy:复制当前行,
-
可视模式
- v:按字符移动,选中文本
- V:按行移动,选中文本可是模式可以配合
d
,y
,<<
,>>
实现对文本块的删除,复制,左右移动
-
替换操作
- r:替换当前字符
- R:替换当前行光标后的字符,直到按
esc
-
查找命令
- /:
str
查找 - n:下一个
- N:上一个
- /: