当我们已经熟练地掌握了vim,并进行相关的编辑开发,会经常遇到如下几个场景困惑:

1. 在编辑A文件时,突然想去查看B文件。
很多人做法是,保存并退出A,然后vim打开B,看完退出B,再次vim打开A。

2. 编写一个小程序,如何实时看到效果。
很多人做法是,保存程序文件,退出,执行脚本,有问题再次vim进入程序。

3. 开发代码时,想看某一行。
由于vim默认不显示行号,导致很难直观的查看行数,一般用命令冒号数字的形式快速定位:number。

上面这些做法,都会导致使用者觉得vim很麻烦,特别是保存退出再干事情,觉得会让很多程序员丧失效率。因此,这些是导致很多刚入门vim的人,而最终放弃vim的原因————vim只有一个窗口、vim无法实时执行、vim没有编辑器自定义功能。

其实vim很强大,很多大牛都使用vim学习和工作的,这里就分别针对以上三个场景给出很好的建议。

  • 多个窗口
  • 指令 效果
    :split或:new 创建新的vim窗口
    :split file或:new file 新窗口打开file
    :vsplit或:vnew 和不加v类似,不过是纵向打开窗口
    ctrl+ww 移动到下一个窗口
    ctrl+wj 移动到下方的窗口
    ctrl+wk 移动到上方的窗口

    1. 连续打开两个窗口编辑相同文件,窗口内容会同时更新。
    2. ctrl+ww到达最后一个,会再次循环从第一个开始。
    3. ctrl+wj和ctrl+wk不会循环重新开始。

    如何更美观的打开一系列文件进行编辑,这里有个很好的指南。

  • 执行命令
  • 指令 效果
    :!command 执行command命令

    command可以是任意的linux指令,比如你在编写一个py文件,那么你可以在不退出vim的同时进行调试程序。

  • 编辑器配置
  • 在命令模式下,输入:config,就可以修改相应的配置信息。

    这里列举一些常见的配置。

    指令 效果
    set nummber 显示行号
    filetype on 检测文件的类型
    set history=number 记录历史的行数
    set background=dark 背景使用黑色
    syntax on 语法高亮度显示
    set autoindent 自动对起,当前行的对齐格式应用到下一行
    set smartindent 智能的选择对起方式,类似c语言编程
    set tabstop=4 设置tab键为4个空格
    set shiftwidth=4 设置行之间交错时使用4个空格

    由于vim的setting非常多,这里就不在一一列举,这些配置都保存在用户根目录下的.vimrc文件里。修改这个文件,就可永久生效相应配置,而如果在vim中进行设置则不会永久生效。

    这里可以下载中文版的vim配置文档:
    http://vimcdoc.sourceforge.net/