vi|vim
vim
移动光标 | |
---|---|
h(左)、j(下)、k(上)、l(注释:L键不是i,右) | |
0 (零按键) | 移动到当前行的行首 |
^ | 移动到当前行的第一个非空字符 |
$ | 移动到当前行的末尾 |
w | 移动到下一个单词或标点符号的开头 |
W | 移动到下一个单词的开头,忽略标点符号 |
b | 移动到上一个单词或标点符号的开头 |
B | 移动到上一个单词的开头,忽略标点符号 |
ctrl + f |
向下翻页 |
ctrl + b |
向上翻页 |
<num>+G |
移动到第 |
G | 移动到文件末尾 |
gg | 移动到文件开头 |
删除命令 | ||
---|---|---|
dd | 删除光标所在行 | |
2dd | 向下删除2行 | |
dG | 从光标开始删除到文档结尾 | :.,$d .,$-2d |
dH | 从光标开始删除到文档开头 | |
dw | 一次删除一个字 | |
x|X | 一次删除一个字符 | |
:2,3d | 删除2-3行 | |
. | 重复上次操作 |
替换命令 | ||
---|---|---|
r | 替换单个字符 | |
R | 进入替换模式 | |
:s///g |
全局替换 | :%s/Line/line/g |
yy|2yy | :1,$-1y |
|
p|P |
全局查找和替代
vi 使用 ex 命令来执行查找和替代操作(vi 中叫做“替换”)。把整个文件中的单词“Line”更改为“line”, 我们输入以下命令:
:%s/Line/line/g
我们把这个命令分解为几个单独的部分,看一下每部分的含义:
条目 | 含义 |
---|---|
: | 冒号字符运行一个 ex 命令。 |
% | 指定要操作的行数。% 是一个快捷方式,表示从第一行到最后一行。另外,操作范围也 可以用 1,5 来代替(因为我们的文件只有5行文本),或者用 1,$ 来代替,意思是 “ 从第一行到文件的最后一行。” 如果省略了文本行的范围,那么操作只对当前行生效。 |
s | 指定操作。在这种情况下是,替换(查找与替代)。 |
/Line/line | 查找类型与替代文本。 |
g | 这是“全局”的意思,意味着对文本行中所有匹配的字符串执行查找和替换操作。如果省略 g,则 只替换每个文本行中第一个匹配的字符串。 |
选项 | ||
---|---|---|
:set all | 打印所有选项 | |
:set ic | 查找时忽略大小写 | |
:set noic | 查找时对大小写敏感 | |
:set nu | 每行前打印行号 | |
:set ts=2 | 设置tab=2个空格 | |
:.= | 打印当前行的行号 | |
:= | 打印文件中的行数 | |
^g | 显示文件名、当前的行号、文件的总行数和文件位置的百分比 | |
:l | 使用字母"l"来显示许多的特殊字符,如制表符和换行符 | |
:!command | 执行shell的command命令 | !ls |
:r!command | 读取command命令的输入并插入 | 如:r!ls会先执行ls,然后读入内容 |
:w!command | 将当前已编辑文件作为command命令的标准输入并执行command命令 | 如:w!grep all |
:cd directory | 将当前工作目录更改为directory所表示的目录 | |
:sh | 将启动一个子shell,使用^d(ctrl+d)返回vi | |
n<< | 使n行都向左移动一个宽度 | |
n>> | 使n行都向右移动一个宽度,例如3>>就将接下来的三行每行都向右移动一个移动宽度 |
:set paste
https://blog.csdn.net/weixin_44648216/article/details/103788877
格式化代码
- gg 跳到首行行首
- shift+v 转为可视化模式,选中首行
- shift+g 全选
- 按下 = 键