vim学习笔记
本节学习笔记对应的b站视频参考网址如下:
https://www.bilibili.com/video/BV1Eb411478U?from=search&seid=278125325493431859&spm_id_from=333.337.0.0
P2-p31
一、基本操作
- vi是visual interface的简称
- 打开文件并且定位行:$vi 文件名 +行数
- 异常处理,当vi退出异常时,下次使用时按下字母d删除交换文件即可。
- 三种工作模式:
(1)命令模式:对文件进行常规的编辑操作,如定位、翻页、复制、粘贴、删除。
(2)末行模式:要退出vi返回控制台,需要再末行模式下输入命令。
-
w write 保存
-
q quite 退出,如果没有保存,不允许退出
-
q! quit 强行退出,不保存退出
-
wq write&quite 保存并退出
-
x 保存并退出
(3)编辑模式:正常的编辑文字
二、常用命令
1、重复次数:
- 在命令模式下,先输入一个数字,在加上一个命令,可以让该命令重读指定次数。
2、移动和选择
(1)上下左右:h 向左、j 向下、k 向上、l 向右;
(2)行内移动:w word 向后移动一个单词
- b back 向前移动一个单词
- 0 首行
- ^ 首行,其第一不是空白字符的位置
- $行尾
(3)行数移动:gg go 文件顶部
- G go 文件末尾
- 数字gg go 移动到数字对应行
- 数字G go 移动到数字对应行
- :数字 移动到数字对应行
(4)屏幕移动:Ctrl+b back 向上翻页
- Ctrl+f forward 向下翻页
- H Head 屏幕顶部
- M Middle 屏幕中间
- L Low 屏幕底部
(5)段落移动:{ 上一段、} 下一段
(6)括号切换:% 在()、{}、[ ]之前切换。
(7)标记:mx mark 添加标记x,x是a-z、A-Z里面任意字符
- `x 直接定位到标记x所在位置
(8)选中文本:v 可视模式 从光标位置开始按正常模式选择文本
- V 可视行模式 选中光标经过的完整行
- Ctrl+v 可视段模式 垂直方向选中文本
3、编辑操作
(1)删除、复制、粘贴、替换、缩排
(2)撤销和恢复撤销:
- u undo 撤销上次命令
- Ctrl+r redo 恢复撤销命令
(3)删除文本:
-
x cut 删除光标所在字符,或者选中文字
-
d(移动命令) delete 删除移动命令对应的内容
-
dd delete 删除光标所在行,可以ndd复制多行
-
D delete 删除至行尾
提示:如果使用可视模式已经选中了一段文本,那么无论使用d还是x,都可以删除选中文本。
删除命令可以和移动命令连用,一下是常见的组合命令:
dw #从光标位置删除到单词末尾
d0 #从光标位置删除到第一行的起始位置
d} #从光标位置删除到段落结尾
ndd #从光标位置向下连续删除n行
d代码行G #从光标所在行删除到指定代码行之间的所有代码
d’a #从光标所在行删除到标记a之间的所有代码
(4)复制粘贴:
-
y(移动命令) copy 复制
-
yy copy 复制一行,可以nyy复制多行
-
p paste 粘贴
(5)替换:
- r replace 替换当前字符 命令模式
- R replace 替换当前行光标后的字符 替换模式
(6)缩排及重复执行:
- > >向右增加缩进
- << 向左减少缩进
- . 重复上次命令
(6)查找:
-
/str 查找str
-
n 查找下一个
-
N 查找上一个
(7)单词快速匹配:
- * 向后查找当前光标所在单词
- # 向前查找当前光标所在单词
(8)查找并替换:在末行模式下 :%s///g
- 全局替换,一次性替换文件中所有出现的旧文本 :%s/旧文本/新文本/g
- 可视区域范围内替换,选中要替换的文字 😒/旧文本/新文本/g
- 确认替换,在替换时会有提示 :%s/旧文本/新文本/gc
- y -yes 替换
- n -no 不替换
- a -all 替换所有
- q -quit 退出替换
- l -last 最后一个,并把光标移动到行首
- ^E 向下滚屏
- ^Y 向上滚屏
(9)插入命令
-
i insert 在当前字符前插入文本
-
I insert 在行首插入文本
-
a append 在当前字符后添加文本
-
A append 在行末添加文本
-
o 在当前行后插入以空行
-
O 在当前行前面插入一空行
4、末行命令扩展 :
- :E . edit 打开内置文件游览器,游览当前目录下的文件
- :n 文件名 new 新建文件
- :w 文件名 write 另存为,但是任然编辑当前文件
5、分屏命令 :
- :sp 文件名 split 横向增加分屏
- :vsp 文件名 vertical split 纵向增加分屏
- 切换分屏窗口,先按Ctrl+w,再按
- w window 切换到下一个窗口
- r reverse 互换窗口
- c close 关闭当前窗口,但是不能关闭最后一个窗口
- q quit 退出当前窗口,如果是最后一个窗口则关闭vi
- o other 关闭其他窗口
6、演练1,连续输入10个*
- 输入10,表示重复10次
- 输入i进入编辑模式
- 输入*也就是重复的文字
- 按下ESC返回到命令模式,返回后就会把2、3步的操作重复10次
7、演练2,利用可视块给多行代码增加注释
- 移动到要添加注释的第一行,按^来到行首
- 按CTRl+v进入可视块模式
- 使用j向下连续选中要添加的代码行
- 输入I进入编辑模式,并在行首插入
- 输入#
- 按下ESC返回到命令行
输入i进入编辑模式
- 输入*也就是重复的文字
- 按下ESC返回到命令模式,返回后就会把2、3步的操作重复10次
7、演练2,利用可视块给多行代码增加注释
- 移动到要添加注释的第一行,按^来到行首
- 按CTRl+v进入可视块模式
- 使用j向下连续选中要添加的代码行
- 输入I进入编辑模式,并在行首插入
- 输入#
- 按下ESC返回到命令行