没脚的雀

vim杂记

文件名修饰

在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中的内容
大佬给口饭吃咧