vi vim 笔记心得2209010344
vi vim 的多种工作模式
- 一般模式,刚进入vi的模式, esc模式,我觉得可叫快捷键模式(按键模式), 按esc的模式
- 文本输入模式(
a , A , i , I , o , O , s , S ,C 进入插入模式 R 进入覆盖模式) - 底部命令行模式(冒号
: 开头,/ 开头,? 开头) - 连续字符串选择可视模式(
v ) - 块选择可是模式(
ctrl+v )
进入某种模式
?进入一般模式(不可见命令模式)
- 刚打开 vi 时就在一般模式
- 在文本输入模式按键盘
ESC 键 - 在底部命令行
回车 , 或者 连按两次ESC 键
?进入底部单行命令行模式(可见命令模式)
- 冒号
: 开头的命令 - 斜杠
/ 开头的命令 - 问号
? 开头的命令
?进入文字输入插入模式 INSERT模式
i 光标前插入 a 光标后插入 I 光标移到本行第一个字符后开始插入 O 光标上方插入一行 o 光标下方插入一行 S 删除本行 s 删除光标字符 C 删除光标到行尾 c 小c操作语法类似d 和y , 作用是删除, 如同d , 只是执行后会进入文字输入插入模式 3ch 或c3h 光标前三字符 ? 3cl 或c3l 光标及后两字符 cc 本行 ? c0 行首到光标 ? c^ 本行第一个字符到光标 ? c$ 光标到行尾 3cc 或c3c 本行和下两行 先R 进入覆盖模式,然后按键盘insert 按键
?进入文字输入覆盖模式 REPLACE模式
在插入模式下按insert 按键 R 直接进入覆盖模式 (小写r接字符 只替换光标处一个字符,替换后依旧在一般模式)
?进入可视化选取模式
先将光标移动到想要的开始点 然后
- 按
v 进入连续字符串选择模式 - 按
ctrl+v 进入块选择模式
用上下左右选取
复制 , 剪切 , 粘贴 , 删除
复制主要用y ? 剪切主要用d ? 删除主要用c ? 粘贴主要用p
?复制
3yh 或y3h 光标前三字符 ? 3yl 或y3l 光标及后两字符 yy 本行 ? y0 行首到光标 ? y^ 本行第一个字符到光标 ? y$ 光标到行尾 3yy 或y3y 本行和下两行 yw 光标 至 空格后出现字符
?剪切(删除)
剪切的d语法 如同复制的y语法 3dh 或d3h 光标前三字符 ? 3dl 或d3l 光标及后两字符 dd 本行 ? d0 行首到光标 ? d^ 本行第一个字符到光标 ? d$ 光标到行尾 3dd 或d3d 本行和下两行
x 剪切光标字符 X 剪切光标前一个字符
?删除,然后进入文字插入模式
C 光标到行末 3ch 或c3h 光标前三字符 ? 3cl 或c3l 光标及后两字符 cc 本行 ? c0 行首到光标 ? c^ 本行第一个字符到光标 ? c$ 光标到行尾 3cc 或c3c 本行和下两行
?可视化选择复制或剪切
先将鼠标移到想要的开始位置,然后按v 然后就可以通过 上下左右 像鼠标按住左键那样选择 选好区域后按y 复制,按d 剪切
?粘贴
p 粘贴到光标后 P 粘贴到光标前
撤销重做
u 撤销 ctrl+r 重做
查找替换
?查找
支持正则表达式 / pattern 向下查找pattern的匹配 ? pattern 向上 n 下一个 N 上一个
?替换
:s/ a/ b 本行第一个a变b :s/ a/ b/g 本行所有a变b :%s/ a/ b 所有行第一个a变b :%s/ a/ b/g 所有行所有a变b , 整个文档的a变b
???限制在可视的选定区域进行替换
用光标确定起始点, 然后v 进入连续字符串选择, 或ctrl+v 进入块选择 按冒号: , 底部出现 :'<,'> 在:'<,'> 后追加s/pattern/content/g 变成 :'<,'>s/pattern/conten/g 回车就能将pattern匹配到的内容替换
保存退出
:w ----------------保存
:q ----------------退出
:q! --------------强制退出
:wq 或 ZZ -------保存退出
:wq! ------------ 强制保存退出
行号
:set nu 显示行号 :set nonu 关闭行号
其它
. 重复上一个动作 (点) n空格键 光标移到n个字符后 n回车键 光标下移n行
一些技巧
移到末尾,并且进入文本录入模式 GA SHIFT+ga
在一般模式(刚进入的模式,esc模式)
- 先
G 或 shift+g 到最后一行 - 然后
A 或 shift+a 到本行末尾 并且进入文本录入模式
在最后一行下方新增一行 (光标换行,文字不换行) GO SHIFT+go
在一般模式(刚进入的模式,esc模式)
- 先
G 或 shift+g 到最后一行 - 然后 小写
o 在该行下方新增一行
光标快速移动
首行尾行
到最后行是在 esc模式下 键盘大写时按G 键 或 小写时按shift+g 键 到第一行是按两次小写g gg 或者 输入:0 或:1
gg 或 :0 或:1 --------首行G ----------------------尾行 888G 或888gg 或:888 到第888行或尾行
H 屏首 ? M 屏中 ? L 屏尾
行首行尾
A 或 shift+a 移动到行尾,并进入文本录入模式$ 移动到行末尾0 移动到行首 (零)^ 移动到本行第一个字符
新增行, 并进入文字录入模式
- 在当前行下方新增一行并进入编辑模式, 用
o 小写 - 在当前行上方新增一行并进入编辑模式, 用
O 大写
vi vim 键盘命令图
|