3vim编辑器
三种模式
命令行模式
任何模式下 ESC 进入
编辑模式(INSERT)
从命令模式下 a, i 等 进入
可视化模式(VISUAL)(VISUAL BLOCK)
命令模式下,敲 v 进入
非编辑模式, ctrl + v
cd /etc/vim/
root权限编辑 vimrc, 增加一行 set number ? 显示行号
单次显示行号:
vim编辑器的命令模式输入:set number
永久显示行号:
在etc/vim下的vimrc文件,添加set number即可永久在vim编辑器显示行号。
若在vimrc文件下添加,不起作用,使用以下命令:
echo "set number">>~/.vimrc
vim编辑器改变上下左右变ABCD问题
上下左右键:echo "set nocompatible">>~/.vimrc
基本操作
a, i, o, O 进入编辑模式
ESC 进入命令模式
:q 退出vi (q! 不保存强行退出)
:w 保存 (wq 保存并退出)
:x 保存退出
:u 撤销操作
:saveas 另存为
:bn, :bp 同时打开多个文件时,切换到上一个或者下一个
x 删除当前字符
dd 删除当前行 ,删除内容存入剪贴板(p粘贴)
h,j,k,l 和 左下上右 移动光标(某些情况下方向键也是命令的一部分)
0 到行首
^ 到行首第一个非空字符
$ 到行尾
g_ 到行尾最后一个非空字符
ctrl+f 向后翻页 (forward)
ctrl+b 向前翻页 (backward)
ctrl+d 向后翻半页
ctrl+u 向前翻半页
ctrl+e 向下滚1行
ctrl+y 向上滚一行
一阶操作
gg 到第一行
G 到最后一行
10G 到第10行 (:10 等价)
e 到本单词结尾
w 到下一个单词开头
/ABC 从光标处开始查找ABC (n, N移动到下一个/上一个匹配的地方)
yy 拷贝当前行(会把换行符号一起拷贝)
p 粘贴在光标处 (大写P粘贴到光标前)
u 撤销上一步操作 (支持多级)
ctrl+r 反撤销 (支持多级)
. 重复上一条命令
N<命令> 重复N次命令 (2dd; 4p; 6iABC)
2dd 删除两行
4p 粘贴4次
6iABC 插入6个ABC (i->insert), 输入完成后按 ESC ,然后回车
二阶操作
% 移动到匹配的括号处(三种括号都行)
* 移动到下一个与之相同的单词
# 移动到上一个与之相同的单词
ye 拷贝单词 [e表示到单词词尾]
y/ABC 拷贝到ABC位置 [/ABC 表示查找ABC]
y2/ABC 拷贝到第二个ABC位置
gue 单词 转小写
gUe 单词转大写
d2l 往后删除两个字符(相当于 2x)
2dd 删除两行
d^ 删除光标到行首
d$ 删除光标到行尾
de 删除单词
d/kk 删除光标到kk位置
d2/kk 删除到光标到第二个kk位置
d 改成y 就是拷贝了
三阶操作
fk 光标移动到下一个k字母位置
dfk 从光标处删除到k字母位置
2fk 查找第二个k字母位置
v 进入可视化操作
匹配选择:如 if (strcmp(“ABC”, szStr) == 0) 光标在 A 位置
i” 选中ABC
a” 选中“ABC”
i) 选中 “ABC”, szStr
2a) 选中(strcmp(“ABC”, szStr) == 0)
ctrl+v:进入块操作
1: 移动方向键选择块
2: 每行光标前面加内容:选择块 -> I(大写 i ) -> 输入要增加的内容 -> [ESC] ->回车
3: 每行光标后面加内容:选择块 -> A ->输入要增加的内容 ->[ESC] ->回车
4: 左右缩进:选择块 -> < 和 >
5: 自动缩进:选择块 -> =
ctrl+p:insert 模式下自动补齐功能 (ctrl+n)
四阶操作
使用正则表达式
替换:%s/int/unsigned int/g ?所有int替换位unsigned int
替换某些行:1,2s/int/unsigned int/g
替换10行到末行:10,$s/int/unsigned int/g
行首加ABC %s/^/ABC/g
行尾加ABC %s/$/ABC/g
注:正则表达式中 ^表示行首,$表示行尾
13,20s/^[\/]*//g