在linux上工作的有两种人:用vi的,和用emacs。我身边的人多数是vier, 自己也深爱之。 近来改成用Macbook Pro,开发也从C/JAVA转而接触到JS, HTML,代码编辑器的配置自然也要跟上。
Mac上做可选优秀编辑器或者IDE很多,Sublime Text, TextWrangler, Eclipse等,但是VIM几乎无所不能的插件库,以及速度快的优势还是几乎无可替代的。并且是完全的Open Source, 不做crack那些商业软件的事情。所以做了一番配置和插件的研究,主要达到这样几个特性要求:
1. 代码浏览时候定义引用的跳转。就像SourceInsight。还是ctags + taglist。Mac上这点让很不给力。注意,在mac上自带ctags, 但是它不是我们想要的Exuberant CTags,因此功能不兼容taglist。在Mac,可以用port 下载正确的ctags,在.vimrc中需要如下配置:
" use exuberant ctags tool instead of Mac ctagslet Tlist_Ctags_Cmd = '/opt/local/bin/ctags'" add ctag filesif filereadable("./tags")set tags+=./tagsendif" taglist quick keynnoremap <silent> <F5> :TlistToggle<CR>
2. 语法高亮和自动补全。VIM对JS/HTML的这方面原生支持不够。自动补全对JS很弱,需要在.vimrc中配置omnifunc
autocmdFileType
javascript setomnifunc=javascriptcomplete#CompleteJS
补全的快捷键CTRL-X CTRL-O比较好用。
3. JS的lint(静态语法和代码检查), .vimrc配置如下:
" javascriptlintautocmd FileType javascript set makeprg=/Users/oliverluan/bin/jsl\ -nologo\ -nofilelisting\ -nosummary\ -nocontext\ -conf\ '/Users/oliverluan/bin/jsl.default.conf'\ -process\ %"autocmd FileType javascript set errorformat=%f(%l): %mautocmd FileType javascript inoremap <silent> <F9> <C-O>:make<CR>autocmd FileType javascript map <silent> <F9> :make<CR>
4. HTML代码自动补全,用emmet插件。
5. JAVA代码编写,tab一般要求必须替换为空格,缩进应为4。
" tab settingsset expandtabset tabstop=4set shiftwidth=4set softtabstop=4
6. 不能没有的插件:
MRU: 文件历史
taglist: 顾名思义
以下给出一份完整.vimrc
" syntax highlight
filetype plugin indent on
syntax on
" search etc
set hlsearch
set incsearch
set ruler
" tab settings
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
" file history
noremap :MRU
" javascript auto completion
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
let b:javascript_fold=1
let javascript_enable_domhtmlcss=1
let g:tlist_javascript_settings = 'javascript;s:string;a:array;o:object;f:function;m:member'
" use exuberant ctags tool instead of Mac ctags
let Tlist_Ctags_Cmd = '/opt/local/bin/ctags'
" add ctag files
if filereadable("./tags")
set tags+=./tags
endif
" taglist quick key
nnoremap :TlistToggle
" javascriptlint
autocmd FileType javascript set makeprg=/Users/oliverluan/bin/jsl\ -nologo\ -nofilelisting\ -nosummary\ -nocontext\ -conf\ '/Users/oliverluan/bin/jsl.default.conf'\ -process\ %
"autocmd FileType javascript set errorformat=%f(%l): %m
autocmd FileType javascript inoremap :make
autocmd FileType javascript map :make
" folding
"set foldmethod=indent "set default foldmethod
"set foldlevel=8
" emmet for html
let g:user_emmet_settings = {
\ 'indentation' : ' ',
\ 'perl' : {
\ 'aliases' : {
\ 'req' : 'require '
\ },
\ 'snippets' : {
\ 'use' : "use strict\nuse warnings\n\n",
\ 'warn' : "warn \"|\";",
\ }
\ }
\}
let g:user_emmet_expandabbr_key = ''
"let g:user_emmet_expandabbr_key = ''
let g:use_emmet_complete_tag = 1
" netrw configs
let g:netrw_altv = 1
let g:netrw_liststyle = 3
let g:netrw_preview = 1
let g:netrw_winsize = 30
本文介绍如何在Mac系统上配置Vim编辑器,并安装一系列增强功能的插件,包括代码跳转、语法高亮、自动补全、代码检查、HTML自动补全及JAVA代码编写设置。
7599

被折叠的 条评论
为什么被折叠?



