VIM学习笔记
启动
1 | $ vim |
配置
Vim从一个名为.vimrc
的文件读取配置信息。在Linux中.vimrc
位于用户根目录中,即/home/<用户名>/.vimrc
Windows系统配置文件名称为_vimrc,可以通过在VIM命令行输入
1 | :echo $MYVIMRC |
显示.vimrc
的路径
vimrc更改后可以重启Vim或者在Vim中执行source $MYVIMRC
命令
缓冲区
可以通过:ls
或:buffers
或:files
显示缓冲区
- 1为缓冲区编号,在整个VIM会话中,值保持不变
- %表示缓冲区位于当前窗口中
- a表示这个缓冲区被选中
- 123.py为文件名
- 第 31 行代表光标位置
移动方式
插入模式
通过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次删除操作的历史记录
还有一些只读寄存器
%存储了当前文件名
存储了上次打开的文件
.中为最后插入的文本
:为最后执行的命令
使用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 | 粘贴 |