vim不适合指法不好的同学。

Vim的每个键都是需要盲打的。 所以,指法不好,就赶紧提高自己的指法。否则很难的。

安装:

Ubuntu:

$ apt-get install vim

Mac:

Vim 中有无数种插件,你可以随意安装使用。 可以在 scripts : vim online 搜索到,也可以直接google。

$ git clone https://github.com/sg552/my_vim.git
# 下载完毕后,把这两个文件copy到 home 目录就可以了。
$ cp .vimrc ~
$ cp .vim ~ -r
$ vim
:BundleInstall

Rails插件

Rails插件允许我们快速的在各种文件中跳来跳去(相信Vim 也有 Django, Spring, angular, 这样的插件, 有兴趣的朋友可以看看。)

  • 跳转到 controller:
    ctrl + c
  • 跳转到 model :
    ctrl + m
  • 跳转到 view : 先移动到对应的action, 再
    ctrl + v

自动补全

凡是在 Vim 缓冲区中(近期打开过的文件)的代码,都可以补全。

  • 从上到下选择候选词:
    ctrl + n
  • 从下到上选择候选词:
    ctrl + p
  • 左移: 选多行后,
    <
    shift + ,
  • 右移: 选多行后,
    >
    shift + .
  • 重复上次操作:
    .

粘贴模式

Vim 正常模式下的粘贴,会导致粘贴的代码一行接一行的缩进。 如果要取消这种缩进的话,就要进入到 "粘贴模式". (记得在这个模式下,无法使用

ctrl + t
命令来快速打开文件。 )

  • :set paste
    进入到粘贴模式
  • :set nopaste
    取消粘贴模式
三种模式的切换:字母切换输入模式,esc切换导航模式,:切换命令模式。
上下左右  hjkl    光标移动           
shift + v
, 然后上下移动。就是选中,
  • w
    : 下一个词。 (word)
  • b
    : 上一个词。 (backword)

ctrl + f
: 向下一屏(f = forward)
ctrl + b
: 向上一屏(b = backward)

分屏

  • 竖屏分割:
    vs
    (vertical split缩写)
  • 横屏分割:
    sp
    (split缩写)
  • 来回跳换:
    ctrl + w + w
    (跳到下一个小窗口), 或者
    ctrl + w + <j/k/h/l>
    (跳到某个方向的小窗口)

多行注释

  • 选中多行 (
    shift + v
    )
  • ,cb
    (逗号 c b 三个键要快速按)
  • 取消注释: 使用传统的替换即可。

多行代码格式化

多行选中后, 按

=
即可。比如多行缩进对齐。

 

:%s/原来的字符串/新字符串/   查找替换    
(所有都替换的话,就在末尾加个
g
   
:%s/原来的字符串/新字符串/g
)   

shift + v
选中若干行
     :s/原来的/新的字符串      替换

  • ctrl + n
    : 下一个候选
  • ctrl + p
    : 上一个候选
  •  

搜索 some_thing:

/some_thing
继续搜索下一个:
n
搜索前一个:
shift + n

快速打开文件

使用的插件: fuzzy find

ctrl + t
, 就会弹出
>file>
这样的标志,然后输入:
**/文件名
即可。 文件名是模糊查询。输入
ab
, vim 也会把
aub
的结果列出来

Ctrl  + e  打开最近编辑的文件

快速进另一个文件:

在 Rails的 路由或者 视图文件中,很好用。

gf
即可。 (gf = go to file)

  • 跳到当前行的末尾:
    shift + 4
  • 跳到当前行的行首:
    0
  • gg
    : 第一行
  • shift + g
    : 末行。
  • 跳到 上一次编辑的地方:
    g;
  • 跳到 下一次编辑的地方:
    g,
  • 快速返回上一次编辑的文件:
    ctrl + o
    ( o 意为 outer )
  • 快速返回下一次编辑的文件:
    ctrl + i
    ( i 意为 inner )
  • shift+8 跳到光标位置相同的标签或者单词处

输入文本

  • 在光标前输入:
    i
    ( insert )
  • 在光标后输入:
    a
    (append / after )
  • 在行首增加内容:
    shift + i
  • 在行末增加内容:
    shift + a
  • 在光标下行增加内容:
    o
  • 在光标上行增加内容:
    shift + o

删除

以下删除都以当前光标作为起始位置。

    删掉一个字母:x
    删掉一个单词: dw
    删掉一行: dd
    删掉多行: shift +v, 然后 x 或者 d

  • 复制一个单词:
    yw
  • 复制当前行:
    yy
  • 粘贴:
    p
  • ,a查看历史复制的内容,enter选中粘贴的内容

针对多个文件进行 查找和替换

使用插件: Greplace

  1. Gsearch -F '要替换的字符串' . -R --include=*rb
    这里的
    -F
    ,
    -R --include=*rb
    这些参数,跟
    grep
    中的一样。
  2. 在返回的结果中,把该替换的替换。
  3. Greplace
    然后选择
    y/a/n
    来决定是否替换。
  4. 最后, 输入
    wa
    保存所有文件的改动。

 

切换背景色

  • :set background=dark
    深色背景色
  • :set background=light
    亮色 

显示/隐藏行数

  • :set number
    显示行数
  • :set nonumber
    取消行数

折叠/取消折叠过长的行

  • :set wrap
    折叠
  • :set nowrap
    取消折叠
  • :set paste
    进入到粘贴模式
  • :set nopaste
    取消粘贴模式