vim 命令的基本操作
编辑命令使用模式:
命令模式: 输入一些快捷键, 快速编写文档
编辑模式: 可以真正修改文件内容
低行模式: 实现特殊功能和需求
命令模式 如何转换 编辑模式:
i --- 在光标所在位置直接进入编辑状态
I --- 将光标切换到当前所在行的行首,然后进入编辑状态
a --- 将光标移动到当前位置的下一个位置,然后进入编辑状态
A --- 将光标移动到当前所在行的行尾,然后进入编辑状态
o --- 在光标所在行的下面插入一行,然后进入编辑状态
O --- 在光标所在行的上面插入一行,然后进入编辑状态
s --- 删除光标所在位置的字符,然后进入编辑状态
S --- 删除光标所在行的一行字符,然后进入编辑状态
C --- 删除光标所在行,光标之后的所有字符,然后进入编辑状态
命令模式 如何转换 低行模式
: --- 输入功能参数
wq --- 保存并退出
set nu --- 显示行号
set nonu --- 取消显示行号
/ --- 搜索指定字符信息 n:向下查找 N:向上查找
? --- 搜索指定字符信息 N 向下查找 n 向上查找
快速移动光标技巧:
G --- 切换到文件最后一行
gg --- 切换到文件首行
nG或者ngg --- 切换到文件指定行,例:16G 16gg 光标切换到第16行
^ --- 切换到一行开头
$ --- 切换到一行尾部
快速编辑文件内容:
yy --- 复制光标所在单行的内容
p --- 粘贴刚才复制的内容信息(默认粘贴一次)
nyy --- 复制光标以下的n行内容
np --- 粘贴n遍刚才复制的内容信息(可以粘贴多次)
dd --- 删除(剪切)数据内容
dG --- 删除光标所在行到结尾的所有内容
:s#boy#girl#g --- 替换光标所在行内容(替换光标所在行的boy为girl)
:ns#boy#girl#g --- 替换指定行信息(替换指定行中的boy为girl)
:12,14ns#boy#girl#g --- 替换指定行信息(替换12到14行内的boy为girl)
:%s#boy#girl#g --- 替换整个文件所有信息(替换文件中所有的boy为girl)
当遇到要替换的信息中包含#号了,会造成符号冲突的报错(错误示范:s##boy#girl#g) 可以将命令中的#号换成其他符号, 例如@号(s@#boy@girl@g:表示将光标所在行的#boy替换成girl)
批量编辑方式:
1 批量删除信息
第一步: 将光标移动到需要批量删除信息的第一行
第二步: 进入视图模式ctrl+v
第三步: 上下左右移动光标选中删除的信息 x 或者 d
2 批量添加注释
第一步: 将光标移动到需要批量添加的信息第一行
第二步: 进入视图模式 ctrl+v
第三步: 移动光标选中添加信息行shift+i --- 编辑一行内容 ---ESC
3执行命令编辑
:n,mcopyx
— 将n行至m行内容复制到x行之后
:n,mmovex
— 将n行至m行内容移动到x行之后
编辑撤回操作:
u(undo) --- 撤回所有操作
ctrl+r(redo) --- 取消撤回操作
r --- 直接替换文件内光标所在位置的某一个字符 (在光标处直接按r,然后输入想要换成的字符即可)(R ---一直替换)
常见错误说明
-
vim命令只能编辑文件
-
vim命令编辑文件,前提是目录必须存在
-
vim命令编辑文件显示错误提示如下
错误提示出现原因:
原因一: 文件编辑过程没有正常退出(中断编辑)
解决:
1. 恢复文件内容并保存
vim -r /oldboy/oldboy.txt
2. 删除隐藏文件信息
rm -f /oldboy/.oldboy.txt.swp原因二: 文件被多个用户同时编辑
解决: 确认不要多个系统用户同时编辑即可