文件名修饰
在vim的命令行模式中,%代表的是当前文件的名称,同时vim提供了一些后缀用于对文件名称进行修饰,包括了::p :8 :~ :h :t :r :e :s?pat?sub? :gs?pat?sub?
- :p
该修饰符必须作为%后的第一个修饰符存在,作用是将当前文件名扩展为绝对路径的文件名。如果文件名是一个路径,将会在后面添加’/‘ - :8 将文件名转化称为 8.3 短格式的文件名
- :~ 将文件名中的用户home目录使用 ~ 代替
- :h 取出路径分隔符号前面的内容
- :t 取出最后一个文件seperator 后面的内容
- :r 取出文件名中除了扩展名以及 . 之外的部分
- :e 取出文件名中最后一个扩展名称
- :s?pat?sub? 将文件名中第一个符合pat正则表达式的字符串替换称为 sub
- :gs?pat?sub? 同上, 只是将会替换所有符合pat的字符串
$$
\underbrace{\overbrace{/path/subpath}^{:h}/\overbrace{\underbrace{filename}{r}.\underbrace{extension}{:e}}^{:t}}_{:p}
$$
复制粘贴
- 在插入模式中,粘贴:
<C-r>{register} - 查看复制粘贴寄存器:
reg
移动
vim中又一个jumplist, 使用 :jumps 查看当前jumplist
- 跳转至jumplist中的上一个位置: 普通模式下
<C-o>,不会改变jumplist - 跳转至下一个位置: 普通模式下
<C-i>,不会改变jumplist - 在mark跳转操作之前使用g不会改变当前 jumplist
代码缩进
创建折叠:
- normal模式下 使用 zf+{motion} 如当前位置为’{‘ 使用zf% 将会把花括号的内容创建一个折叠
- visual 模式下, 对选中的行使用zf将会创建折叠
删除折叠:
- zd : 删除当前光标位置下的折叠, 非递归
- zD: 删除 当前光标下的折叠, 同时删除改折叠所包含的折叠
- zE: 删除当前窗口中所有的折叠
打开关闭折叠:
- 打开: zo, zO (递归:打开当前折叠中包含的所有折叠)
- 关闭: zc, zC (递归)
set fdm=’indent’
将会在当前窗口中按照缩进来创建所有折叠
几个概念
tab标签页
在一个窗口中可以有多个tab标签页
buffer 缓冲区
每个编辑区域都是一个buffer
在vim中,概念名称+s查看当前概念的列表,+new 产生一个新的对象, +p前一个移动, +n下一个移动
Some Tricks
- Visual 选中单词, 按下 Shift+K 能够查看帮助, 如: 对python来说,查看文档,对c库来说,查看man中的内容