将 Vim 打造成轻量级的 IDE
介绍
在 Linux 系统中, Vim 是我们最常用的编辑器。Vim 可以提供缓冲区(buffers)、宏(macros) 和书签(bookmarking)的功能。Vim 还内置了一种自己的脚本语言,以便开发人员编写插件增强它的功能。下面我们就通过 安装插件 和 增加配置 的方式,来把基础的 Vim 变成一个轻量级的 IDE。
步骤
安装 Vundle 插件,用来管理插件
我们下面要安装很多插件,而这些插件可以用别的插件来管理,这个管理插件的插件就是 Vundle ,以下是命令步骤。
$ mkdir -p ~/.vim/bundle
$ cd ~/.vim/bundle
$ git clone https://github.com/VundleVim/Vundle.vim.git Vundle.vim
然后把这写配置代码添加到 ~/.vimrc
中:
Note
注意,在 .vimrc 文件中, "
开头的是注释。
set nocompatible
filetype off
" 将运行时路径设置为包含 Vundle 并初始化
set rtp+=~/.vim/bundle/Vundle.vim
" 设置插件下载目录为 ~/.vim/plugged/
call vundle#begin('~/.vim/plugged')
" 让 Vundle 管理 Vundle
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin indent on
后面在安装新的插件的时候,就把 Plugin xxx/xxx.vim
添加到 call vundle#begin()
和 call vundle#end()
中间即可。
添加了插件后,需要手动触发安装所有插件。进入 vim 后,输入以下命令即可自动下载安装所有插件:
:PluginInstall
输入命令后按 Enter
后,屏幕会从中间分成两边,并且显示安装过程。当在 vim 底部的状态栏中显示 Done
后,插件就全部安装好了,此时按 q
退出。
如果要卸载某个插件,只要将插件注释掉,然后执行这条命令即可:
:PluginClean
执行之后,程序会把 未配置 的插件代码从插件目录中删除。
编辑 .vimrc
文件,在里面输入一些配置,让 vim 更好用。
set number " 显示行号
syntax on " 开启代码语法高亮
当开启语法高亮后,vim 会从 syntax/<language>.vim
中寻找对应后缀文件的高亮文件。比如打开了 main.cpp,vim 会自动寻找 syntax.cpp 文件,并按照里面的规则进行代码文件的渲染。
配置 TAB 键、搜索、内置终端
下面添加几个和 Tab 键有关的配置:
set tabstop=4 " 输入 \t 制表符后空 4 个空格
set shiftwidth=4 " 按下 Tab 后空 4 个空格
set expandtab " 按下 Tab 后使用空格而不是制表符
在 Normal 模式下输入正斜杠时,会触发 vim 的搜索功能。下面这俩配置可以使搜索功能更加直观:
set incsearch " 启用增量搜索
set hlsearch " 搜索结果高亮显示
在搜索时,关键词会高亮显示,取消高亮输入: :noh
。
当输入 :term
时,会打开 vim 内置的终端,下面配置这个终端的一些特性:
set termwinsize=12x0 " 设置终端尺寸为 12 行
set splitbelow " 始终在底部拆分
set mouse=a " 支持鼠标拖动窗口改变终端高度
增加各种编程语言语法包和缩进,vim-polyglot 插件
vim-polyglot 插件可以对 50 多种编程语言进行语法高亮。通过下面的命令安装这个插件:
# 在 .vimrc 中添加这行配置
Plugin 'sheerun/vim-polyglot'
# 通过这条命令在命令行安装插件
$ vim +PluginInstall +qall
因为语言包是按需加载的,所以不会拖慢 vim 的启动和运行速度。可以用下面的命令查看语言包占用的空间:
$ du -hcs ~/.vim/plugged/vim-polyglot
# Output
23M .vim/plugged/vim-polyglot/
23M total
安装配色主题
虽然 Vim 的默认主题已经够用了,但我们也可以自己另外安装主题。输入 :color<space>
,然后按 <TAB>
键自动按顺序遍历出所有主题名称。
Note
:color<space>
中的 <space>
代表空格。
awesome-vim-colorschemes 这个仓库包含了许多好看的主题,可以从里面找自己喜欢的。添加下面的配置,并且执行安装,就可以安装对应主题了。
Plugin 'cocopon/iceberg.vim'
Plugin 'arcticicestudio/nord-vim'
Plugin 'Badacadabra/vim-archery'
Plugin 'kristijanhusak/vim-hybrid-material'
Plugin 'scheakur/vim-scheakur'
Plugin 'lifepillar/vim-solarized'
# Install on command line
$ vim +PluginInstall +qall
可以随便打开一个文件预览一下这些主题样式,选择好某一个主题后,可以设置默认的主题。
set background=dark " 设置默认主题为深色主题
colorscheme scheakur " 设置默认主题的名称
方括号、圆括号和引号的自动成对补全,auto-pairs 插件
在输入括号、反引号、单双引号时可以让编辑器自动成对输入,通过安装 auto-pairs 插件可以实现:
Plugin 'jiangmiao/auto-pairs'
# Install on command line
$ vim +PluginInstall +qall
这个自动补全的功能有时需要有时不需要。可以添加一个快捷键开关,让我们临时调节。
let g:AutoPairsShortcutToggle = '<C-P>'
添加这条配置后,按 CTRL P 可以临时调节,编辑器是否自动成对输入那些字符。
文件管理器,NERDTree 插件
NERDTree 插件是一个文件资源管理器,可以在左侧打开一个边栏,以选择、浏览、重命名等等的当时管理文件。
安装配置如下:
Plugin 'preservim/nerdtree'
# Install on command line
$ vim +PluginInstall +qall
在 vim
中,输入 :NERDTree
就可以打开这个文件资源管理器,输入 :help nerdtree
可以查看他的帮助文档。
输入 q
或者 :NERDTreeClose
可以关闭它。
下面再添加几个 NERDTree 的配置,让它更好用:
let NERDTreeShowBookmarks = 1 " 显示书签表格
let NERDTreeShowHidden = 1 " 显示隐藏文件
let NERDTreeShowLineNumbers = 0 " 隐藏行号
let NERDTreeMinimalMenu = 1 " 使用最小菜单(m)
let NERDTreeWinPos = “left” " 面板在左侧打开
let NERDTreeWinSize = 31 " 设置面板宽度为31个字符
增加一个面板条,在里面展示源文件的标签,tagbar 插件
tagbar 这个插件可以在文件管理器里面的当前打开的文件下面显示一横条,方便我们查看。
Plugin 'preservim/tagbar'
# Install on command line
$ vim +PluginInstall +qall