vim备忘录

本文对vim常见的操作进行简单的记录,方便需要的时候快速查阅,完全是为了弥补脑容量有限的问题。

一. 查找操作

基操:在normal模式下按下“/”即可以进入查找模式,输入要查找的内容并按下回车,n键向下查找, N向上查找。

补充:vim查找是支持正则的, 如:/hello$, 是查找hello为行尾的记录, 如果真的想搜索hello$, 那么转义即可,/hello$

大小写问题:/c代表大小写不敏感查找, /C代表大小写敏感查找, 默认是敏感查找,如果需要改默认行为,将下面代码复制到~/.vimrc文件中。

1
2
3
4
" 设置默认进行大小写不敏感查找
set ignorecase
" 如果有一个大写字母,则切换到大小写敏感查找
set smartcase

查找当前单词:在normal模式下, 按下*键进行查找, 例如当前为foo, 可以匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时非常有用。按下g*即可查找光标所在单词的字符序列,每次出现前后字符无要求。 即foo barfoobar中的foo均可被匹配到。

二. 查找并替换

:s (substitute)用来查找并替换, 语法

1
:{作用范围}s/{目标}/{替换}/{替换标志}

作用范围:

  • 当前行:: 如: :s/Hello/HELLO/g
  • 全局: :% 如: :%s/Hello/HELLO/g
  • 选区::’<,’> 如: :'<,'>s/foo/bar/g 注意,在visual模式下, 直接按下冒号就会自动补全
  • 2-11行::5,12s/foo/bar/g
  • 当前行.与接下来两行+2::.,+2s/foo/bar/g

替换标志

  • 目标的第一次出现: 空 , :%s/foo/bar

  • 大小写敏感和不敏感i表示大小写不敏感查找,I表示大小写敏感:

    1
    2
    3
    :%s/foo/bar/i
    # 等效于模式中的\c(不敏感)或\C(敏感)
    :%s/foo\c/bar
  • c表示需要确认,例如全局查找"foo"替换为"bar"并且需要确认::%s/foo/bar/gc

三. 全选复制

  • 方式一ggvGy
  • 方式二 ggyG
  • 方式三 :%y

四. 字符查找

例如:查找 , @interface findworld 中的w字符,可以使用fw(正向查找), Fw(反向查找)

五. 段落跳转

  • ( ) 跳转到句子首和句尾
  • { }跳转到段首 和段尾

六. vim中执行shell命令

  • :!{cmd} 例如: :!ls

    :!! 重复执行上一条shell命令

  • c-z

    1
    2
    3
    4
    vim index.html
    <Ctrl-Z>
    touch index.js
    fg

七. 跳转技巧

  • hjkl基操,代表左下上右。

  • H M L 跳转到屏幕上中下

  • w跳转到下一个单词的开始,e调到当前单词的结束,b向后跳。

  • gg跳转到文件的开始,G跳转到文件的结束,10gg&10G表示跳转到第10行

  • ^跳转到行首,$跳转到行尾。