什么是vi/vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi作用:
创建或修改文本文件
维护linux系统中的各种配置
vi编辑器三种工作模式
命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作;
输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息;
末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符。
不同工作模式之间的切换
命令模式切换至输入模式
a 在当前光标位置之后插入内容
i 在当前光标位置之前插入内容
I 在所在行的行首插入内容
o 在光标所在行之下插入一个新行内容
O 在光标所在行之上插入一个新行内容
A 在所在行的行尾插入内容
命令模式中的基本操作
翻页操作:
age Down键或 Ctrl + F 向下翻动一整页内容
Page Up键或Ctrl + B 向上翻动一整页内容
行内快速跳转
Home键或^键、数字0键 跳转到本行的行首
End键或者$键 跳转到本行的行尾
行间快速跳转
1G或者gg 转到文件内容的第一行
G 跳转到文件的最后一行
#G 跳转到文件的第#行(#用具体的数字替换)
M 跳转到当前页的中间位置
显示行号
:set nu 在编辑器中显示行号
:set nonu 取消行号显示
删除
替换字符
x或Delete键 删除光标处的单个字符
dd 删除当前光标所在行(有剪切功能)
#dd 删除从光标处开始的#行内容
d^ 删除当前光标之前到行首的所有字符
d $ 删除当前光标处到行尾的所有字符
dw 删除当前光标处的整个单词
R或Shift+r 替换当前光标处字符
复制
yy 复制当前行整行的内容到剪切板
#yy 复制从光标处开始的#行内容
粘贴
p 粘贴到光标所在行之下
大写P 粘贴到光标所在行之上
查找
/ word 从当前光标处开始向后进行查找字符串“word”
?word 从当前光标处开始向前进行查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
U 用于取消对当前行所做的所有编辑
保存退出(在末行模式)
:w 保存修改的内容
:w /位置/新文件名 另存为其他文件
:q 退出
:q! 放弃对文件内容的修改并退出
ZZ或wq、:x 保存当前的文件内容并退出vi编辑器
打开新文件
:e 其他文件名 打开新的文件进行编辑
读入文件内容
:r 其他文件名 在当前文件中读入其他文件内容
文件内容替换
:[查找范围]s /old/new /[替换的范围] 将当前行中查找的第一个字符串“old”替换为:“new”,查找范围不写,默认在光标所在行
:s old/new/g 将当前行中查找的所有字符串“old”替换为“new”
:#,# s/old/new/g 将行号#,#范围内替换所有的字符串“old”为“new”
:% s/old/new/g 将整个文件范围内的所有字符串的“old”换为“new”
:s old/new/c 对每个替换动作进行用户确认
复制/剪切/粘贴
:5,10 m 15 将5-10行的内容剪切到15行下面
:5,10 co 15 将5-10行的内容复制到15行下面