1. 启动和退出
启动
vi fileName
保存退出
:wq (命令模式下)
不保存退出
:q! (命令模式下)
保存
:w (命令模式下)
2. vi下几种模式
编辑模式
该模式下可以对文本进行编辑,通常看到控制台底部出现insert即为编辑模式。如果在命令模式下可以通过输入如下键进入编辑模式:
i 在当前光标位置前开始插入
a 在当前光标位置后开始插入
o 在当前光标行下方打开空白行开始插入
O 在当前光标行上方打开空白行开始插入
命令模式
命令模式下主要对光标及文本进行相应操作,比如光标移动、文本删除、文本复制粘贴、编辑撤销、查找、替换等等。当vi在编辑模式下时按esc进入命令模式
3. 光标移动
上下左右键或hjkl进行上下左右移动
0或者|跳转行首
^ 跳转当前行第一个非空字符
$ 跳转行尾
w 向后移动一个单词 W 向后移动一个单词,忽略标点符号
b 向前移动一个单词 B 向前移动一个单词,忽略标点符号
Ctrl-f / PageDown 向下翻页
Ctrl-b / PageUp 向上翻页
数字n + G 移动到第n行 如 10G 即移动到第10行
G 移动到文件末尾
4. 文本剪切
文本删除,关键命令字符为x
x 删除当前字符 3x删除当前字符在内的3个字符
行/单词删除,关键命令字符为d,结合数字,W(单词),G(行)等达到指定行删除
dd 删除当前行 5dd删除当前行在内的5行
dW 删除从光标位置开始到下一个单词开头
d$ 删除从光标位置开始到当前行行尾 d0 删除从光标位置开始到当前行行尾 d^ 删除从光标位置开始到当前行第一个非空字符
dG 删除从当前行到文件末尾 d20G 删除从当前行到文件第20行
5. 文本复制
文本复制,关键命令字符为y,用法与文本剪切基本一致
6. 文本粘贴
文本粘贴,关键命令字符p/P,p张贴到当前行下面,P粘贴到当前行到上面
7. 连接行
命令模式下输入J会把下一行内容拼接到当前光标所在的行
6. 查找和替换
查找:
命令模式下输入/+要查找的内容,回车后光标将定位到第一个匹配到的字符,输入n则跳转到下一个匹配到的行,N跳转到上一个。
替换:
:%s/LineTarget/LineNew/g
说明:
:表示执行一个ex命令
% 指定要操作的行数,%表示从第一行到最后一行,操作范围也可以用1,5来代替表示从第一行到第五行。如果省略了范围表示当前行
LineTaget表示要查找的目标字符串
LineNew表示替换的新字符串
g表示全局
7. 显示/隐藏行号
set nu 显示
set nonu 隐藏
8.多个文件操作
vi file1 ... file n 或者在打开一个文件后输入 :e file_another
文件间切换
n 切换下一个文件 N切换上一个文件
查看当前打开的文件列表并进行切换
:buffers