安装
vim 是一款文本编辑器,能安装众多的插件足以满足不同的开发需求,但是它最强大之处在于:键盘上的每个键都是功能键,当你熟悉相关命令之后,能极大的提高编码效率。
首先去官网下载一个 vim
配置
创建配置文件
- 1、安装完成之后,去用户目录下(windows:C:\Users\xx, linux:home/xx/)查找 .vim 文件夹和 .vimrc
- 2、如果没有就手动创建出来
- 3、先列出个人的 .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()
" alternatively, pass a path where Vundle should install plugins
Plugin 'VundleVim/Vundle.vim' "let Vundle manage Vundle, required
Plugin 'flazz/vim-colorschemes' "配色插件
Plugin 'scrooloose/nerdtree' "树形目录
Plugin 'jistr/vim-nerdtree-tabs' "多标签共用nerdtree
Plugin 'ctrlpvim/ctrlp.vim' "查找文件
Plugin 'vim-scripts/indentpython.vim' "自动缩进
Plugin 'vim-syntastic/syntastic' "静态语法检测
Plugin 'nvie/vim-flake8' "添加PEP8代码风格检查
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
" System vimrc file for MacVim
"
" Maintainer: Bjorn Winckler <bjorn.winckler@gmail.com>
" Last Change: Sat Aug 29 2009
syntax enable "语法高亮
set background=dark "设置背景色
colorscheme Monokai "默认配色
set nocompatible "关闭对 vi 的兼容
set nu "设置行号
" The default for 'backspace' is very confusing to new users, so change it to a
" more sensible value. Add "set backspace&" to your ~/.vimrc to reset it.
set backspace+=indent,eol,start
" Disable localized menus for now since only some items are translated (e.g.
" the entire MacVim menu is set up in a nib file which currently only is
" translated to English).
"静态语法检测
let g:syntastic_lua_checkers = ['luacheck']
let python_highlight_all=1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
"NERDTree快捷键
map <F2> :NERDTreeToggle<CR> "设置f2为打开、关闭NERDTree快捷键
let g:NERDTreeWinPos="left" "靠左显示
let g:NERDTreeWinSize=25 "最大长度
let g:NERDTreeShowLineNumbers=1 "显示行号
let NERDTreeShowHidden=1 "是否显示隐藏文件
let g:nerdtree_tabs_open_on_console_startup=1 " 在终端启动vim时,共享NERDTree,用于打开多个标签页的情况
let NERDTreeIgnore=['\.pyc','\~$','\.swp'] " 忽略一下文件的显示
" let NERDTreeShowBookmarks=1 " 显示书签列表
let NERDTreeHighlightCursorline = 1 "高亮当前行
let g:NERDTreeAutoCenter=1
let g:neocomplcache_enable_at_startup = 1
"从NERDTree打开文件后自动关闭NERDTree
let g:NERDTreeQuitOnOpen=1
" 在终端启动vim时,共享NERDTree
" 显示书签列表
"autocmd vimenter * NERDTree "打开vim默认打开nerdtree
"autocmd VimEnter * wincmd p "打开vim默认光标位置在文件中
" Highlight current line
au WinLeave * set nocursorline nocursorcolumn
au WinEnter * set cursorline cursorcolumn
set cursorline cursorcolumn
" Display tabs at the beginning of a line in Python mode as bad.
au BufRead,BufNewFile *.py,*.pyw match CursorLineNr /^\t\+/
" Make trailing whitespace be flagged as bad.
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match CursorLineNr /\s\+$/
"设置缩进
set tabstop=4
set softtabstop=4
set shiftwidth=4
set textwidth=120
set showmatch
set expandtab
set autoindent
set fileformat=unix
set nohls
set guifont=Consolas:h14
set encoding=utf-8
set langmenu=zh_CN.UTF-8
"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"解决consle输出乱码
language messages zh_CN.UTF-8
"默认最大化窗口打开
au GUIEnter * simalt ~x
安装 Vundle
- 1、可以理解为 linux 下的 install,安装了 Vundle 之后,可以很方便的安装其他插件,Vundle
- 2、先从 github上 clone Vundle相关文件,git clone https://github.com/VundleVim/Vundle.vim.git xx/.vim/bundle/Vundle.vim(~为用户目录)
- 3、打开 .vimrc 文件:添加一下代码,然后打开 vim,输入 :PluginInstall
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
配色
之前习惯使用 sublime,安装完成 vim 之后发现颜色很不习惯,那就先解决一下配色问题。
- github上有篇文章详细介绍了配色问题(链接),
- 不过上面我们讲到能使用 Vundle 来安装插件,其实很简单就是新增一项Plugin ‘flazz/vim-colorschemes’,然后重启 vim,执行 :PluginInstall 就会自动安装
- 安装完成之后,你会发现供选择的配色实在是太多了,上下拖动很麻烦,我这里是把大部分都删除了,只保留了molokai.vim 和 Monokai.vim 两种。
- 当前你可以挑选一款自己喜欢的颜色,然后每次打开 vim 是是用该颜色:只需要在.vimrc 中添加 colorscheme Monokai
树形目录插件(NERDTree)
有了 NERDTree 之后,就能像 sublime 一样能一览工程目录
- 1、首先安装,在 .vimrc 中添加 Plugin ‘scrooloose/nerdtree’
- 2、其他相关的配置参考上面 .vimrc 文件中 NERDTree快捷键
- 3、下面列出常用的 NERDTree 命令:
?: 快速帮助文档
o: 打开一个目录或者打开文件,创建的是buffer,也可以用来打开书签
go: 打开一个文件,但是光标仍然留在NERDTree,创建的是buffer
t: 打开一个文件,创建的是Tab,对书签同样生效
T: 打开一个文件,但是光标仍然留在NERDTree,创建的是Tab,对书签同样生效
i: 水平分割创建文件的窗口,创建的是buffer
gi: 水平分割创建文件的窗口,但是光标仍然留在NERDTree
s: 垂直分割创建文件的窗口,创建的是buffer
gs: 和gi,go类似
x: 收起当前打开的目录
X: 收起所有打开的目录
e: 以文件管理的方式打开选中的目录
D: 删除书签
P: 大写,跳转到当前根路径
p: 小写,跳转到光标所在的上一级路径
K: 跳转到第一个子路径
J: 跳转到最后一个子路径
<C-j>和<C-k>: 在同级目录和文件间移动,忽略子目录和子文件
C: 将根路径设置为光标所在的目录
u: 设置上级目录为根路径
U: 设置上级目录为跟路径,但是维持原来目录打开的状态
r: 刷新光标所在的目录
R: 刷新当前根路径
I: 显示或者不显示隐藏文件
f: 打开和关闭文件过滤器
q: 关闭NERDTree
A: 全屏显示NERDTree,或者关闭全屏
静态语法检测
- 1、安装 syntastic, 包含了 Lua、和 Python 的语法检测。
- 2、参考 .vimrc 中的静态检测配置
多标签页
:tabnew [++opt选项] [+cmd] 文件 建立对指定文件新的tab
:tabc 关闭当前的tab
:tabo 关闭所有其他的tab
:tabs 查看所有打开的tab
:tabp 前一个
:tabn 后一个
多窗口
- 创建多窗口
:split 将当前窗口分割成上下两半,他们显示的是相同缓冲区的内容(同一个文件)
:vsplit 将当前窗口分割成左右两半,他们显示的是相同缓冲区的内容(同一个文件)
:split otherfile 将当前窗口分割成上下两半,他们显示的是当前的文件和和新指定的文件。
:vsplit otherfile 将当前窗口分割成左右两半,他们显示的是当前的文件和和新指定的文件。
- 在窗口之间切换
按住Ctrl + W,然后再加上h, j, k, l,分别表示向左、下、上、右移动窗口。
按住Ctrl + W,然后再加上t, b, p,分别表示向最左上角、最右下角、前一个访问的窗口。
按住Ctrl,然后再加上方向键,也可以移动窗口。
autocmd 的用法
- 可以添加一些命令,跟事件绑定,目前尚未研究清楚
- 参考