我是vim重度用户,在这里记录平时自己平时比较喜欢的小技巧

许多命令看去作用很具体,如果你熟悉vim的一般规则(可以参考《Vim实用技巧》),将以下例子视为脚手架,可以百般变化

一个常用的规则是 (number) (command) (text object):number是可选的数值参数,command是c/d/y,text object是一个移动命令

###format gg=Ggg to get the start of the file, = to indent, G to the end of the file

###comment/uncomment 使用插件:Bundle 'scrooloose/nerdcommenter' (k-vim已带)

<leader>c<space> 加上/解开注释, 智能判断

###vim and command

  • :!open %:mac下打开当前文件,%代表当前文件,open只是command,所以你可以:python %:
  • :read !ls: read command output(into buffer)
  • :write !sh:类似于管道,把当前文本传入命令中

###块操作

  • di(:删除括号里的内容,'vi('选中括号里的内容,同理就有di'vi]

###移动

  • %:跳到与之匹配的括号

###显示

  • :set list:显示不可见字符

###剪切板

  • reg : 列出剪切板
  • "d3yy : 将后续3行拖曳到缓冲区d中("x表示记号)
  • "dp : 将缓冲区内容放置在光标后

###mark

  • marks : show marks
  • ma : 用 a 标记当前的光标位置
  • 'a : 调到a位置

###replace

  • :1,10s/\n//g:将1到10行合并为一行
    • :1,10s:\n::g:使用:来分割
  • %s/\/\/.*$//g: 去掉所有js注释(//)
  • $s/\s//g:去掉所有的空格
  • 后向引用:
    • :%s/\(\d\)/[\1]/g:把数字用[]包裹起来