OSX上的vim配置:从Linux到Mac,C/Java到JS,HTML

在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 ctags
let Tlist_Ctags_Cmd = '/opt/local/bin/ctags'
" add ctag files
if filereadable ( "./tags" )
set tags +=./ tags
endif
" taglist quick key
nnoremap < silent > <F5 > :TlistToggle <CR >


2. 语法高亮和自动补全。VIM对JS/HTML的这方面原生支持不够。自动补全对JS很弱,需要在.vimrc中配置omnifunc

autocmdFileType javascript setomnifunc=javascriptcomplete#CompleteJS

补全的快捷键CTRL-X CTRL-O比较好用。


3. JS的lint(静态语法和代码检查), .vimrc配置如下:

 
 
   
   
" 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 < silent > <F9 > <C -O >: make <CR >
autocmd FileType javascript map < silent > <F9 > : make <CR >

4. HTML代码自动补全,用emmet插件。


5. JAVA代码编写,tab一般要求必须替换为空格,缩进应为4。

 
 
" tab settings
set expandtab
set tabstop = 4
set shiftwidth = 4
set 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 
                 
                
               
              
             
            
           
          
         
       
      
      
     
     
    
    
   
   


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值