摘要:原文一直以來被稱為編輯器之神的在下很難發(fā)揮其強(qiáng)大的功能,本文從實(shí)用的角度闡述如何調(diào)校出一個(gè)比較好用的不過仍然要說明下,在眾多構(gòu)建版本中平臺(tái)的是我認(rèn)為最好用的一個(gè)版本。
原文:https://keelii.github.io/2016/06/13/awsome-window-vimrc/
一直以來被稱為編輯器之神的 vim 在 Windows 下很難發(fā)揮其強(qiáng)大的功能,本文從實(shí)用的角度闡述如何調(diào)校出一個(gè)比較好用的 vim
不過仍然要說明下,在眾多 vim 構(gòu)建版本中 Mac OS 平臺(tái)的 MacVim 是我認(rèn)為最好用的一個(gè)版本。由于自己公司主力用 Windows,又因筆者是一枚對(duì)編輯器顏值體驗(yàn)有要求的前端工程師, 所以才有了下文 ^!^
先說明下開發(fā)環(huán)境:
ThinkPad T450 (公司標(biāo)配)
Windows 7 SP1 64bit 企業(yè)版
編程語言 Javascript, HTML, CSS, NodeJS, Python
前言本文旨在配置和使用 vim,并不適合太初級(jí)的 vim 用戶,本文作者也不是 vim 死忠粉,經(jīng)?;煊?Webstrom 和 vim
開始開始之前我們先看一眼 Windows 上安裝 Gvim 的默認(rèn)界面,我們將從這里開始一步步的學(xué)習(xí)和配置
配置 _vimrc由于 vimrc 里面會(huì)有很多的配置項(xiàng),為了避免混亂,我大概按自己的使用習(xí)慣分成了幾個(gè)小組:
Startup - 編輯器啟動(dòng)時(shí)需要添加的一些配置
General - 通用配置
Lang & Encoding - 語言和編碼
GUI - 界面
Format - 基本的代碼格式
Keymap - 通用的快捷鍵
Plugin - 插件相關(guān)(包括和當(dāng)前插件相關(guān)的配置和快捷鍵等)
Function - vimrc 里面用到的常用方法
Startup" Startup {{{ filetype indent plugin on " vim 文件折疊方式為 marker augroup ft_vim au! au FileType vim setlocal foldmethod=marker augroup END " }}}
設(shè)置 vim 相關(guān)文件打開后默認(rèn)折疊方式為 marker,約定俗成的用三個(gè)花括號(hào)注釋包裹起來,這樣在你打開配置文件的時(shí)候 vim 就會(huì)幫你折疊起來,配置文件看起來就簡潔多了,如圖:
General" General {{{ set nocompatible set nobackup set noswapfile set history=1024 set autochdir set whichwrap=b,s,<,>,[,] set nobomb set backspace=indent,eol,start whichwrap+=<,>,[,] " Vim 的默認(rèn)寄存器和系統(tǒng)剪貼板共享 set clipboard+=unnamed " 設(shè)置 alt 鍵不映射到菜單欄 set winaltkeys=no " }}}
基本上一眼就能看出來這是些啥玩意,不過后面兩項(xiàng)目我個(gè)人感覺比較好用:
clipboard+=unnamed 比如你在其它地方 copy 了一段文字回到 vim 里面可以粘貼進(jìn)來
winaltkeys=no 一般 windows 下應(yīng)用程序的 alt 是用來定位菜單欄目的快捷鍵,我們需要禁用它,因?yàn)槲覀兒竺婧芏嘣O(shè)置都需要使用 alt,需要使用 alt 來定位菜單的情況很少
Lang & Encoding" Lang & Encoding {{{ set fileencodings=utf-8,gbk2312,gbk,gb18030,cp936 set encoding=utf-8 set langmenu=zh_CN let $LANG = "en_US.UTF-8" "language messages zh_CN.UTF-8 " }}}
vim 里面設(shè)置編碼的地方很多,上面這些配置可以保證不會(huì)出現(xiàn)亂碼,像文件菜單、vim默認(rèn)語言建議設(shè)置成 en_US
GUI" GUI {{{ colorscheme Tomorrow-Night source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim set cursorline set hlsearch set number " 窗口大小 set lines=35 columns=140 " 分割出來的窗口位于當(dāng)前窗口下邊/右邊 set splitbelow set splitright "不顯示工具/菜單欄 set guioptions-=T set guioptions-=m set guioptions-=L set guioptions-=r set guioptions-=b " 使用內(nèi)置 tab 樣式而不是 gui set guioptions-=e set nolist " set listchars=tab:? ,eol:?,trail:·,extends:>,precedes:< set guifont=Inconsolata:h12:cANSI " }}}
編輯器配色建議使用 Tomorrow-Night,下載文件 copy 到 colors 目錄即可
從上面的設(shè)置可以看出來,為了得到一個(gè)簡潔漂亮的界面,我們?nèi)サ袅瞬藛螜?、各種滾動(dòng)條、使用 vim 內(nèi)置 tab 而不是 gvim 系統(tǒng)的 tab 樣式,注意很多開發(fā)者喜歡顯示不可見字符,比如:tab 制表符、換行符號(hào)、尾空格等。
我自己并不喜歡這樣,因?yàn)檫@樣只會(huì)使界面看起來更零亂,尤其是某插件縱向標(biāo)尺
字體方面?zhèn)€人推薦 Inconsolata 這個(gè)在我看來是 Windows 平臺(tái)最漂亮的等寬字體了
此時(shí)你的編輯器應(yīng)該好看了很多:
Format" Format {{{ set autoindent set smartindent set tabstop=4 set expandtab set softtabstop=4 set foldmethod=indent syntax on " }}}
這個(gè)設(shè)置容易引起爭議,我自己是這么個(gè)設(shè)置,大家按個(gè)人喜好就行了,反正我是不建議使用 tab 的,對(duì)代碼格式有強(qiáng)迫癥的人一般都會(huì)設(shè)置 foldmethod=indent
Keymap可以說快捷鍵是每個(gè)編輯器必備的功能,科學(xué)的設(shè)置快捷鍵能很大程度的提高效率??旖萱I的設(shè)置要遵循一個(gè)規(guī)則:盡量不要修改系統(tǒng)默認(rèn)配置的快捷鍵,非要設(shè)置的話選擇好相應(yīng)的模式
" Keymap {{{ let mapleader="," nmaps :source $VIM/_vimrc nmap e :e $VIM/_vimrc map tn :tabnew map tc :tabclose map th :tabp map tl :tabn " 移動(dòng)分割窗口 nmap j nmap k nmap h nmap l " 正常模式下 alt+j,k,h,l 調(diào)整分割窗口大小 nnoremap :resize +5 nnoremap :resize -5 nnoremap :vertical resize -5 nnoremap :vertical resize +5 " 插入模式移動(dòng)光標(biāo) alt + 方向鍵 inoremap inoremap inoremap inoremap " IDE like delete inoremap bdei nnoremap vv ^vg_ " 轉(zhuǎn)換當(dāng)前行為大寫 inoremap mzgUiw`za " 命令模式下的行首尾 cnoremap cnoremap nnoremap :setlocal number! nnoremap w :set wrap! imap "+gP vmap "+y vnoremap d vnoremap "+y vnoremap "+y imap "+gP map "+gP cmap + cmap + exe "inoremap Tabular 對(duì)齊插件,文章末尾 gif 圖里面有展示,visual 模式下選擇要對(duì)齊的多行文本,進(jìn)入命令模式 :Tabularize /對(duì)齊符號(hào)
Airline狀態(tài)欄美化插件,準(zhǔn)備棄用了
Ctrlp類似IDE里面的最近打開的文件,用于快速定位文件/Buffer
NERDCommenter注釋插件,默認(rèn)是快捷鍵是
Emmetc 用來快速寫 HTML
SnipMate代碼片段管理, 這個(gè)插件很早之前的那個(gè)版本不維護(hù)了,現(xiàn)在最新版的非常強(qiáng)大,不過有另外兩個(gè)依賴,默認(rèn)是沒有任何內(nèi)置的 snippet 的,如果需要樣版,可以安裝 這個(gè)插件 需要自定義的話手動(dòng)更改 snippets 目錄下的文件即可(其實(shí)就是個(gè)git倉庫,你可以換成自己的)
FugitiveGit 命令增強(qiáng)工具,在 vim 使用 git,狀態(tài)欄的分類名稱就是調(diào)用的這個(gè)插件的方法 fugitive#head()
Neocomplete自動(dòng)補(bǔ)全插件,這個(gè)代碼實(shí)例插件是需要 lua 支持的,可能你需要手動(dòng)編譯一個(gè)帶 lua 支持版本的 gvim,下篇文章 我將記錄下自己在 Windows 上編譯安裝的過程
什么?你說為啥不裝 YouCompleteMe,官方作者都不支持的插件就別折騰了吧,Neocomplete 這個(gè)實(shí)例插件對(duì)于我的情況來說已經(jīng)夠用了
Function常用方法這里我只有一個(gè),移除尾空格
" Function {{{ " Remove trailing whitespace when writing a buffer, but not for diff files. " From: Vigil " @see http://blog.bs2.to/post/EdwardLee/17961 function! RemoveTrailingWhitespace() if &ft != "diff" let b:curcol = col(".") let b:curline = line(".") silent! %s/s+$// silent! %s/(s* )+\%$// call cursor(b:curline, b:curcol) endif endfunction autocmd BufWritePre * call RemoveTrailingWhitespace() " }}}No picture U say a ... ?
這個(gè)是動(dòng)圖,不動(dòng)戳大
結(jié)語還有一點(diǎn)沒說明,vimrc 里面的一些 windows 獨(dú)有的設(shè)置我并沒有加一些判斷來兼容其它平臺(tái),這個(gè)是個(gè)人喜好而已,我會(huì)多帶帶分開維護(hù)不同平臺(tái)的配置文件,而不是全部放在一起各種邏輯判斷
引用完整配置文件
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/24871.html
摘要:不過近日來隨著最后幾個(gè)補(bǔ)全插件的加入和配置調(diào)整,這個(gè)配置文件已經(jīng)比較完整,因此可以好好坐下來,對(duì)使用方法和注意點(diǎn)作一介紹。更建議你打開里面的各個(gè)文件查看,學(xué)習(xí)。 中文介紹 原來的repo放在 spf13-vim-leoatchina,因?yàn)樵瓉硪粫r(shí)腦抽,把中文字體放進(jìn)去后導(dǎo)致體積較大,影響速度,所以重開一個(gè)repo并把windows下的工具分開,以增加clone速度。 現(xiàn)在的配置是在 l...
摘要:帶上你的,走下面講到的配置主要出自我自用的配置,感興趣的可以參考一鍵裝機(jī)之的幾乎所有配置都可以保存在一個(gè)文件中,因此把同步起來,直接拷貝到相應(yīng)位置并指定,則可以恢復(fù)相應(yīng)的配置。 首發(fā)自簡書 每個(gè)Vimer都有自己的一個(gè)配置,猶如每個(gè)劍客都有自己的一把劍(應(yīng)該是吧)。(爭?。┳鳛橐粋€(gè)傳說中的全棧開發(fā)者,換機(jī)器就像換衣服一樣頻繁;在異國他鄉(xiāng)的機(jī)器上,是否懷念那一套屬于你的指法呢?下面會(huì)講一...
摘要:終極目標(biāo)問題描述首先聲明,這是一次失敗的編譯經(jīng)歷,僅供參考,歡迎討論。近期發(fā)現(xiàn)是一個(gè)很棒的編輯器,簡潔高效。所以,毅然決然,自己從源碼編譯一個(gè)。首先運(yùn)行上面目錄樹中的。我猜想這可能和我的失敗有關(guān)。設(shè)置為,編譯結(jié)果是,則代表。 終極目標(biāo) VIM = Python multi-version IDE 問題描述 首先聲明,這是一次失敗的編譯經(jīng)歷,僅供參考,歡迎討論。 近期發(fā)現(xiàn)VIM是一個(gè)很棒...
閱讀 680·2021-11-25 09:43
閱讀 1959·2021-11-17 09:33
閱讀 864·2021-09-07 09:58
閱讀 2095·2021-08-16 10:52
閱讀 509·2019-08-30 15:52
閱讀 1747·2019-08-30 15:43
閱讀 1076·2019-08-30 15:43
閱讀 2957·2019-08-29 16:41