linux-vi

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