平時的工作中很喜歡研究編程工具,剛畢業那會做java開發一直都是用的Eclipse,Eclipse上手快集成的東西多,各種各樣的插件供開發者選擇,開發效率高。在工作的一年多時間里一直都是用的這個IDE,但是由於后來自己對javascript很感興趣,平時就經常研究javascipt的一些代碼,剛開始是在eclipse里面裝一些開發js的插件,比如spkek,JSEclipse到后來的VJET等等。一次偶然的機會去新浪培訓和他們的前端工程師交流,問他們工作中用什么工具來編碼,他說我用的是vi。vi第一次聽到這個開發工具,到后來查了下算是對vi有了一些了解,vi只能運行於unix,所以在windows下只能使用vim,然后就學習使用了一段時間,但是這個工具使用起來全是命令,所有的操作都幾乎可以通過鍵盤操作來完成,不需要用鼠標。剛開始覺得好難用,因為工作中要求快速完成一個功能,所以就沒有堅持使用下去,之后也反復嘗試了幾次但都沒能堅持。
2011年最后一個月換了新工作,剛開始的兩個月仍然是用Eclipse + spket來開發,有時候就想前端開發的主要任務就是html + css + js用Eclipse太大材小用了,就想繼續使用vim,所以下載了最新版的gvim7.3然后在網上找各種配置,如何打造成一個開發js的ide,平時邊用邊搜集、總結、摸索,還有各種主題配色的篩選,經過兩三個月的適應,還算習慣了在gvim下做前端開發工作,最后我還下載安裝了Monaco字體,這種字體看起來比較舒服,win7默認是不支持這種字體的,所以需要下載安裝,感興趣的同學可以去谷歌找,這里我把自己配置的開發界面分享出來:-D
這就是我平時開發過程中的界面,我自己的配置與gvim默認配置的不同之處在於
功能描述 | 配置 | 備注 |
啟動的時候不顯示那個援助索馬里兒童的提示 | set shortmess=atI | |
windows下隱藏工具欄 | set guioptions-=T | |
把gui的菜單欄去掉 | set guioptions-=m | |
把gui左邊的滑動條去掉 | set guioptions-=L | |
把gui右邊的滑動條去掉 | set guioptions-=r | |
顯示下方的橫向滾動條 | set guioptions+=b | |
windows下啟動vim最大化 | autocmd GUIEnter * simalt ~x | |
設置不自動換行 | set nowrap | |
設置行號 | set number | |
設置字體 | set guifont=Monaco:h9 | windows下需要自己安裝 |
設置底色 | set background=dark | |
設置主題 | :colorscheme molokai | 可能需要去自己下載 |
定義變量 $VIMFILES | let $VIMFILES = $VIM.'/vimfiles' | |
定義變量 $VIMDATA | let $VIMDATA = $VIMFILES.'/vimdata' | |
設置備份文件路徑 | set backupdir=$VIMDATA/backup set directory=$VIMDATA/temp |
默認是在文件所在路徑創建,這樣會可能把備份文件提交到svn或者git |
類似C語言程序的縮進 | set cindent | |
自動縮進,即為新行自動添加與當前行同等的縮進 | set autoindent | |
基於autoindent的一些改進 | set smartindent | |
搜索逐字符高亮,查詢時非常方便,如要查找book單詞,當輸入到/b時,會自動找到第一 個b開頭的單詞,當輸入到/bo時,會自動找到第一個bo開頭的單詞,依 次類推,進行查找時,使用此設置會快速找到答案,當你找要匹配的單詞 時,別忘記回車 |
set hlsearch set incsearch |
|
打開語法高亮 | syntax on | |
自動縮進4個空格 | set shiftwidth=4 | |
定義tab所等同的空格長度 | set tabstop=4 | |
表示讓tab的寬度顯示成和4個空格的寬度一樣,shiftwidth和tabstop不一樣的話,你會發現程序比較難看的。 | set softtabstop=4 | |
高亮顯示匹配的括號 | set showmatch | |
設置當文件從外部被改動時自動載入 | set autoread | |
設置不兼容模式 | set nocp | |
打開文件類型檢測功能,它相當於文件類型檢測功能的開關。在執行”filetype on“命令時,vim實際上執行的是$vimRUNTIME/filetype.vim腳本。這個腳本使用了自動命令(autocmd)來根據文件名來判斷文件的類型,如果無法根據文件名來判斷出文件類型,它又會調用$vimRUNTIME/scripts.vim來根據文件的內容設置文件類型。 | filetype on | |
允許vim加載文件類型插件。當這個選項打開時,vim會根據檢測到的文件類型,在runtimepath中搜索該類型的所有插件,並執行它們。實際上是執行$vimRUNTIME/ftplugin.vim腳本 | filetype plugin on | |
允許vim為不同類型的文件定義不同的縮進格式。這條命令也是通過一個腳本來完成加載:$vimRUNTIME/indent.vim。和”filetype plugin on“類似,它也通過設置自動命令,在runtimepath的indent子目錄中搜索縮進設置。對c類型的文件來說,它只是打開了cindent選項。 | filetype indent on | |
Python 文件的一般設置,比如不要tab等 | autocmd FileType python setlocal et sta sw=4 sts=4 | |
正在被編輯的文件的編碼,它也決定新文件的編碼。如果為空,表示與encoding相同。如果與encoding不同,vi將會在保存和讀取時做二者之間的轉換。 | set fileencoding=utf-8 | |
供vi嘗試的編碼列表,vi會逐個嘗試每一項,如果沒有發生錯誤,就設置當前的fileencoding為與該項相同的值。如果均失敗,fileencoding將為空。 | set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 | |
設置記錄的歷史操作列表 | set history=1000 | |
行內替換 | set gdefault | |
語言設置 | set langmenu=zh_CN.UTF-8 set helplang=cn |
|
狀態行顯示的內容(包括文件類型和解碼) | set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} |
|
總是顯示狀態行(默認值為1, 無法顯示狀態欄) | set laststatus=2 | |
打開光標的行列位置顯示功能 | set ruler | |
命令行(在狀態行下)的高度,默認為1,這里是2 | set cmdheight=2 | |
帶有如下符號的單詞不要被換行分割 | set iskeyword+=_,$,@,%,#,- | |
字符間插入的像素行數目 | set linespace=0 | |
增強模式中的命令行自動完成操作 | set wildmenu | |
使回格鍵(backspace)正常處理indent, eol, start等 | set backspace=2 | |
允許backspace和光標鍵跨越行邊界 | set whichwrap+=<,>,h,l | |
可以在buffer的任何地方使用鼠標(類似office中在工作區雙擊鼠標定位) | set mouse=a set selection=exclusive set selectmode=mouse,key |
|
在被分割的窗口間顯示空白,便於閱讀 | set fillchars=vert:\ ,stl:\ ,stlnc:\ | |
匹配括號高亮的時間(單位是十分之一秒) | set matchtime=5 | |
啟動vim時不要自動折疊代碼 | set foldlevel=100 | |
ctags安裝路徑 | let Tlist_Ctags_Cmd='"D:\ctags58\ctags.exe"' | ctags下載地址 |
打開javascript折疊 | let b:javascript_fold=1 | |
打開javascript對dom、html和css的支持 | let javascript_enable_domhtmlcss=1 | |
minibufexpl插件的一般設置 | let g:miniBufExplMapWindowNavVim=1 let g:miniBufExplMapWindowNavArrows=1 let g:miniBufExplMapCTabSwitchBufs=1 let g:miniBufExplModSelTarget=1 |
|
配置WinManager | let g:winManagerWindowLayout='FileExplorer|TagList|BufExplorer' | |
這里設置左側欄目的寬度 | let g:winManagerWidth=35 | |
映射F8鍵為開關Winmanager | nmap <F8> :WMToggle<cr> | |
NERDTree插件 | map <F10> :NERDTreeToggle<CR> | |
jslint插件 | let g:jslint_command='D:\jsl-0.3.0\jsl.exe' | jstLint下載地址 |
以上就是我平時工作中經常用的一些命令配置。