vi简介
- vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、
替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。 - Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
- vi没有菜单,只有命令,且命令繁多。
Vi有三种基本工作模式
- 命令模式
- 文本输入模式
- 末行模式
命令模式:
用户刚刚启动 vi/vim
,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
- 常用的命令:
i
切换到输入模式【编辑模式】,以输入字符。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠末行模式输入更多命令。
文本输入模式【编辑模式】
在命令模式下按下【i】就进入了输入模式。
- 在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
ENTER
,回车键,换行BACK SPACE
,退格键,删除光标前一个字符方向键
,在文本中移动光标HOME/END
,移动光标到行首/行尾Page Up/Page Down
,上/下翻页Insert
,切换光标为输入/替换模式,光标将变成竖线/下划线ESC
,退出输入模式,切换到命令模式- 其实这个模式你可以任意输入,就像windows下的输入
末行模式【命令行模式】
- 在命令模式下按下:(英文冒号)就进入了末行模式。
- 末行模式可以输入单个或多个字符的命令,可用的命令非常多。
- 在末行模式中,基本的命令有(已经省略了冒号):
q
退出程序q!
强制退出,不保存
-w
保存文件wq
保存退出wq!
强制保存退出
按ESC键可随时退出末行模式。
vim基础操作
代码补完、编译及错误跳转等方便编程的功能特别丰富
1.1 进入插入模式:
-
插入模式又称为编辑模式
按键 作用 i
插入光标前一个字符 I
插入行首 a
插入光标后一个字符 A
插入行未 o
向下新开一行,插入行首 O
向上新开一行,插入行首
1.2 进入末行模式
在命令模式下,用户按“:”键即可进入末行模式
-
退出
按键 作用 :q
退出 :q!
退出并不保存 :w
保存 :qw
退出并保存 :x
退出并保存 -
查找命令:
按键 作用 /
str查找 n
下一个 N
上一个 -
替换命令:
把abc全部替换成123
末行模式下,将当前文件中的所有abc替换成123。如果不使用g,则只会替换每一行的第一个abc:%s/abc/123/g末行模式下,将第一行至第10行之间的abc替换成123
:1, 10s/abc/123/g
vim里执行 shell 下命令:
末行模式里输入!,后面跟命令
-
进入命令模式:
ESC
:从插入模式或末行模式进入命令模式
-
移动光标
按键 作用 h
左移 j
下移 k
上移 l
右移 M
光标移动到当前屏幕的中间行 L
光标移动到当前屏幕最后一行行首 gg
光标移动文件开头 G
光标移动到文件末尾 nG
移动到指定行,n是行号G w
向后一次移动一个字 b
向前一次移动一个字 {
按段移动,上移 }
按段移动,下移 Ctr-d
向下翻半屏 Ctr-u
向上翻半屏 Ctr-f
向下翻一屏 Ctr-b
向上翻一屏 -
撤销命令:
按键 作用 u
一步一步撤销 Ctr-r
反撤销 -
删除命令:
按键 作用 x
删除光标后一个字符,相当于 Del X
删除光标前一个字符,相当于 Backspace dd
删除光标所在行,dd n 删除指定的行数 D
删除光标后本行所有内容,包含光标所在字符 d0
删除光标前本行所有内容,不包含光标所在字符 dw
删除光标开始位置的字,包含光标所在字符 de
删除光标所在位置到本单词末尾 dE
删除光标所在位置到本单词末尾包括标点符号 db
删除光标所在位置到前面单词 dB
删除光标所在位置到前面单词包括标点符号 d$
删除光标所在位置到本行末尾 -
复制粘贴:
按键 作用 yy
复制当前光标所在行,yy n 复制 n 行 p
在光标所在位置向下新开辟一行,粘贴 -
替换操作:
按键 作用 r
替换当前字符 R
替换当前行光标后的字符 -
文本行移动:
按键 作用 >>
文本行右移 <<
文本行左移 -
重复命令:
按键 作用 .
重复上一次操作的命令 -
可视模式:
按键 作用 v
按字符移动,选中文本 V
按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动