入坑vim
插入文本 | |
---|---|
vim -R filename | 把指定的文件以只读方式放入 Vim 编辑器中 |
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入随后输入的文本 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 在光标所在行的行尾插入随后输入的文本 |
查找文本 | |
---|---|
/abc | 从光标所在位置向前查找字符串 abc |
/^abc | 查找以 abc 为行首的行 (^表示行首) |
/abc$ | 查找以 abc 为行尾的行 ($表示行尾) |
?abc | 从光标所在为主向后查找字符串 abc |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定 |
:set ic | 忽略大小写 |
:set noic | 不忽略大小写 |
替换文本 | |
---|---|
r | 替换光标所在位置的字符 |
R | 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束 |
:s/a1/a2/g | 将当前光标所在行中的所有 a1 用 a2 替换,其中 g 表示一行中的所有,删除 g 则只替换一行中的第一个匹配 |
:n1,n2s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 |
:%s/a1/a2/g | 将文件中所有的 a1 都用 a2 替换 |
删除文本 | |
---|---|
x | 删除光标所在位置的字符 |
X | 删除光标前一个位置字符 |
dd | 删除光标所在行 |
ndd | 删除当前行(包括此行)后 n 行文本 |
dG | 删除光标所在行一直到文件末尾的所有内容 |
D | 删除光标位置到行尾的内容 |
:a1,a2d | 函数从 a1 行到 a2 行的文本内容 |
被删除的内容都放在了剪贴板中,按下 “p” 键粘贴。
复制文本 | |
---|---|
p | 将剪贴板中的内容粘贴到光标后 |
P | 将剪贴板中的内容粘贴到光标前 |
y | 复制已选中的文本到剪贴板 |
nyy | 将从光标所在行及其以下共 n 行复制到剪切板 |
yy | 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行 |
yw | 将光标位置的单词复制到剪贴板 |
: n,m y | 将 n 到 m 行复制到剪切板 |
撤销操作 | |
---|---|
u | 撤销上一次操作 |
ctrl + r | 反撤销 |
U | 第一次会撤销对光标所在行文本做过的全部操作,第二次使用该命令会恢复对该行文本做过的所有操作。 |
移动光标 | |
---|---|
h | 左移 |
j | 下移(j 像下箭头) |
k | 上移 |
l | 右移 |
w 或 W | 光标移动至下一个单词的单词首 |
b 或 B | 光标移动至上一个单词的单词首 |
e 或 E | 光标移动至下一个单词的单词尾 |
fx | 光标移动至当前行中下一个 x 字符处 |
Fx | 光标移动至当前行中上一个 x 字符处 |
gg | 光标移动到文件开头 |
G | 光标移动至文件末尾 |
:n | 可以将光标快速定义到指定行的行首 |
0 | 光标移到行首非空白字符处 |
$ | 光标移到行尾非空白字符处 |
可视化模式 | ||
---|---|---|
v | 字符可视化模式,此模式下目标文本的选择以字符为单位 | |
V | 行可视化模式,此模式化目标文本的选择以行为单位 | |
Ctrl+shift+v | 块可视化模式,该模式下可以选中文本中的一个矩形区域作为目标文本 |
多窗口模式 | |
---|---|
:sp filename | 横向窗口 |
:vs filename | 竖向窗口 |
ctrl+ww | 切换窗口 |
:q | 关闭该窗口 |
注释 | |
---|---|
:line1,line2 s/^/#/g | 在line1到line2的行首添加"#"注释符 |
:line1,line2 s/^#//g | 在line1到line2的行首去掉"#"注释符 |
:line1,line2 s/^////g | 在line1到line2的行首添加"//"注释符(特殊字符须转义) |
可见添加
//
注释符是异常麻烦的事,为此我们有以下两种快捷方式:
1、单行注释快捷键映射
在 home 目录下的 .vimrc 配置文件中定义快捷键:nnoremap <C-m> I//<Esc> 将 ctrl+m 映射为 I//<Esc> ,其中I进入INSERT模式并在行首插入文本,插入//后退出编辑模式 nnoremap <C-k> :s/^\/\///g<Esc> 去除行首的//注释符
2、多行注释函数
在 home 目录下的 .vimrc 配置文件中定义以下函数:function COM(b1, b2) execute a:b1.','.a:b2.'s/^/\/\//g' endfunction function DCOM(b1, b2) execute a:b1.','.a:b2.'s/^\/\///g' endfunction
其中
COM(b1,b2)
功能是为 b1 到 b2 行的行首添加 // 注释符,DCOM(b1,b2)
反之。以下几点供大家了解:
- 调用函数的方式为:
:CALL COM(X1,X2)
- 函数名可以自定义,但首字母必须大写
- 函数内部使用参数时,参数名前必须有
a:
,这是在表明作用域- execute 函数用来执行命令(命令行模式)
.
是连接符多插一句,编写此类脚本语言,多使用 chatGPT,甚是方便!
文件配置 | |
---|---|
:set nu :set nonu |
设置与取消行号 |
:syn on :syn off |
是否依据语法显示相关的颜色 |
set hlsearch set nohlsearch |
设置是否将査找的字符串高亮显示 |
set autoindent | 设置自动缩进,即每行的缩进同上一节相同 |
set tabstop=4 | 设置 Tab 键宽度为 4 个空格, 强烈建议 |
set mouse=a set selection=exclusive set selectmode=mouse,key |
Vim 编辑器里默认是不启用鼠标的,通过此设置即可启动鼠标。 |
用户配置文件位于主目录 ~/.vimrc
文件备份 | |
---|---|
: set backup | 备份该文件到指定目录 |
set backupdir=指定目录 | 在 .vimrc 中设置备份文件的保存目录 |
: w filename | 将当前文件保存到 filename 文件 |
执行外部命令 | |
---|---|
!!命令(normal模式下) | 执行命令并将输出结果写入到光标位置 |
其他 | |
---|---|
J | 合并本行和下一行文本 |
ctrl+z 和 fg | 使用 ctrl+z 挂起当前窗口,fg 命令快速返回此窗口 |
本文链接:
/archives/vim
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
后端技术分享!
喜欢就支持一下吧