vi特点:
- 没有图形界面,但功能强大
- 只能是编辑文本内容,不能对字体段落进行排版
- 不支持鼠标操作
- 没有菜单只有命令
而在linux发行版本中,vi为Vim的软连接,打开Vi既是Vim!
打开文件
vi filename --文件存在,打开,不存在,新建打开。
vi filename +行数 ----定位到指定行数。
vi filename + ----定位到文件末尾。
如果Vi打开发生以下情况表示产生交换文件(.swp),按下"D"就可以编辑。
vi的三种模式
**命令模式:**用户刚刚启动vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不是输入一个字符,i被当做了一个命令。
以下是常用的几个命令:
- i切换到输入模式,以输入字符。
- x删除当前光标所在处的字符
- :切换到底线命令模式,以在最底一行输入命令。
编辑文本:启动vim,进入命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
**输入模式:**在命令模式下按i究竟如输入模式。
在输入模式中,可以使用以下按键:
-
字符按键以及Shift组合,输入字符
-
Enter,回车,换行
-
Back Space,退格键,删除光标前一个字符
-
DEL ,删除键,删除光标后一个字符
-
方向键, 在文本中移动光标
-
HOME/END,移动光标到行首/行尾
-
Page up /Page down,上/下翻页
-
Insert ,切换光标为输入/替换模式,光标将变成竖线/下划线
-
ESC,退出输入模式,切换 到命令模式
**底线模式:**在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
q! 强行退出,不保存
wq 保存并推出
x 保存并退出
按ESC键可随时退出底线命令模式。
linux vi命令编辑模式 上下左右显示为ABCD
- 在命令模式下输入:set nocp
命令路线
在命令模式下:
-hjkl – 左下上右
行内移动:
- w 向后移动一个单词
- b 向前移动一个单词
- 0 移到行首
- ¥移到行尾
行数移动:
- gg ----- 文件顶部
- G ------ 文件底部
- 数字gg-----移动到对应行
- 数字G ------ 移动到对应行
- :数字------同上
屏幕移动
- ctrl+b —向上翻页
- ctrl+f —向下翻页
- H – -屏幕顶部
- M — 屏幕中间
- L — 屏幕底部
段落移动
1.vi中使用空行来区分段落
2.在程开发中,通常一段功能相关的代码写在一起,之间没有空行
- { ----上一级
- } ----下一级
- %----括号匹配及切换
标记 - m(标记符号)单个字母
- ‘标记符号 ----跳转到标记行
选中文本 - v —可视模式
- V — 可视行模式
- ctrl+v — 垂直方向选中文本
撤销和恢复删除 - u — undo ----撤销上次命令
- ctrl —redo —恢复撤销命令
删除文本
- x—删除光标所在的字符,或者选种文字
- d(+移动命令)–删除移动命令对应的内容
- dd ----删除光标所在行,可以ndd删除多行
- D — 删除至行尾
可以结合可视模式与移动命令相结合使用
复制粘贴
y(移动命令) — 复制
yy ---- 复制一行
p — 粘贴
替换命令
- r — 替换当前字符
- R — 替换当前行光标后的字符+
缩排(缩进)和重复执行
>> —向右增加缩进
<< — 向左增加缩进
. ----- 重复上次操作
查找
- /str — 查找str,N向上,n向下
- 单词速配: *向上查找与光标停留单词,#向下查找
查找并替换
全局替换:格式:(:%s/旧文本/新文本/g
可视区替换:(:s/旧文本/新文本/g)
确认替换
- :%s///gc
- y —替换
- n—不替换
- a—替换所有
- l—退出替换
- ^E—向下滚评
- ^Y—向上滚屏