vi和vim的使用
- vi 文件名 :如果文件存在,就直接打开文件,光标显示在第一行,如果文件不存在,就会新建一个文件,但还未保存,需通过命令保存。
- vi 文件名 +行数:打开文件跳转到指定行数。
- vi 文件名 + :打开文件将光标跳转到内容的末尾。
注意: 在使用vi和vim时,如果编辑的文件在中断被强行退出了,在打开文件时,必须删除当前隐藏的交换文件,删除交换文件使用英文字母D。
vi的三种基本模式
命令模式
命令模式是打开文件的入口命令,可以对文件进行常规操作,如光标定位,翻页
,复制,粘贴,删除等。
末行模式
末行模式是执行保存退出等操作,如果从命令模式下切换到末行模式,需使用:符号切换,
如果在输入wq+回车就退出保存文件,如果要在转回命令模式,只需要按Esc键就可以。
编辑模式
编辑模式主要是编辑文本内容,如果要从命令模式下切换到编辑模式下输入字母i即可,
在转回命令模式下按Esc即可。
图释: 注意:
在末行模式中,如果没保存(w),直接退出(q),就会提示是否强制执行,在q后面添加!就会强制性退出,但编辑的内容没有被保存。
:x=:wq (两者等价,保存并退出)
命令模式下的操作
上下移动
- H ->向左移动
- J ->向下移动
- K ->向上移动
- L ->向右移动
行内移动
- w ->向后移动一个单词
- b ->向前移动一个单词
- 0(零) ->跳到行首(包含空格)
- ^ ->跳到行首(不包含空格)
- $ ->跳到行尾
行数移动
- gg ->跳到文件顶部
- G ->跳到文件末尾
- 数字gg ->移动到对应的第多少行
- 数字G -> 同上
- :数字 ->同上
屏幕移动
- ctrl+b ->向上翻页
- ctrl+f ->向下翻页
- H ->屏幕顶部
- M -> 屏幕中间
- L -> 屏幕底部
段落移动
vim主要以空行区分段落
括号切换
% 用于在成对的括号之间相互切换,例如 {} ,[],()等。
标记
标记是参照其他行的代码修改处理的小技巧,如果不清楚怎么修改,则可以在要修改的地方使用 m+字母 的形式标记,字母大小写不固定。在使用 `字母 跳转回来,跳转回来的字母必须与标记的字母相同。
注意:
- 如果将添加标记的行删除,则标记也会删除。
- 标记不能重复,否则前一次的标记会消失。
选中文本(可视模式)
用于选中文本,方便再使用其他命令进行删除,复制等操作。
- (小写)v -> 可视模式,从光标开始按照正常模式选择文本。
- (大写)V -> 可视行模式,选中光标经过的完整一行。
- Ctrl+v -> 可视块模式,垂直方向选中文本。
选中文本可以配合移动命令使用,例如 : ggvG选中所有文本
撤销和恢复撤销
- u ->撤销上次命令
- Ctrl+r ->恢复刚撤销的命令
删除文本
- x -> 删除光标所在的字符或者选中的文本。
- d+移动命令 ->删除与移动命令对应的文本
- dd ->删除光标所在行。
- D -> 从光标开始删除到行尾
复制和粘贴
vi是利用文本缓冲区对其进行复制,粘贴,删除等操作
- y+移动命令 ->复制
- yy ->复制一行,数字+yy表示复制多行
- p ->粘贴,数字+p表示粘贴多少行
如果再其他文件中复制文本到另一个文本中粘贴时,不能使用y和p,必须使用鼠标右击复制和粘贴等。
替换命令
- r ->替换当前字符,连续输入连续替换
- R -> 替换当前光标后的字符,连续输入连续替换
缩进
- >> ->向右缩进
- << ->向左缩进
- . 重复上次执行命令
查找
普通查找: /查找内容 查找指定内容之后,按n键可以向下查找;按N键可以向上查找。
单词快速查找:
- * 向后查找当前光标所在单词。
- # 向前查找当前光标所在单词。
如果不想再显示高亮,则可以查找文本中没有的内容,即可取消高亮。
查找与替换
查找与替换必须再末行模式中使用。
-
全局替换: :%$/旧文本/新文本/g -
可视区域替换:首先切换到可视模式,选中文本esc退出到命令模式下,在使用 :S/旧文本/新文本/g 即可。 -
确认替换:会给有提示,:%s/旧文本/新文本/gc
- y :替换
- n:不替换
- a:替换所有
- q:退出替换
- l:最后一个替换
- ^E:向下滚屏
- ^Y:向上滚屏
插入命令
插入命令可以直接进入编辑模式
- 小写i:在当前字符前插入文本。
- 大写I:在行首插入文本。
- a:在当前字符后插入文本。
- A:在行末插入文本
- 小写o:在当前行后插入一空行
- 大写O:在当前行前插入一空行
|