"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" User configuration
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" turn off nice effect on status bar title
let performance_mode=0
let use_plugins_i_donot_use=0
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => General
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"咱們對Vim的描述都假設它是在加強模式下, 因此並不能徹底與Vi兼容
"因此首先確保關閉了 "compatible" 選項
set nocompatible
"定義當前的操做系統, 使用不一樣的系統時, 須要手動修改返回值
"返回值能夠爲 "win32" / "unix"/ "mac"
function! MySys()
return "win32"
endfunction
"在Vim中執行一些過濾操做須要知道一些shell的有關狀況
"若是在使用過濾程序時遇到問題, 能夠考慮檢查下面一些選項的設置:
" "shell" 指定Vim用於運行過濾程序的shell
" "shellcmdflag" 該shell的參數
" "shellquote" 用於分隔shell與過濾程序時成對包圍起過濾程序
" 的字符
" "shellxquote" 用於分隔shell與過濾程序和重定向符號時成對包
" 圍起過濾程序和重定向符號的字符
" "shelltype" shell的類型(只對Amiga有用
" "shellslash" 在命令中使用反斜槓(只對MS-Windows)這樣的
" 系統有用
" "shellredir" 用於將命令輸出重定向到文件的字符串
"
"在Unix上使用過濾程序不多會碰到問題, 由於有兩種shell: 'sh'派和
"'csh'派. Vim會檢查 "shell" 選項看是否包含了'csh'並自動設置相關的
"選項.
"但在windows上,有不少不一樣的shell,因此你要手工調整這些選項來讓過濾
"功能正常動做.請查看上面這些相關選項的幫助以瞭解更多信息
if MySys() == "unix" || MySys() == "mac"
"在Unix和類Unix操做系統中使用 "bash" 做爲 "shell"
set shell=bash
else
"若是是在windows下使用cygwin, 則修改成cynwin的路徑
"set shell=E:cygwininsh
endif
"設置冒號命令和搜索命令的命令歷史列表的長度
"歷史記錄的基本思想是能夠用上下箭頭鍵來找回用過的命令.
"
"實際上有四個歷史記錄, 這裏將要提到的是冒號命令歷史記錄和 "/"
"及 "?" 的搜索命令歷史記錄, "/" 和 "?"都是搜索命令,因此它們共享
"同一個歷史記錄, 另外的兩類歷史記錄分別是關於表達式和input()
"函數的輸入內容的
"
"假設你用過一次 ":set" 命令, 接着用過10次其餘的冒號命令以後又
"想要重複這個 ":set" 命令,你能夠按下 ':' 而後按10次上箭頭鍵<Up>,
"更快的辦法是:
" ":set<Up>"
"Vim會回到上一次你以'se'開頭的命令去,這樣你離':set'命令就更
"近了一些,至少一不用按10次上箭頭<Up>了(除非這中間的10個冒號
"也都是':set'命令).
"
"上箭頭鍵<Up>會根據目前的鍵入的命令部分去跟歷史記錄進行比較,
"只有符合的纔會被列出來.若是沒有找到,你還能夠用下箭頭<Down>
"回到剛纔輸入的部分命令進行修改,或者用Ctrl-U命令所有刪除後
"重來.
"
"要查看全部的歷史記錄,用命令:
" ":history"
"列出的是冒號的歷史記錄,要查看搜索命令的歷史記錄,用:
" ":history /"
"
"Ctrl-P效果如同<Up>,惟一的不一樣是它不會根據你已經鍵入的部分區
"遍歷歷史,相似地,<Down>對應物事Ctrl-N"和下箭頭鍵.Ctrl-P表明
"previous,Ctrl-N表明Next
set history=400
"這段命令開啓了Vim的三種職能:
"
"1. 自動識別文件類型
"你開始編輯一個文件時,Vim就會自動識別它是何種類型的文件,比
"如說你打開了'main.c',Vim就會根據它的'.c'擴展名知道它是一個
"類型爲 "c" 的C語言源程序文件,當你編輯一個文件其第一行是
"'#!bin/sh'時,Vim又能夠據此判斷它是一個類型爲 "sh" 的shell腳
"本文件
"
"2. 用文件類型plugin腳本
"不一樣的文件類型須要搭配適合它的編輯選項.好比說你在編輯一個
" "c" 文件,那麼打開 "cindent" 新很是有用,這些對某種文件類型來
"說最經常使用的選項能夠放在一個Vim中交文件類型plugin的腳本里.
"你還能夠加上你本身寫的,請參考 "write-filetype-plain".
"
"3. 使用縮進定義文件
"編輯程序的時候,語句的縮進可讓它自動完成.Vim爲衆多不一樣的
"文件類型提供了相應的縮進方案.請參考 "filetype-indent-on" 和
" "indentexpr" 選項
filetype on
if has("eval") && v:version>=600
filetype plugin on
filetype indent on
endif
"設置當正在編輯的文件被外部的其它程序所修改後自動在Vim加載
if exists("&autoread")
set autoread
endif
"能夠爲不一樣模式分別打開鼠標:
" "n" 普通模式
" "v" 可視模式
" "i" 插入模式
" "c" 命令行模式
" "h" 編輯幫助文件時,全部前面的模式
" "a" 全部前面的模式
" "r" hit-enter 和 more-prompt 提示時
if exists("&mouse")
set mouse=a
endif
"定義 "mapleader"變量
"要定義一個使用 "mapleader" 變量的映射,可使用特殊字串
" "<Leader>".它會被 "mapleader" 的字符串所替代.若是
" "mapleader" 未設置或爲空,則用反斜槓代替,例如:
" ":map <Leader>A oanother line<Esc>"
"和下面同樣:
" :map \A oanother line<Esc>
"可是當:
" :let mapleader = ","
"時,又至關於:
" :map ,A oanother line<Esc>
"
"注意: "mapleader" 的值僅當定義映射時被使用.後來改變的
" "mapleader" 不會影響到已定義的映射
let mapleader = ","
let g:mapleader = ","
"設置快速保存
"
" "nmap"表示普通模式下的映射定義,
" ":map" 和 ":map!" 命令爲多個模式定義和回顯映射.在 Vim 中你可
"以使用 ":nmap", ":vmap", ":omap", ":cmap" 和 ":imap" 命令來對每
"個不一樣的模式分別定義映射.
"當列出映射時,前面兩欄的字符表示 (可有多個):
" 字 符 模 式
" "<Space>" 普通、可視、選擇和操做符等待
" "n" 普通
" "v" 可視和選擇
" "s" 選擇
" "x" 可視
" "o" 操做符等待
" "!" 插入和命令行
" "i" 插入
" "l" 插入、命令行和 Lang-Arg 模式的 ":lmap" 映射
" "c" 命令行
"
" ":xa!" 保存全部修改過的緩衝區,甚至包括只讀的,但後退出Vim.不過,
"若是有無名或者其它元嬰寫入失敗的緩衝區,Vim仍然不會退出.
"
" ":w!" 和 ":w" 相似,但即便 "readonly" 已置位或者有其餘緣由寫入被拒
"絕,仍是強制寫入.
"注意:這可能會改變文件的權限和全部者,或者破壞(符號)鏈接.但在
" "cpoptions" 里加上 "W" 標誌位能夠避免這一點.
nmap <leader>x :xa!<cr>
nmap <leader>w :w!<cr>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Colors and Font
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"打開語法高亮:
" ":syntax enable"
"實際上,它只是執行以下命令:
" ":source $VIMRUNTIME/syntax/syntax.vim"
"
" ":syntax enable" 命令會保持你當前的色彩設置.這樣,無論在使用此
"命令的先後,你均可以用 ":highlight" 命令設置你喜歡的顏色.若是你
"但願Vim用缺省值覆蓋你本身的,只要用:
" ":syntax on"
if MySys()=="unix"
if v:version<600
if filereadable(expand("$VIM/syntax/syntax.vim"))
syntax on
endif
else
syntax on
endif
else
syntax on
endif
"國際化設置
" "multi_byte" 指韓國語和其餘多字節語言支持
if has("multi_byte")
" "fileencodings" 缺省爲 "ucs-bom",這是一個字符編碼的列表,開始
"編輯已存在的文件時,參考此選項.若是文件被讀入,Vim嘗試使用本
"列表第一個字符編碼.若是檢測到錯誤,使用列表的下一個.若是找
"到一個能用的編碼,設置 "fileencoding" 爲該值.若是所有失敗,
" "fileencoding" 設爲空字符串,這意味着使用 "encoding" 的值.
"
"警告:轉換可能致使信息的丟失!若是 "encoding" 爲 "utf-8" (或者某
"個其它的Unicode變種),那麼轉換的結果經過逆轉換頗有可能產生
"相同的文本.相反,若是 "encoding" 不是 "utf-8",一些非ASCII的字符
"可能會丟失.
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
" "v:lang" 運行環境當前的消息locale設置.它使得Vim腳本能獲得當
"前使用的語言.技術細節:這就是LC_MESSAGES的值.該值和系統有關.
"
" "=~" 爲匹配正則表達式,詳細介紹以下表:
" 使用 "ignorecase" 匹配大小寫 忽略大小寫 ~
"等於 "==" "==#" "==?"
"不等於 "!=" "!=#" "!=?"
"大於 ">" ">#" ">?"
"大於等於 ">=" ">=#" ">=?"
"小於 "<" "<#" "<?"
"小於等於 "<=" "<=#" "<=?"
"匹配正規表達式 "=~" "=~#" "=~?"
"不匹配正規表達式 "!~" "!~#" "!~?"
"相同實例 "is"
"不一樣實例 "isnot"
"
"設置CJK環境的編碼選擇
if v:lang =~ "^zh_CN"
set encoding=cp936
set termencoding=cp936
set fileencoding=cp936
elseif v:lang =~ "^zh_TW"
set encoding=big5
set termencoding=big5
set fileencoding=big5
elseif v:lang =~ "^ko"
set encoding=euc-kr
set termencoding=euc-kr
set fileencoding=euc-kr
elseif v:lang =~ "^ja_JP"
set encoding=euc-jp
set termencoding=euc-jp
set fileencoding=euc-jp
endif
"在必要的時候,使用utf-8替代CJK的設置
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
endif
endif
if has('gui_running')
set guifont=InConsolata:h14
endif
" "ambiwidth" 缺省爲 "single"
"只有在 "encoding" 和 "utf-8" 或別的Unicode編碼時纔有效.告訴Vim怎
"麼處理東亞二義性寬度字符類(East Asian Width Class Ambiguous)(例
"如歐元符號,註冊記號,版權記號,希臘字母,西裏爾字母等等)
"
"目前有兩個可能的選擇:
" "single": 使用和US-ASCII字符相同的寬度.多數用戶但願如此.
" "double": 使用US-ASCII字符兩倍的寬度
"
"在一些 CJK 字體裏,這些字符的字形寬度徹底由它們在傳統的CJK編碼
"裏佔據字節的數目決定.那些編碼中,歐元,註冊記號,希臘/西裏爾字母
"等佔據兩個字節,於是它們在這些字體裏用'寬'字形顯示.這也包括文本
"文件裏製表用的一些畫線字符.所以若是GUI Vim使用CJK字體,或者在使
"用CJK字體的終端(模擬器)(包括帶有 "-cjkwidth" 選項的xterm)裏運
"行Vim,應把該選項設爲 "double",這樣能夠匹配這些字體裏Vim實際看
"到相關字形的寬度.在Windows 9x/ME 或 Windows 2k/XP 上,若是系統
"locale 爲 CJK locale,也應把本選項設爲 "double"
if exists("&ambiwidth")
set ambiwidth=double
endif
" "guioptions" 選項只有在 Vim 的 GUI 版本纔有效.它是字母的序
" 列,分別描述 GUI 應該使用的部件和選項.
" 建議使用 ":set" 的 "+=" 和 "-=" 特性,這能夠避免將來版本增長
" 新的標誌位時出現的問題.
"下面是合法的標誌位字母:
" "a" 自動選擇: 若是存在,不管何時啓動可視模式或者擴展可
" 視區域,Vim 都試圖成爲窗口系統全局選擇區的擁有者.這意
" 味着能夠粘貼高亮的可視文本到其它應用程序甚至 Vim 自身.
" 若是由於在文本之上進行了操做,或者應用程序須要粘貼選擇
" 區等緣由使得可視區域被終止,高亮文本會被自動抽出到 "*"
" 選擇寄存器裏.這樣,即便在可視模式結束之後,選擇區仍然可
" 以被粘貼到別的應用程序.
" 若是不存在,Vim 不會成爲窗口系統的全局選擇區,除非使用
" "*" 寄存器進行抽出和刪除操做,這時該選擇區被顯式地佔有.
" 一樣適用無模式的選擇.
"
" "A" 自動選擇無模式的選擇.相似於 "a",但僅限於無模式的選擇.
" "guioptions" 自動選擇可視 自動選擇無模式
" "" -- --
" "a" 是 是
" "A" -- 是
" "aA" 是 是
"
" "c" 簡單的選擇使用控制檯對話框而不是彈出式對話框.
"
" "e" "showtabline" 要求時,加入標籤頁.
" "guitablabel" 可用來改變標籤文本.
" 若是沒有 "e",可能使用非 GUI 標籤頁行.
" 只有一些系統支持 GUI 標籤頁,如今包括 GTK, Motif,
" Mac OS/X 和 MS-Windows.
"
" "f" 前臺: 不用 fork() 從啓動外殼分叉出本 GUI 進程.用於
" 須要等待編輯器完成的程序 (例如,e-mail 程序).你也可
" 以用 "gvim -f" 或 ":gui -f" 來在前臺啓動 GUI.
" 注意: 在 vimrc 文件裏設置本選項.讀入 gvimrc 文件時
" 分叉操做可能已經發生.
"
" "i" 使用 Vim 圖標.GTK 和 KDE 上它出如今窗口的左上角.在
" 非 GTK 的環境上,由於 X11 的限制,它是黑白的.要獲得
" 彩色圖標,見 "X11-icon"
"
" "m" 使用菜單欄
"
" "M" 不執行系統菜單腳本 "$VIMRUNTIME/menu.vim".
" 注意:本標誌位必須在 ".vimrc" 文件里加入,在打開語法
" 或文件類型識別以前 (執行 "gvimrc" 文件時,系統菜單
" 已經載入;而 ":syntax on" 和 ":filetype on" 命令同
" 樣會載入菜單).
"
" "g" 灰色菜單項: 使得不活動的菜單項變灰.若是沒有包含 "g",
" 不活動的菜單項徹底不顯示.
" 特例: Athena 總會使用灰色的菜單項.
"
" "t" 包含可撕下的菜單項.目前只用於 Win32, GTK+ 和
" Motif 1.2 GUI.
"
" "T" 包含工具欄.目前只用於 Win32, GTK+, Motif, Photon
" 和 Athena GUI.
"
" "r" 右邊的滾動條老是存在.
"
" "R" 若有垂直分割的窗口,右邊的滾動條老是存在.
"
" "l" 左邊的滾動條老是存在.
"
" "L" 若有垂直分割的窗口,左邊的滾動條老是存在.
"
" "b" 底部的 (水平) 滾動條老是存在.它的大小取決於最長的可
" 見行,或者若是包含 'h' 標誌位的話,光標所在的行.詳情
" 可見 "gui-horiz-scroll"
"
" "h" 限制水平滾動條的大小爲光標所在行的長度,以減小計算量.
" 是的,若是你真的想要,左右兩邊均可以有滾動條.詳情可見
" "gui-scrollbars"
"
" "v" 對話框使用垂直的按鈕佈局.若是不包含,傾向使用水平布
" 局,但若是空間不夠,仍是用垂直的佈局.
"
" "p" 使用 X11 GUI 的指針回調.有些窗口管理器須要.若是光標
" 不閃爍或者在必定場合下變空,考慮增長此標誌位.必須在
" 啓動GUI 以前完成.在你的 "gvimrc" 裏設置.在 GUI 啓動
" 後增長或刪除不會有任何效果.
"
" "F" 增長信息頁腳.只適用於 Motif.見 "gui-footer".
if has("gui_running")
set guioptions-=m " 關閉菜單欄
set guioptions-=T " 關閉工具欄
set guioptions-=l " 關閉左邊滾動條
set guioptions-=L " 關閉垂直分隔窗口左邊滾動條
set guioptions-=r " 關閉右邊滾動條
set guioptions-=R " 關閉垂直分隔窗口右邊滾動條
if MySys()=="win32"
" "autocmd" / "au" 定義自動命令
"注意: ":autocmd" 命令不能有其餘命令緊跟其後,由於"|"
"命令是該命令的一個組成部分.
"
" ":au[tocmd] [group] {event} {pat} [nested] {cmd}"
"把 {cmd} 加到 Vim 在匹配 {pat} 模式的文件執行 {event}
"事件時自動執行的命令列表.Vim 把 {cmd} 加到已有的自動
"命令以後,從而使自動命令的執行順序與其定義的順序相同.
"關於 [nested],參見 "autocmd-nested".
"注意 ":autocmd" 的參數裏的特殊字符 (例如, "%", "<cword>")
"在定義時不會被擴展,而是在事件發生並執行 {cmd} 的時候才
"進行.惟一的例外是 "<sfile>" 在定義時擴展.
"
" "GUIEnter" 成功啓動 GUI 並打開窗口後自動命令事件.用
" gvim 的時候,它在 VimEnter 以前發生.在 .gvimrc 裏可用
" 它來定位窗口:
" ":autocmd GUIEnter * winpos 100 50"
"
" "si" / "simalt" 模擬 Alt-{key} 組合鍵.
" ":si[malt] {key}"
" {僅適用 Win32 版本}
"
"正常狀況下,爲了增長鍵映射 (map) 的數量,Vim 控制全部
"Alt-{key} 組合鍵.可是這樣作可能與用 Alt-{key} 訪問菜單
"的標準方法衝突.一個快速的解決辦法是:設置 "winaltkeys"
"選項的值爲 "yes".可是這樣阻止了全部與Alt 鍵有關的映射.
"另外一個辦法是:設置 "winaltkeys" 選項爲 "menu".這樣與菜
"單有關的快捷鍵有 Windows 管理,其他的與 Alt 相關的映射
"仍然好用.但這樣又產生了對當前狀態的依賴性.
"要解決這個問題,就要用 ":simalt" 命令告訴 Vim
"( "winaltkeys" 不要設置爲 "yes") 虛擬一個 Windows 風
"格的 Alt 按鍵行爲.你能夠用它來映射 Alt 組合鍵 (或者任
"何其它鍵) 來產生標準的 Windows 操做.下面是一些例子:
" ":map <M-f> :simalt f<CR>"
"這個命令經過把 Alt-F 映射爲模擬按鍵的 Alt 和 F,使你按
"下 Alt-F 時彈出 "文件" 菜單 (對於缺省的 Menu.vim 而言)
" ":map <M-Space> :simalt ~<CR>"
"這個命令經過映射 Alt-Space 彈出 Vim 窗口的系統菜單.
"注意: ~ 在 simalt 命令裏表明 <Space> (空格).
" ":map <C-n> :simalt ~n<CR>"
"把 CTRL-N 映射成 Alt-Space + N.也就是打開窗口的系統菜
"單,而後按 N,最小化 Vim窗口
"
"這個選項是模擬彈出菜單中使用最大化的快捷鍵 "x"
if has("autocmd")
au GUIEnter * simalt ~x
endif
endif
" "colorscheme" / "colo" 載入色彩方案
" ":colo[rscheme] {name}"
"載入色彩方案 {name}.
"它會在 'runtimepath' 裏搜索 "colors/{name}.vim",載入第一
"個找到的文件.
"要看到當前激活的色彩方案的名字 (若是有的話):
" ":echo g:colors_name"
"它不能遞歸調用,因此你不能在色彩方案腳本里使用 ":colorscheme"
"色彩方案載入後"激活 "ColorScheme" 自動命令事件.關於如何
"編寫色彩方案文件的信息:
" ":edit $VIMRUNTIME/colors/README.txt"
if v:version > 601
colorscheme torte
endif
else
if v:version > 601
colorscheme torte
endif
endif
"當打開的文檔中含有多種語言的時候,單一使用某一種文件類型的高亮
"方式必然會很是難看,好比說一個介紹J2EE的文件,裏面必然有Java的代
"碼,也會存在不少XML的代碼,這個時候須要隨時切換不一樣的高亮方案
map <Leader>1 :set syntax=java<CR>
map <Leader>2 :set syntax=c<CR>
map <Leader>3 :set syntax=xhtml<CR>
map <Leader>4 :set syntax=python<CR>
map <Leader>5 :set ft=javascript<CR>
map <Leader>0 :syntax sync fromstart<CR>
"用 "cursorline" 高亮光標所在的屏幕行.用於方便定位光標.屏幕刷新
"會變慢.
"激活可視模式時,爲了容易看到選擇的文本,不使用此高亮.
if has("gui_running")
if exists("&cursorline")
set cursorline
endif
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Fileformat
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" "fileformats" / "ffs"
"給出換行符(<EOL>)的格式,開始編輯新緩衝區或者讀入文件到已有的緩
"衝區時,嘗試這些格式:
" - 若是爲空,老是使用 "fileformat"定義的格式.不自動設置該選項.
" - 若是設爲一個名字,老是爲打開的新緩衝區使用該格式,也爲該緩
" 衝區相應地設置 "fileformat".文件讀入已有的緩衝區時,使用
" "fileformats" 給出的名字,無論該緩衝區設定的 "fileformat"
" 是什麼.
" - 若是給出多於一個以逗號分隔的名字,讀入文件時會進行自動
" <EOL>檢測.
" 開始編輯文件時,這樣檢查 <EOL>:
" 1. 若是全部行都以 <CR><NL> 結尾,而 "fileformats" 包含
" "dos" 的話, "fileformat" 設爲 "dos".
" 2. 若是找到一個<NL>而 "fileformats" 包含 "unix"的話,
" "fileformat"設爲 "unix".注意 若是找到的 <NL> 沒有前
" 導 <CR>, "unix" 比 "dos" 優先.
" 3. 若是 "fileformats" 包含 "mac". "fileformat" 設爲 "mac".
" 這意味着 "mac" 只有在沒有給出 "unix" 或者在文件裏沒有
" 找到 <NL>,而且沒有給出 "dos" 或者沒有在文件裏找到
" <CR><NL> 時纔會使用.若是先選擇 "unix",但第一個 <CR> 出
" 如今第一個 <NL> 以前,而文件裏的 <CR> 比 <NL> 多的話,
" "fileformat" 也設爲 "mac".
" 4. 若是仍是不能設置 "fileformat",使用 "fileformats" 的第
" 一個名字.
" 讀入文件到已有的緩衝區時,完成相同的步驟,但如同 "fileformat"
" 已經爲該文件合適地設置過,不改變該選項.
"若是置位 "binary",不使用 "fileformats" 的值.
"
" 對於使用 DOS 類型的 <EOL> (<CR><NL>) 的系統來講,讀入待執行的腳本
"( ":source" ) 或者 vimrc 文件時,可能進行自動 <EOL> 的檢測:
" - 若是 "fileformats" 爲空,沒有自動檢測.使用 DOS 格式.
" - 若是 "fileformats" 設爲一到多個名字,進行自動檢測.它基於文
" 件中的第一個 <NL>: 若是在它以前有一個 <CR>,使用 DOS 格式,
" 否則,使用 Unix格式.
" 另見 |file-formats|.
"爲了後向兼容: 若是設置此選項爲空字符串或者單一格式 (沒有包含逗號),
"復位 "textauto",不然置位 "textauto".
"注意: 若是置位 "compatible",本選項被設爲 Vi 的缺省值.相反,若是復位
" "compatible",本選項被設爲 Vim 的缺省值.
set fileformats=unix,dos,mac
"給出當前緩衝區的 <EOL> 格式,用於從文件讀入緩衝區和把緩衝區寫回文件:
" "dos" <CR> <NL>
" "unix" <NL>
" "mac" <CR>
"
"MS-DOS,MS-Windows,OS/2 的缺省: "dos",
"Unix 缺省: "unix",
"Macintosh 缺省: "mac"
"
"若是使用 "dos",文件尾的 CTRL-Z 被忽略.
"見 "file-formats" 和 "file-read|"
"文件使用的字符編碼見 "fileencoding".
"若是設置 "binary",忽略 "fileformat" 的值.文件輸入/輸出如同它被設爲
" "unix" 那樣.
"文件開始編輯時,若是 'fileformats' 非空而 'binary' 關閉,本選項被
"自動設置.
"開始編輯文件後,若是設置該選項, "modified" 選項被置位,由於文件被認爲
"和當初寫入時已經不一樣.
"本選項在 "modifiable" 關閉時不能改變.
"
"爲了後向兼容: 若是本選項設爲 "dos",置位 "textmode",不然,復位之.
"
"這裏的意思是定義快速轉換文件格式的快捷鍵映射
nmap <leader>fd :set ff=dos<cr>
nmap <leader>fu :set ff=unix<cr>
nmap <leader>fm :set fm=unix<cr>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => VIM userinterface
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" "scrolloff" / "so" (缺省爲 0) 光標上下兩側最少保留的屏幕行數
"這使你工做時總有一些可見的上下文.咱們這裏設置的主要用處實際上是
"能夠用鼠標單擊屏幕的前N行或者後N行來直接進行屏幕的上下滾動.對
"於習慣了鼠標操做的用戶來講將會很是的方便.
"
"若是你設置此選項爲很大的值 (好比 999),光標所在的行將總定位在
"窗口的中間位置 (除非你很是靠近文件開始或者結束的地方,或者有長
"行迴繞).
"水平滾動見 'sidescrolloff'.
"注意: 若是置位 'compatible',該選項被設爲 0.
set so=0
" "wildmenu" / "wmnu" (缺省關閉) 命令行補全以加強模式運行
" {僅當編譯時加入 "+wildmenu" 特性纔有效}
" "wildmenu" 打開時,命令行補全以加強模式運行,按下 "wildchar"
" (一般是 <Tab>) 啓動補全.這時,在命令行的上方顯示可能的匹配,
" 而後高亮首個匹配 (若是有狀態行,覆蓋之).顯示前項/後項匹配的
" 熱鍵,如 <Tab> 或 CTRL-P/CTRL-N,移動高亮到合適的匹配上.
"
" 使用 "wildmode" 時,指定 "full" 會啓用 "wildmenu" 模式.
" "longest" 和 "list" 則不會啓動 "wildmenu" 模式.
"
" 若是多個匹配超過一行,在右側顯示 ">" 和/或在左側顯示 "<".需
" 要的話,滾動狀態行.
"按下不用於選擇補全項的鍵時,放棄 "wildmenu" 模式.
"
" "wildmenu" 激活時,下面的鍵有特殊含義:
" "<Left>" / "<Right>" 選擇前項/後項匹配 (相似於
" CTRL-P/CTRL-N)
" "<Down>" 文件名/菜單名補全中: 移進子目錄
" 和子菜單.
" "<CR>" 菜單補全中,若是光標在句號以後:
" 移進子菜單.
" "<Up>" 文件名/菜單名補全中: 上移到父目
" 錄或父菜單.
"
"這使得控制檯上有菜單可用 "console-menus"
"若是你喜歡 <Left> 和 <Right> 鍵移動光標而不是選擇不一樣的匹
"配,用:
" ":cnoremap <Left> <Space><BS><Left>"
" ":cnoremap <Right> <Space><BS><Right>"
"
" "WildMenu" 高亮用於顯示當前匹配 "hl-WildMenu".
set wildmenu
" "ruler" / "ru" (缺省關閉) 標尺
" {僅當編譯時加入 "+cmdline_info" 特性纔有效}
"顯示光標位置的行號和列號,逗號分隔.若是還有空間,在最右端顯
"示文本在文件中的相對位置:
" "Top" 首行可見
" "Bot" 末行可見
" "All" 首末兩行均可見
" "45%" 文件中的相對位置
"若是設置 "rulerformat",它決定標尺的內容.
"每一個窗口都有本身的標尺.若是窗口有狀態行,標尺在那裏顯示.否
"則,它顯示在屏幕的最後一行上.若是經過 "statusline" 給出狀
"態行 (亦即,非空),該選項優先於 "ruler" 和 "rulerformat".
"若是顯示的字符數不一樣於文本的字節數 (好比,TAB 或者多字節字
"符),同時顯示文本列號 (字節數) 和屏幕列號,以連字符分隔.
"空行顯示 "0-1"
"空緩衝區的行號也爲零: "0,0-1"
"若是置位 "paste" 選項,本選項被複位.
"若是你不想一直看到標尺但想知道如今在哪裏,使用 "g CTRL-G"
"注意: 若是置位 "compatible",該選項被複位
set ruler
" "cmdheight" / "ch" (缺省爲 1) 命令行使用的屏幕行數
"有助於避免 "hit-enter" 提示.
"此選項值保存在每一個標籤頁裏,從而每一個標籤頁可有不一樣的值.
set cmdheight=2
" ":nu" / ":number" 顯示行號
" ":[range]nu[mber] [count] [flags]"
"和 ":print" 相同,但每行以前顯示行號 (也參見 "highlight"
"和 "numberwidth" 選項).
set nu
" "lazyredraw" / "lz" (缺省關閉)
"若是置位本選項,執行宏,寄存器和其它不經過輸入的命令時屏
"幕不會重畫.另外,窗口標題的刷新也被推遲.要強迫刷新,使用
" ":redraw".
set lz
" "hidden" / "hid" (缺省關閉)
"若是關閉, "abandon" 放棄時卸載緩衝區.若是打開, "abandon"
"放棄時隱藏緩衝區.固然,若是緩衝區仍然在別的窗口裏顯示,
"它不會被隱藏.
"在緩衝區列表裏移動的命令有時會隱藏緩衝區,即便關閉 "hidden"
"選項也是如此,條件是: 緩衝區被修改過, "autowrite" 關閉
"或者不能寫入,而且使用 "!" 標誌位.另見 "windows.txt".
"
"若是隻想隱藏一個緩衝區,使用 "bufhidden" 選項.
" ":hide {command}" 爲單個命令關閉本選項 ":hide".
"警告: 對隱藏緩衝區的修改很容易忘記. ":q!" 或 ":qa!" 時
"三思然後行!
set hid
" "backspace" / "bs" (缺省爲 "")
"影響 <BS>,<Del>,CTRL-W 和 CTRL-U 在插入模式下的工做方
"式.它是逗號分隔的項目列表.每一個項目容許一種退格刪除的內
"容:
" 值 效果
" "indent" 容許在自動縮進上退格
" "eol" 容許在換行符上退格 (鏈接行)
" "start" 容許在插入開始的位置上退格;CTRL-W 和
" CTRL-U 到達插入開始的位置時停留一次.
"
"若是該值爲空,使用 Vi 兼容的退格方式.
"
"爲了和 5.4 及更早的版本後向兼容:
" 值 效果
" "0" 等同於 ":set backspace=" (Vi 兼容)
" "1" 等同於 ":set backspace=indent,eol"
" "2" 等同於 ":set backspace=indent,eol,start"
"
"若是你的 <BS> 或 <Del> 鍵不合你的指望,見 ":fixdel".
"注意: 若是置位 "compatible",該選項被設爲 "".
set backspace=eol,start,indent
" "whichwrap" / "ww" (Vim 缺省: "b,s",Vi 缺省: "")
"使指定的左右移動光標的鍵在行首或行尾能夠移到前一行
"或者後一行.鏈接這些字符,可讓全部指定的鍵都有此功能:
" 字符 鍵 模式
" "b" <BS> 普通和可視
" "s" <Space> 普通和可視
" "h" "h" 普通和可視 (不建議)
" "l" "l" 普通和可視 (不建議)
" "<" <Left> 普通和可視
" ">" <Right> 普通和可視
" "~" "~" 普通
" "[" <Left> 插入和替換
" "]" <Right> 插入和替換
"只容許光標鍵進行迴繞.
"若是移動鍵和刪除和改變操做符一塊兒使用時,<EOL> 也被看做一個
"字符.這使得光標跨過行尾時, "3h" 和 "3dh" 效果不一樣."這也適
"用於 "x" 和 "X",由於它們分別和 "dl" 以及 "dh" 相同.若是這
"麼用,你可能想用映射 ":map <BS> X"來使退格"鍵刪除光標以前的
"字符.
"若是包含 'l',位於行尾時若是在操做符以後使用它,不會移動到下
"一行.這樣 "dl", "cl", "yl" 等都能正常工做.
"注意: 若是置位 "compatible",本選項被設爲 Vi 的缺省值.相反,
"若是復位 "compatible",本選項被設爲 Vim 的缺省值.
set whichwrap+=<,>,h,l
" "incsearch" / "is" (缺省關閉)
"{僅當編譯時加入 "+extra_search" 特性纔有效}
"輸入搜索命令時,顯示目前輸入的模式的匹配位置.
"匹配的字符串被高亮.若是該模式不合法或者沒有匹配,不顯示任何
"東西.屏幕會常常刷新,因此只有對快速終端,這纔有意義.
"注意:會顯示匹配,但若是找不到匹配和按 <Esc> 的時候,光標會回
"到原來的位置.你仍然須要用 <Enter> 完成搜索命令纔會移動光標
"到匹配位置.
"編譯時加入 "+reltime" 特性時,Vim 只會搜索大概半秒鐘.若是模
"式太過複雜和/或有不少文本存在,不必定能找到匹配.這是爲了不
"Vim 在輸入模式的時候掛起.
"
"能夠用 "highlight" 的 "i" 標誌位設置高亮.另見: "hlsearch".
" "CTRL-L" 可用來在命令行上給當前匹配以後增長一個字符.
" "CTRL-R" / "CTRL-W" 可用來在當前匹配的尾部增長單詞,排除
" 已經輸入的部分.
"注意: 若是置位 "compatible",該選項被複位.
set incsearch
"某些字符在模式中是按本義出現的.它們匹配自身.然而,當前面有一
"個反斜槓時,這些字符具備特殊的含義.
"
"另一些字符即便沒有反斜槓也表明特殊的意思,它們反而須要一個
"反斜槓來匹配按本義出現的自身.
"
"一個字符是否按本義出現取決於 "magic" 選項以及下面將解釋的條
"目.
"使用 "\m" 會使得其後的模式的解釋方式就如同設定了 "magic" 選
"項同樣.並且將忽略 "magic" 選項的實際值.
"使用 "\M" 會使得其後的模式的解釋方式就如同設定了 "nomagic"
"選項同樣.
"
"使用 "\v" 會使得其後的模式中全部 '0'-'9','a'-'z','A'-'Z'
"和 '_' 以外的字符都看成特殊字符解釋.
"使用 "\V" 會使得其後的模式中只有反斜槓有特殊的意義.
"
"示例:
"在這以後: \v \m \M \V 匹配
" 'magic' 'nomagic'
" $ $ $ \$ 匹配行尾
" . . \. \. 匹配任何字符
" * * \* \* 前面匹配原的任意次重複
" () \(\) \(\) \(\) 組成爲單個匹配原
" | \| \| \| 分隔可選分支
" \a \a \a \a 字母字符
" \\ \\ \\ \\ 反斜槓 (按本義)
" \. \. . . 英文句號 (按本義)
" \{ { { { '{' (按本義)
" a a a a 'a' (按本義)
"
"{僅 Vim 支持 \m,\M,\v 和 \V}
"
"建議始終將 "magic"選項保持在缺省值 - "magic".這能夠避免移
"植性的麻煩.要使模式不受該選項值的影響,在模式前面加上 "\m"
"或 "\M".
set magic
"設置Vim靜音
" "errorbells" / "eb" (缺省關閉)
"錯誤信息響鈴 (鳴叫或屏幕閃爍).只有對錯誤信息有意義.不少沒有消息的錯誤
"也會使用該響鈴 (好比,普通模式裏按 <Esc>).
"
" "visualbell" / "vb" (缺省關閉)
"使用可視響鈴代替鳴叫.顯示可視響鈴的終端代碼由 "t_vb" 給出.若是既不想
"要響鈴也不想要閃爍,使用 ":set vb t_vb=".
"注意: GUI 啓動時,'t_vb' 復位爲缺省值.你可能想在 |gvimrc| 裏再次設置之.
"在 GUI 裏, "t_vb" 缺省爲 "<Esc>|f",反轉顯示 20 毫秒.若是你想使用別的
"時間,可設 "<Esc>|40f",其中 40 是毫秒計的時間.
"在 Amiga 上沒有用,你總會獲得屏幕閃爍.
set noerrorbells
set novisualbell
set t_vb=
" "showmatch" / "sm" (缺省關閉)
"插入括號時,短暫地跳轉到匹配的對應括號.只有在屏幕上能看到匹配時纔會進
"行跳轉.顯示匹配的時間用 "matchtime" 設置.
"若是沒有匹配會響鈴 (和匹配可否看到無關).置位 "paste" 時,復位本選項.
"若是 "cpoptions" 裏沒有 "m" 標誌位,接着輸入字符會當即把光標移動到它應
"該在的位置.
" "guicursor" 的 "sm" 域說明顯示匹配時,如何設置光標形狀和閃爍.
" "matchpairs" 選項可指定顯示匹配所用的字符.用 "rightleft" 和 "revins"
"查找反方向的匹配.
"移動時要高亮匹配,另見 matchparen 插件 "pi_paren.txt".
set showmatch
" "matchtime" / "mat" (缺省爲 5)
"若是置位 'showmatch',顯示配對括號的十分之一秒數.
"注意 這不是毫秒數.
set mat=4
" "hlsearch" / "hls" (缺省關閉)
"{僅當編譯時加入 "+extra_search" 特性纔有效}
"若是有上一個搜索模式,高亮它的全部匹配.使用高亮的類型能夠用 "highlight"
"選項的 "l" 位設置.缺省,使用 "Search" 高亮組.
"注意: 只有匹配的文本被高亮,位移此處不予考慮.
"另見: "incsearch" 和 ":match".
"
"若是你厭倦老是看到高亮匹配,用 ":nohlsearch" 或者 ":noh" 能夠暫時關閉.
"一旦使用搜索命令,高亮會從新出現.
"
" "redrawtime" 指定尋找匹配會花費的最大時間.
"若是搜索模式能夠匹配換行符,Vim 會試圖高亮全部的匹配文本.不過,這依賴
"於搜索從哪裏開始.若是是窗口的第一行,或者關閉摺疊之下的第一行,那麼從
"它們不會顯示的上一行開始的匹配不會在新顯示的行上繼續.
"注意: 若是置位 "compatible",該選項被複位.
set hlsearch
""""""""""""""""""""""""""""""
" => Statusline
""""""""""""""""""""""""""""""
"格式化狀態欄
if performance_mode
else
" "laststatus" / "ls" (缺省爲 1)
"本選項的值影響最後一個窗口什麼時候有狀態行:
" "0" 永不
" "1" 只有在有至少兩個窗口時
" "2" 老是
"若是你有多個窗口,有狀態行會使屏幕看起來好一些,但它會佔據一個屏幕行.
set laststatus=2
" "statusline" / "stl" (缺省爲空)
"{僅當編譯時加入 "+statusline" 特性纔有效}"
"若是非空,本選項決定狀態行的內容.另見 "status-line"
"
"此選項包含 printf 風格的 '%' 項目,中間能夠間雜普通文本.每一個狀態行項
"目有以下形式:
" "%-0{minwid}.{maxwid}{item}"
"除了 {item} 之外,每一個字段都是可選的.單個百分號能夠用 "%%" 給出.最多
"可給出 80 個項目.
"
"若是此選項以 "%!" 開始,它用做表達式.計算此表達式的結果用做選項值.例
"如:
" ":set statusline=%!MyStatusLine()"
"返回值能夠包含 %{} 項目,它還會被繼續計算下去.
"
"若是計算選項時有錯誤,會把它清空以防未來繼續出錯.不然屏幕更新會陷入循
"環.
"
"注意 若是設置本選項 (而且 "laststatus" 爲 2 的話), "ruler" 的惟一效
"果是控制 "CTRL-G" 的輸出.
"
" 域 含義
" "-" 左對齊項目.若是 minwid 大於項目的長度,缺省是右對齊.
" "0" 數值項目前面用零填補. '-' 更優先.
" "minwid" 項目的最小寬度,以 '-' 和 '0' 補空.該值不能超過 50.
" "maxwid" 項目的最大寬度.若是超過,在文本項目的左側截短,以'<'代
" 替.數值項目則往下移到 maxwid-2 個數位,而後跟 '>'number,
" 其中的 number 是丟失的數位,這很是相似於指數記法.
" "item" 單個字符的代碼,下面給出描述.
"
"下面是可能狀態行項目的描述.其中,"項目" 的第二個字符表明類型:
" "N" 表明數值型
" "S" 表明字符串型
" "F" 表明下面描述的標誌位
" "-" 不適用
"
"項目 含義
"f S 緩衝區的文件路徑,保持輸入的形式或相對於當前目錄.
"F S 緩衝區的文件完整路徑.
"t S 緩衝區的文件的文件名 (尾部).
"m F 修改標誌位,文本是 "[+]";若 "modifiable" 關閉則是 "[-]".
"M F 修改標誌位,文本是 ",+" 或 ",-".
"r F 只讀標誌位,文本是 "[RO]".
"R F 只讀標誌位,文本是 ",RO".
"h F 幫助緩衝區標誌位,文本是 "[help]".
"H F 幫助緩衝區標誌位,文本是 ",HLP".
"w F 預覽窗口標誌位,文本是 "[Preview]".
"W F 預覽窗口標誌位,文本是 ",PRV".
"y F 緩衝區的文件類型,如 "[vim]".見 "filetype".
"Y F 緩衝區的文件類型,如 ",VIM".見 "filetype'".
" {僅當編譯時加入 "+autocmd" 特性纔有效}
"k S "b:keymap_name" 的值或使用 ":lmap" 映射時的 "keymap":
" "<keymap>".
"n N 緩衝區號.
"b N 光標所在字節的值.
"B N 同上,以十六進制表示.
"o N 光標所在字節在文件中的字節偏移,第一個字節爲 1.
" 助記: 從文件開始的偏移 (Offset) (加上 1)
" {僅當編譯時加入 "+byte_offset" 特性纔有效}
"O N 同上,以十六進制表示.
"N N 打印機頁號.(只用於 'printheader" 選項.)
"l N 行號.
"L N 緩衝區裏的行數.
"c N 列號.
"v N 虛擬列號.
"V N 虛擬列號,表示爲 -{num}.若是等於 "c" 的值,不顯示.
"p N 行數計算在文件位置的百分比,如同 "CTRL-G" 給出的那樣.
"P S 顯示窗口在文件位置的百分比,相似於 "ruler" 描述的百分比.長度
" 老是爲 3.
"a S 參數列表狀態,就像缺省標題裏的那樣.({current} of {max})
" 若是參數列表裏的文件數爲零或一,空字符串.
"{ NF 計算 "%{" 和 "}" 之間的表達式,並返回其結果替代.注意 結束的
" "}" 以前沒有 "%".
"( - 項目組的開始.能夠用來爲某組項目設置寬度和對齊.後面某處必須有
" "%)".
") - 項目組的結束.不能指定寬度域.
"T N 用於 'tabline': 標籤頁 N 標籤的開始.最後一個標籤以後用 "%T".
" 鼠標點擊時用此信息.
"X N 用於 "tabline": 關閉標籤頁 N 標籤的開始.最後一個標籤以後用
" "%T".
" 例如: "%3Xclose%X",用 "%999X" 來表明 "關閉當前標籤頁" 那個符
" 號.鼠標點擊時用此信息.
"< - 若是行過長,在什麼地方截短.缺省是在開頭.不能指定寬度域.
"= - 左對齊和右對齊項目之間的分割點.不能指定寬度域.
"# - 設置高亮組.必須後面跟名字,而後又是 "#".這樣, "%#HLname#" 代
" 表高亮組 HLname.包括非當前窗口的狀態行都使用相同的高亮組.
"* - 設置高亮組爲 User{N},其中的 {N} 取自 minwid 域,好比 %1*.用
" %* 或者 %*0 能夠恢復 normal 高亮.User{N} 和 StatusLine 的區
" 別也會應用到非當前窗口的狀態行使用的 StatusLineNC 上.
" 數字 N 必須從 1 到 9.見 "hl-User1..9"
"
"顯示標誌位時,若是它緊跟在普通文本以後,Vim 刪除以前的前導逗號.這使得
"下面例子裏使用的標誌位顯示看起來很舒服.
"
"若是組內的全部項目都是空字符串 (好比,標誌位沒有設置) 而該組沒有設置
"minwid,整個組成爲空字符串.這使得下面這樣的組徹底從狀態行上消失,若是
"沒有標誌位被置位的話.
" ":set statusline=...%(\ [%M%R%H]%)..."
"要當心,每次顯示狀態行時都要計算此表達式.當前緩衝區和當前窗口會臨時設
"爲目前要顯示的狀態行所屬的窗口 (緩衝區),而表達式會使用此上下文計算.
"變量 "actual_curbuf" 被設爲實際的當前緩衝區的 "bufnr()" 號.
"
"可能在沙盤 "sandbox" 裏計算 "statusline" 選項.見 "sandbox-option".
"
"計算 "statusline" 時不容許修改文本或者跳到其它窗口 "textlock".
"
"若是狀態行在你但願時沒有更新 (如在設置完表達式裏使用的某變量以後),設
"置選項能夠強制進行更新而無須更改其值.例如:
" ":let &ro = &ro"
"
"若是結果全是數字,用做顯示時把它做爲數值處理.不然結果做爲文本,並應用
"上面描述的規則.
"
"當心表達式裏的錯誤.它們可能使 Vim 不可用!
"若是你被困住,按住 ':' 或 'Q' 來獲得提示,而後退出並用 "vim -u NONE"
"來編輯 .vimrc 或者別的什麼地方,以修正問題.
"
"示例:
"模擬 "ruler" 設置的標準狀態行
" ":set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P"
"相似,但加上光標所在字符的 ASCII 值 (相似於 "ga")
" ":set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P"
"顯示字節偏移和字節值,用紅色標記已修改標誌位.
" ":set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'"
" ":hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red"
"若是載入的是壓縮文件,顯示 ,GZ 標誌
" ":set statusline=...%r%{VarExists('b:gzflag','\ [GZ]')}%h..."
"並在 |:autocmd| 裏:
" ":let b:gzflag = 1"
"或:
" ":unlet b:gzflag"
"還要定義此函數:
" ":function VarExists(var, val)"
" ": if exists(a:var) | return a:val | else | return '' | endif"
" ":endfunction"
set statusline=
set statusline+=%2*%-3.3n%0*\ "緩衝器名
set statusline+=%f\ "文件名
set statusline+=%h%1*%m%r%w%0* "標記符
set statusline+=[
if v:version >= 600
set statusline+=%{strlen(&ft)?&ft:'none'}, "文件類型
set statusline+=%{&encoding}, "編碼類型
endif
set statusline+=%{&fileformat}] "文件格式
if filereadable(expand("$VIM/vimfiles/plugin/vimbuddy.vim"))
set statusline+=\ %{VimBuddy()} "添加VimBuddy插件
"這個插件會在狀態欄上加一個笑臉,鼻子會隨着光標移動而改變
endif
set statusline+=%= "左右對齊的分割點
set statusline+=%F\ "文件的完整路徑
set statusline+=%2*0x%-8B\ "16進製表示當前字符
set statusline+=%-14.(%l,%c%V%)\ %<%P "偏移量
" special statusbar for special windows
if has("autocmd")
au FileType qf
\ if &buftype == "quickfix" |
\ setlocal statusline=%2*%-3.3n%0* |
\ setlocal statusline+=\ \[Compiler\ Messages\] |
\ setlocal statusline+=%=%2*\ %<%P |
\ endif
fun! FixMiniBufExplorerTitle()
if "-MiniBufExplorer-" == bufname("%")
setlocal statusline=%2*%-3.3n%0*
setlocal statusline+=\[Buffers\]
setlocal statusline+=%=%2*\ %<%P
endif
endfun
if v:version>=600
au BufWinEnter *
\ let oldwinnr=winnr() |
\ windo call FixMiniBufExplorerTitle() |
\ exec oldwinnr . " wincmd w"
endif
endif
" "titlestring" (缺省爲 "") 設置窗口標題欄
"{僅當編譯時加入 "+title" 特性纔有效}
"若是此選項不爲空,用來設置窗口的標題.只有在 "title" 選項打開時纔會發
"生.
"只有終端支持設置窗口標題時纔可用 (目前有 Amiga 控制檯,Win32 控制檯,
"全部的 GUI 版本和帶有非空的 "t_ts" 選項的終端).
"若是 Vim 編譯時定義 HAVE_X11,在可能的狀況下恢復原來的標題 "X11".
"若是本選項包含 printf 風格的 "%" 項目,依照 "statusline" 使用的規則
"進行擴展.
"例如:
" ":auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p")"
" ":set title titlestring=%<%F%=%l/%L-%P titlelen=70"
" "titlelen" 的值用來在可用空間的中間或右側對齊項目.
"有的人喜歡文件名放在前面:
" ":set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:.:h\")})%)%(\ %a%)"
"注意 "%{ }" 的使用,以及用於獲得不含文件名的文件名路徑的表達式.只有在
"必要時, "%( %)" 構造纔會加入分隔的空格.
"注意: "titlestring" 使用特殊字符可能會使顯示引發混亂 (好比,若是它包含
"CR 或者 NL 字符的話).
"{僅當編譯時加入 "+statusline" 特性纔有效}
if has('title') && (has('gui_running') || &title)
set titlestring=
set titlestring+=%f\ "文件名
set titlestring+=%h%m%r%w "標記符
set titlestring+=\ -\ %{v:progname} "程序名
endif
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Moving around and tab
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Map space to /
map <space> /
"爲窗口跳轉從新定義鍵映射
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
"Tab configuration
map <leader>tn :tabnew %<cr>
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
if v:version>=700
set switchbuf=usetab
endif
if exists("&showtabline")
set stal=2
endif
"Moving fast to front, back and 2 sides ;)
imap <m-$> <esc>$a
imap <m-0> <esc>0i
imap <D-$> <esc>$a
imap <D-0> <esc>0i
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => General Autocommand
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Switch to current dir
map <leader>cd :cd %:p:h<cr>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Parenthesis/bracket expanding
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
vnoremap $1 <esc>`>a)<esc>`<i(<esc>
")
vnoremap $2 <esc>`>a]<esc>`<i[<esc>
vnoremap $3 <esc>`>a}<esc>`<i{<esc>
vnoremap $$ <esc>`>a"<esc>`<i"<esc>
vnoremap $q <esc>`>a'<esc>`<i'<esc>
vnoremap $w <esc>`>a"<esc>`<i"<esc>
"Map auto complete of (, ", ', [
"http://www.vim.org/tips/tip.php?tip_id=153
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => General Abbrev
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Comment for C like language
if has("autocmd")
au BufNewFile,BufRead *.js,*.htc,*.c,*.tmpl,*.css ino $c /**<cr> **/<esc>O
endif
"My information
ia xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr>
"iab xname Amir Salihefendic
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Editing mappings etc.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Remap VIM 0
map 0 ^
"Move a line of text using control
nmap <M-j> mz:m+<cr>`z
nmap <M-k> mz:m-2<cr>`z
vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z
if MySys() == "mac"
nmap <D-j> <M-j>
nmap <D-k> <M-k>
vmap <D-j> <M-j>
vmap <D-k> <M-k>
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Buffer realted
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Fast open a buffer by search for a name
"map <c-q> :sb
"Open a dummy buffer for paste
map <leader>q :e ~/buffer<cr>
"Restore cursor to file position in previous editing session
set viminfo='10,"100,:20,%,n~/.viminfo
"用 "rot13" 編碼整個文件
" "gg" 到文件首行首字符, "V" 進入Visual-Line模式, "G"到文件末行首字符,
"這樣就選中了整篇文章,而後 "g?" 就是用 "rot13" 編碼整個文件
"
"關於 "rot13":
" "ROT13" 是一種簡單的編碼,它把字母分紅先後兩組,每組13個,編碼和譯碼的
" 算法相同,僅僅交換字母的這兩個部分,即:
" [a..m] --> [n..z] 和 [n..z] --> [a..m]
" "ROT13" 用簡易的手段使得信件不能直接被識別和閱讀,也不會被搜索匹配程
" 序用一般的方法直接找到.常常用於 USENET 中發表一些攻擊性或使人不快的
" 言論或有簡單保密須要的文章.
" 因爲 "ROT13" 是自逆算法,因此,譯碼和編碼是同一個過程.
map <F9> ggVGg?
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Files and backup
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" "backup" / "bk" (缺省關閉) 覆蓋文件前建立一個備份.
"文件成功寫入後保留該備份.若是你不想保留備份文件,但但願寫入期間能有備
"份,復位該選項並置位 "writebackup" 選項(這是缺省行爲).若是你徹底不想
"要備份文件,同時復位兩個選項 (若是你的文件系統差很少滿了,這會有用).更
"多的解釋可見 "backup-table".
"若是匹配 "backupskip" 模式,不管如何都不會創建備份.
"若是設置 "patchmode",備份文件會換名成爲文件的舊版本.
"注意: 若是置位 "compatible",該選項被複位.
"
" "writebackup" / "wb" (有 "+writebackup" 特性時缺省打開,不然缺省關閉)
"覆蓋文件前創建備份.文件成功寫入後,除非 "backup" 選項也被打開,刪除該備
"份.若是你的文件系統幾乎已滿,復位此選項. "backup-table" 還有相關的解釋.
"若是 "backupskip" 模式匹配,不管如何都不會創建備份.
"注意: 若是置位 "compatible", 該選項被設爲缺省值.
set nobackup
set nowritebackup
" "swapfile" / "swf" (缺省打開)
"緩衝區使用交換文件.若是不想爲特定緩衝區使用交換文件,能夠復位本選項.
"例如,包含即便 root 也不該獲得的機密信息.要當心: 全部的文本都在內存:
" - 不要在大文件裏使用.
" - 沒法恢復!
"交換文件只有在 "updatecount" 不爲零而且置位 "swapfile" 時纔會存在.
"復位 "swapfile" 時,當即刪除當前緩衝區的交換文件.若是置位 "swapfile"
"而且 "updatecount" 非零,當即創建交換文件.
"另見 "swap-file"和 "swapsync".
"
"此選項能夠和 "bufhidden" 和 "buftype" 一塊兒使用,指定特殊類型的緩衝區.
"見 "special-buffers"
set noswapfile
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Folding
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" "foldenable" / "fen" (缺省打開)
"{僅當編譯時加入 "+folding" 特性纔有效}
"若是關閉,全部的摺疊都被打開.本選項用於在文本顯示的徹底打開摺疊和保留
"摺疊之間 (包括手動打開或關閉的摺疊) 快速切換."zi" 命令切換本選項.
"若是 "foldenable" 關閉, "foldcolumn" 會保持空白.
"創建新摺疊或者關閉摺疊的命令置位本選項.見 "folding".
"
"摺疊方法
"可用選項 "foldmethod" 來設定摺疊方法.
"設置選項 "foldmethod" 爲非 "manual" 的其它值時,全部的摺疊都會被刪除並
"且建立新的.若是設置成 "manual",將不去除已有的摺疊.能夠利用這一點來先
"自動定義摺疊,而後手工調整.
"
"有 6 種方法來選定摺疊:
" "manual" 手工定義摺疊
" "indent" 更多的縮進表示更高級別的摺疊
" "expr" 用表達式來定義摺疊
" "syntax" 用語法高亮來定義摺疊
" "diff" 對沒有更改的文本進行摺疊
" "marker" 對文中的標誌摺疊
"
"選取了摺疊方式後,咱們就能夠對某些代碼實施咱們須要的摺疊了,因爲我使用
" "indent" 稍微多一些,故以它的使用爲例:
"若是使用了 "indent"方式,vim會自動的對大括號的中間部分進行摺疊,咱們可
"以直接使用這些現成的摺疊成果.
"在可摺疊處(大括號中間):
" "zc" 摺疊
" "zC" 對所在範圍內全部嵌套的摺疊點進行摺疊
" "zo" 展開摺疊
" "zO" 對所在範圍內全部嵌套的摺疊點展開
" "[z" 到當前打開的摺疊的開始處
" "]z" 到當前打開的摺疊的末尾處
" "zj" 向下移動.到達下一個摺疊的開始處.關閉的摺疊也被計入.
" "zk" 向上移動到前一折疊的結束處.關閉的摺疊也被計入."
if exists("&foldenable")
set fen
set foldmethod=indent
endif
" "foldlevel" / "fdl" (缺省: 0) 設置代碼摺疊級別
"{僅當編譯時加入 "+folding" 特性纔有效}
"設置摺疊級別: 高於此級別的摺疊會被關閉.
"設置此選項爲零關閉全部的摺疊.更高的數字關閉更少的摺疊.
" "zm", "zM" 和 "zR" 等命令設置此選項.
"見 "fold-foldlevel".
if exists("&foldlevel")
set fdl=0
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Text option
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" "expandtab" / "et" (缺省關閉)
"插入模式裏: 插入 <Tab> 時使用合適數量的空格.若是 "autoindent" 打開,
" ">" 和 "<" 命令使用空格進行縮進. "expandtab" 打開時,要插入實際的制
"表,可用 CTRL-V<Tab>.另見 ":retab" 和 "ins-expandtab".
"注意: 若是置位 "compatible",該選項被複位.
set expandtab
" "shiftwidth" / "sw" (缺省爲 8)
"(自動) 縮進每一步使用的空白數目.用於 "cindent", ">>", "<<" 等.
set shiftwidth=4
" "softtabstop" / "sts" (缺省爲 0)
"執行編輯操做,如插入 <Tab> 或者使用 <BS> 時,把 <Tab> 算做空格的數目.
"感受上,你就像使用單個 <Tab> 同樣,而實際上使用的是空格和 <Tab> 的混
"合.這能夠用來維持 "ts" 的設置爲標準值 8 不變,但編輯時感受就像它被設
"爲 "sts" 那樣.不過, "x" 這樣的命令仍然會在實際的字符上操做.
"若是 "sts" 爲零,關閉此特性.
"
"若是置位 "paste" 選項, "softtabstop" 被設爲 0.
"另見 "ins-expandtab". 若是沒有置位 "expandtab",經過使用 <Tab>,使空
"格數目減到最小.
" "cpoptions" 裏的 "L" 標誌位改變製表在 "list" 置位時的使用方式.
"注意: 若是置位 "compatible",該選項被設爲 0.
set softtabstop=4
" "tabstop" / "ts" (缺省爲 8)
"文件裏的 <Tab> 表明的空格數.另見 ":retab" 命令和 "softtabstop" 選項.
"
"注意: 設置 "tabstop" 爲不一樣於 8 的值可能使你的文件在不少地方看起來不
"正確 (好比,打印時).
"
"Vim 裏有四個主要的使用製表的方法:
"1. 老是保持 "tabstop" 爲 8,設置 "softtabstop" 和 "shiftwidth" 爲 4
" (或 3 或任何你想要的) 而後用 "noexpandtab".這時,Vim 使用製表和空
" 格的混合,但輸入 <Tab> 或 <BS> 鍵就像每一個製表佔用 4 (或 3) 個字符
" 同樣.
"2. 設置 "tabstop" 和 "shiftwidth" 爲想要的任何值,而後用 "expandtab".
" 這樣,你老是插入空格.改變 "tabstop" 時毫不會影響排版.
"3. 設置 "tabstop" 和 "shiftwidth" 爲想要的任何值,而後用 "modeline",
" 再次編輯時就會從新設置這些值.這隻適用於老是使用 Vim 進行文件編輯
" 的狀況.
"4. 永遠把 "tabstop" 和 "shiftwidth" 設爲相同的值,並用 "noexpandtab".
" 這樣,就能夠 (只適用於行首的縮進) 使用任何別人的製表位設置.不過,
" 若是你這麼作,最好在第一個非空白字符以後想插入製表時以空格代替.否
" 則,改變 "tabstop" 時,註釋等的對齊會不正確.
set tabstop=4
" "smarttab" / "sta" (缺省關閉)
"若是打開,行首的 <Tab> 根據 "shiftwidth" 插入空白. "tabstop" 或
" "softtabstop" 用在別的地方.<BS> 刪除行首 "shiftwidth" 那麼多的空白.
" 若是關閉,<Tab> 老是根據 "tabstop" 或 "softtabstop" 決定插入空白的數\
" 目. "shiftwidth" 只用於文本左移或右移 "shift-left-right".
" 插入空白的具體方式 (製表仍是空格) 取決於 "expandtab" 選項.另見
" "ins-expandtab".若是沒有置位 "expandtab",經過使用 <Tab>,使空格數目
" 減到最小.
" 注意: 若是置位 "compatible",該選項被複位.
set smarttab
" "linebreak" / "lbr" (缺省關閉)
"{僅當編譯時加入 "+linebreak" 特性纔有效}
"若是打開,Vim 會在 "breakat" 裏的字符上,而不是在屏幕上能夠顯示的最後
"一個字符上回繞長行.和 "wrapmargin" 和 "textwidth" 不一樣,此處不會插入
"<EOL>,它隻影響文件的顯示方式,而不是其內容. "showbreak" 的值會出如今
"迴繞行的前面.
"
"若是 "wrap" 選項關閉或 "list" 打開,不使用本選項.
"注意 <EOL> (屏幕上的) 以後的 <Tab> 字符在多數狀況下.不會顯示正確數量
"的空格.
set lbr
""""""""""""""""""""""""""""""
" => Indent
""""""""""""""""""""""""""""""
" "autoindent" / "ai" (缺省關閉) 啓用自動縮進
"開啓新行時 (插入模式下輸入 <CR>,或者使用 "o" 或 "O" 命令),從當前行復
"制縮進距離.若是你在新行除了 <BS> 或 CTRL-D 之外不輸入任何東西,而後輸
"入 <Esc>,CTRL-O 或 <CR>,縮進又被刪除.移動光標到其它行也有一樣的效果,
"除非 "cpoptions" 裏包含 'I' 標誌位.
"若是打開自動縮進,排版 (用 "gq" 命令或者插入模式下到達了 "textwidth")
"使用第一行的縮進距離.
"打開 "smartindent" 或 "cindent" 時,縮進的修改方式有所不一樣.
"置位 "paste" 選項時, "autoindent" 選項被複位.
"{Vi 稍有不一樣: Vim 裏輸入 <Esc> 或 <CR> 刪除縮進後,上下移動把光標放在
"刪除的縮進以後;Vi 則把光標放在已刪除的縮進的某處}.
set autoindent
" "smartindent" / "si" (缺省關閉) 開啓新行的自動縮進
"{僅當編譯時加入 "+smartindent" 特性纔有效}
"開啓新行時使用智能自動縮進.適用於 C 這樣的程序,但或許也能用於其它語
"言. "cindent" 相似,它多數狀況下更好,但更嚴格,見 "C-indenting".若是
"打開 "cindent", 置位 "si" 沒有效果.
" "indentexpr" 是更高級的替代方案.
"一般,使用 "smartindent" 時也應該打開 "autoindent".
"
"在這些狀況下自動插入縮進:
" - "{" 結束的行後.
" - "cinwords" 中的某個關鍵字開始的行後.
" - "}" 開始的行前 (只有使用 "O" 命令纔會).
"在新行第一個輸入的字符若是是 "}",該行使用匹配的 "{" 相同的縮進.
"在新行第一個輸入的字符若是是 "#",該行的縮進被刪除, "#" 被放到第一列.
"下一行上,恢復原來縮進.若是你不想這麼作,使用下面的映射:
" ":inoremap # X^H#"
"其中的 ^H 用 CTRL-V CTRL-H 輸入.
"使用 ">>" 命令時,'#' 開始的行不右移.
"注意: 若是置位 "compatible",復位 "smartindent".若是置位 "paste",關
"閉這裏的智能縮進功能.
set si
" "cindent" / "cin" (缺省關閉) 打開自動 C 程序的縮進
"{僅當編譯時加入 "+cindent" 特性纔有效}
" "cinkeys" 說明如何設置插入模式下啓動從新縮進的熱鍵, "cinoptions"
"說明如何設置你喜歡的縮進風格.
"若是 "indentexpr" 非空,它否決 "cindent" 的設置.
"若是沒有打開 "lisp",而 "indentexpr" 和 "equalprg" 都爲空, "=" 操做
"符使用本算法縮進,而不調用外部程序.
"見 "C-indenting".
"
"若是你不喜歡 'cindent' 的工做方式,能夠試試 "smartindent" 選項或者
" "indentexpr".
" 若是置位 "paste",不使用本選項.
" 注意: 若是置位 "compatible",本選項被複位.
if has("cindent")
set cindent
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Spell checking
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map <leader>sn ]
map <leader>sp [
map <leader>sa zg
map <leader>s? z=
""""""""""""""""""""""""""""""
" => VIM
""""""""""""""""""""""""""""""
if has("autocmd") && v:version>600
au BufRead,BufNew *.vim map <buffer> <leader><space> :w!<cr>:source %<cr>
endif
""""""""""""""""""""""""""""""
" => HTML related
""""""""""""""""""""""""""""""
" HTML entities - used by xml edit plugin
let xml_use_xhtml = 1
"let xml_no_auto_nesting = 1
"To HTML
let html_use_css = 0
let html_number_lines = 0
let use_xhtml = 1
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => MISC
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Windows系統的換行符爲\r\n,而Linux/Unix系統則爲\n.所以,在Windows裏編輯
"過的文本文件到了Linux/Unix裏,每一行都會多出一個^M.
"命令中的 "^M" 是經過鍵入 <ctrl-v><enter> 或 <ctrl-v><ctrl-m> 生成的.
"能夠在用如下命令清除該字符:
"noremap <leader>m :%s/\r//g<CR>
"設置 'omnifunc' 選項。如:
if has("autocmd")
au Filetype java setlocal omnifunc=javacomplete#Complete
au Filetype html setlocal omnifunc=htmlcomplete#CompleteTags
au FileType css setlocal omnifunc=csscomplete#CompleteCSS
au FileType c setlocal omnifunc=ccomplete#Complete
au FileType php setlocal omnifunc=phpcomplete#CompletePHP
au FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
endif
"進行Tlist的設置
"TlistUpdate能夠更新tags
map <F3> :silent! Tlist<CR>
let Tlist_Ctags_Cmd="\"C:\\Program Files (x86)\\Vim\\vim74\\ctags.exe\""
let Tlist_Use_Right_Window=1
let Tlist_Show_One_File=0
let Tlist_File_Fold_Auto_Close=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Process_File_Always=1
let Tlist_Inc_Winwidth=0
let g:showfuncctagsbin = "\"C:\\Program Files (x86)\\Vim\\vim74\\ctags.exe\""
"進行NerdTree的設置
map <F4> :silent! NERDTree<CR>
" 按F8按鈕,在窗口的左側出現taglist的窗口,像vc的左側的workpace
"nnoremap <silent> <F8> :TlistToggle<CR><CR>
nnoremap <F10> :silent! TlistToggle<CR>
" :Tlist 調用TagList
let Tlist_Show_One_File=0 " 只顯示當前文件的tags
let Tlist_Exit_OnlyWindow=1 " 若是Taglist窗口是最後一個窗口則退出Vim
let Tlist_Use_Right_Window=1 " 在右側窗口中顯示
let Tlist_File_Fold_Auto_Close=1 " 自動摺疊
"Paste toggle - when pasting something in, don't indent.
"set pastetoggle=<F3>
"移除空行的縮進
map <F2> :%s/s*$//g<cr>:noh<cr>''
"Super paste
ino <C-v> <esc>:set paste<cr>mui<C-R>+<esc>mv'uV'v=:set nopaste<cr>
"To hex modle 轉化爲16進制方式顯示
let s:hexModle = "N"
function! ToHexModle()
if s:hexModle == "Y"
%!xxd -r
let s:hexModle = "N"
else
%!xxd
let s:hexModle = "Y"
endif
endfunction
map <leader>h :call ToHexModle()<CR>
"Fast reloading of the _vimrc 快速重load配置文件
map <silent> <leader>ss :source c:\Program Files (x86)\Vim\_vimrc<CR>
"Fast editing of the _vimrc 快速打開編譯配置文件
map <silent> <leader>ee :e c:\Program Files (x86)\Vim\_vimrc<CR>
"When _vimrc is edited, reload it
autocmd! bufwritepost _vimrc source c:\Program Files (x86)\Vim\_vimrc
"matchit 匹配%操做
:source C:\Program Files (x86)\Vim\vim74\macros\matchit.vim
"可視化的buffer操做
let g:bufExplorerDefaultHelp=1
let g:bufExplorerDetailedHelp=1
map <leader>be :BufExplorer <CR>
map <leader>bs :BufExplorerHorizontalSplit <CR>
map <leader>bv :BufExplorerVerticalSplit <CR>
"html.vim設置
:let g:html_indent_script1 = "inc"
:let g:html_indent_style1 = "inc"
:let g:html_indent_inctags="html,body,head,tbody,p"
"mapping 全能補全
"若是下拉菜單彈出,回車映射爲接受當前所選項目,不然,仍映射爲回車
"inoremap <expr> <CR> pumvisible()? "<C-Y>":"<CR>"
"若是下拉菜單彈出,CTRL-J映射爲在下拉菜單中向下翻頁,不然映射爲CTRL-X CTRL-O
"inoremap <expr> <C-J> pumvisible()? "<PageDown><C-N><C-P>":"<C-X><C-O>"
"若是下拉菜單彈出,CTRL-K映射爲在下拉菜單中向上翻頁,不然不變
"inoremap <expr> <C-K> pumvisible()? "<PageUp><C-P><C-N>":"<C-K>"
set completeopt=longest,menu,preview
"SuperTab插件設置
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
"vundle設置 這是一個用於自動下載、安裝、管理、清除vim插件的工具
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/vimfiles/bundle/vundle
let path='~/vimfiles/bundle'
call vundle#rc(path)
"let Vundle manage Vundle
"required! <br>
Bundle 'gmarik/vundle'
"original repos on github<br>Bundle 'mattn/zencoding-vim'
"vim-scritps repos
Bundle 'L9'
Bundle 'FuzzyFinder'
Bundle 'Mark'
Bundle 'bufexplorer.zip'
Bundle 'The-NERD-tree'
Bundle 'taglist.vim'
Bundle 'matrix.vim'
Bundle 'The-NERD-Commenter'
Bundle 'matchit.zip'
"Bundle 'AutoComplPop'
Bundle 'jsbeautify'
Bundle 'YankRing.vim'
Bundle 'autoclose'
"Bundle 'supertab'
Bundle 'csharp.vim'
Bundle 'sharp-Plugin-Added'
Bundle 'sharp-Indent'
Bundle 'python.vim'
Bundle 'Pydiction'
filetype plugin indent on "required!
"save session file
set sessionoptions-=curdir
set sessionoptions+=sesdir
noremap <F7> :mks! WorkingSession.vim<CR>:wviminfo Working.viminfo<CR>
noremap <F6> :source WorkingSession.vim<CR>:rviminfo Working.viminfo<CR>
"對搜索的設置
"map ft :call Search_Word()<CR>:cw<CR>
"function Search_Word()
"let w = expand("<cword>") " 在當前光標位置抓詞
"execute "vimgrep " w " **"
"endfunction
"
"for Pydiction
let g:pydiction_location = '~/vimfiles/bundle/Pydiction/complete-dict'javascript