vim使用技巧

开始之前需要理解一点,不同用户使用vim的时候,会调用各自主目录下的配置文件,因此不同的用户需要在其目录配置参数文件
下面均以root用户为例:

一、vim基础设置

1、基础准备

默认情况下配置文件不存在,首先创建

cd ~
touch .vimrc

2、添加基础配置

set nocompatible "关闭与vi的兼容模式
set number "显示行号
set nowrap "不自动折行
set showmatch "显示匹配的括号
set scrolloff=3 "距离顶部和底部3行"
set encoding=utf-8 "编码
set fenc=utf-8 "编码
set mouse=a "启用鼠标
set hlsearch "搜索高亮
syntax on "语法高亮

为py文件添加下支持pep8风格的配置:

au BufNewFile,BufRead *.py
\ set tabstop=4 "tab宽度
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79 "行最大宽度
\ set expandtab "tab替换为空格键
\ set autoindent "自动缩进
\ set fileformat=unix "保存文件格式

二、窗口分割

参数 说明
:vs 或者 :vsplit 将当前窗口竖直分割,并在上面新窗口中显示当前文件
:vs filename 将当前窗口竖直分割,新文件在新窗口中显示
:sp 或者:sv或者:split 将当前窗口水平分割,并在左边新窗口中显示当前文件
:sp filename 将当前窗口竖直分割,新文件在左边新窗口中显示
:new 新建文件并竖直分割
:vnew 新建文件并水平分割
set splitbelow
set splitright

Ctrl-w-j 切换到下方的分割窗口
Ctrl-w-k 切换到上方的分割窗口
Ctrl-w-l 切换到右侧的分割窗口
Ctrl-w-h 切换到左侧的分割窗口

三、一键执行代码

将以下配置添加到 ~/.vimre中,既可以在编辑代码之后按F5快速执行
使用说明:编辑完从编辑模式切换到命令模式(ESC),再按F5既可以 执行

""""""""""""""""""""""""
"一键执行代码
""""""""""""""""""""""""
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!time java %<"
elseif &filetype == 'sh'
:!time bash %
elseif &filetype == 'python'
exec "!time python2.7 %"
elseif &filetype == 'html'
exec "!firefox % &"
elseif &filetype == 'go'
" exec "!go build %<"
exec "!time go run %"
elseif &filetype == 'mkd'
exec "!~/.vim/markdown.pl % > %.html &"
exec "!firefox %.html &"
endif
endfunc

注释:在vim的配置文件内,"引号后面的内容为注释内容


四、插件

1、管理插件的插件Vundle

Vundle 是 Vim bundle 的简称,使用git来管理vim插件

创建:~/.vim/bundle 目录

cd ~
mkdir .vim
cd .vim
mkdir bundle

下载vundle源码

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

添加配置

然后将下列配置放在.vimrc文件

set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required

使用示例

如果想下载某个插件,比如自动缩进indentpython.vim插件,需要将

Plugin 'vim-scripts/indentpython.vim'

置于call vundle#begin()call vundle#end()之间,
保存配置后在vim中执行

:PluginInstall

即可以自动下载indentpython.vim插件了。

命令 说明
:PluginList 列出已有插件
:PluginInstall 安装插件; 追加 ! 用于升级或者使用 :PluginUpdate 升级
:PluginSearch foo 搜索插件foo; 追加 ! 用来刷新本地缓存
:PluginClean 确认删除未使用的插件; 追加 ! 用于自动确认删除

2、常用插件

自动缩进

Plugin 'vim-scripts/indentpython.vim'

代码补全

Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'tomtom/tlib_vim'
Plugin 'garbas/vim-snipmate'
" Optional:
Plugin 'honza/vim-snippets'

语法检查

Plugin 'vim-syntastic/syntastic'