VIM学习笔记

img

启动

1
$ vim

配置

Vim从一个名为.vimrc的文件读取配置信息。在Linux中.vimrc位于用户根目录中,即/home/<用户名>/.vimrc

Windows系统配置文件名称为_vimrc,可以通过在VIM命令行输入

1
:echo $MYVIMRC

显示.vimrc的路径

vimrc更改后可以重启Vim或者在Vim中执行source $MYVIMRC命令

缓冲区

可以通过:ls:buffers:files显示缓冲区

image-20220102094440797

  • 1为缓冲区编号,在整个VIM会话中,值保持不变
  • %表示缓冲区位于当前窗口中
  • a表示这个缓冲区被选中
  • 123.py为文件名
  • 第 31 行代表光标位置

移动方式

image-20220103154219240

插入模式

通过i可以进行插入,但还有别的插入方法

  • a可以在光标后面进行插入
  • A能在当前行行尾进行插入模式
  • I用于在行首插入
  • o在光标下面插入一行,在新行插入
  • O在光标上面插入一行,在新行插入
  • gi用于在最后退出的位置进行插入
  • C用于删除光标右面的文字,然后进行插入
  • cc或S用于删除当前行的内容,然后进行插入
  • s用于删除单个字符,然后插入

搜索

用/和?搜索

在命令行输入/或者?,按下Enter,就会高亮显示每个匹配项。按n遍历所有匹配位置,按N反向遍历。可以用noh清除高亮显示。

跨文件搜索

命令行输入:vimgrep,语法为:vimgrep <模式> <路径>。

模式既可以是字符,也可以是Vim风格的正则表达式。当路径为**时,表示对目录递归搜索。

搜索结果出来以后,可以用:cn或:cp来浏览各匹配项。也可以执行:copen命令,然后可视化显示快速恢复窗口。

寄存器

在VIM中复制和粘贴文本,文本是存储在VIM寄存器里面的。

寄存器访问方式是引号键”,后面接寄存器的标识符,然后是针对寄存器的操作。

复制和粘贴操作默认是无名寄存器,用双引号”来标识。””p等同于p。

寄存器分为a-z,0-9

用数字编号的寄存器存储的是最后10次删除操作的历史记录

image-20220104111319195

还有一些只读寄存器

%存储了当前文件名

存储了上次打开的文件

.中为最后插入的文本

:为最后执行的命令

使用Ctrl+r组合键可以在插入模式下粘贴内容

可以用:reg列出所有寄存器内容

y会覆盖寄存器的内容,若是想附加使用大写如”Ayw

快捷键

快捷键(命令模式下) 所代表含义
w (write)保存
w+名字 另存为
q (quit)退出
q! 强制退出
e (edit)打开文件
h (help)帮助
h cc Ctrl+D 展开多个关于cc的关键字
ls 或 buffers 或 files 显示缓存区列表
b 切换编辑文件,如b1 或 b cat
bn和bp (bnext)和(bprevious)循环遍历缓存区
bd 删除缓存区
sp (split)垂直分割窗口
vs (vsplit)水平分割窗口
res N (resize)用于将窗口高度设置为N
vert res N (vertical resize)用于将窗口宽度设置为N
res +N或-N 将当前窗口增加N行或减少N行
vert res +N或-N 将当前窗口增加N列或减少N列
tabnew 在新标签页打开空缓存区
tabnext(或快捷键gt) 下一个标签页
tabprevious(或快捷键gT) 用于切换到上一个标签页
tabclose 关闭标签页
tabmove N 将当前标签页移动到第N个标签页之后
Ex(Explore) 打开文件浏览窗口
30 跳转到第30行
±5 向上/下移动5行
快捷键(正常模式下) 所代表含义
H J K L 向左 向下 向上 向右移动光标(5j表示向下移动5个字符)
W/w 移动到下一个单词的开头(广义)/(狭义)
E/e 移动到下一个单词的结尾(广义)/(狭义)
ge 移动到上一个单词的结尾
B/b 移动到上一个单词的开头(广义)/(狭义)
{ 向前移动一个段落
} 向后移动一个段落
( 将光标移动到句子的开头
) 将光标移动到句子的结尾
/ 在文档中搜索该字符串
? 反向搜索字符串
u 撤销
Ctrl+r 重做此操作
c (change)修改命令,删除一部分文字后立即进入编辑模式
d (delete)删除命令,如d3e,删除3个单词
cc 删除整行,立即进入编辑模式,保持当前的缩进水平
dd 删除整行
gg 跳转到文件开头
G 跳转到文件结尾
Ctrl+f(或PageDown) 向下翻页
Ctrl+b(或PageUp) 向上翻页
v 进入可视模式
Crtl+w,q 关闭当前窗口
Ctrl+w,o (only)关闭除当前窗口以外的所有窗口
Ctrl+w,HJKL 将当前窗口移动到屏幕的最左/底/顶/右边
Ctrl+w,= 将所有打开的窗口宽高调整为一致
Ctrl+w,+或- 用于改变窗口的一行高度
Ctrl+w,<或> 用于改变窗口的一列宽度
zo 打开当前折叠
zc 关闭当前折叠
za 切换折叠状态
zR 同时打开所有折叠
zM 同时关闭所有折叠
t[字符] (until)用于在当前行内搜索该字符,并将光标置于此字符之前,T为反向搜索
f[字符] (find)在当前行内搜索该字符,将光标置于此字符之上
_ 将光标放到行首
$ 将光标置于行尾
y 复制
p 粘贴