小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

*05.1* 選項設(shè)置

 fym0121 2010-10-28

原文出處:http://vimcdoc./doc/usr_05.html#usr_05.txt
*05.1*
vimrc 文件 *vimrc-intro*

可能你已經(jīng)厭倦了輸入那些經(jīng)常用到的命令了。要讓 Vim 用你習慣的設(shè)置啟動,你可以 把這些設(shè)置寫到一個叫 vimrc 的文件中。Vim 會在啟動的時候執(zhí)行這個文件里的命令。 如果你已經(jīng)有 vimrc 文件 (例如,系統(tǒng)管理員已經(jīng)為你配置好了),可以這樣編輯它: :edit $MYVIMRC 如果你還沒有 vimrc 文件,請參考 |vimrc| 一節(jié)看看你應(yīng)該在什么地方創(chuàng)建該文件。另 外 ":version" 命令能告訴你 vim 要查找的 "用戶 vimrc 文件" 的名字。 對于 Unix 和 Macintosh 系統(tǒng),總是使用而且也推薦使用如下文件: ~/.vimrc 對于 MS-DOS 和 MS-Windows,可以使用下面其中一個文件: $HOME/_vimrc $VIM/_vimrc vimrc 文件可以包含任何冒號命令。最簡單的是設(shè)置選項命令。例如,如果你想 Vim 啟 動的時候始終開啟 'incsearch' 選項,可以在你的 vimrc 文件中加上: set incsearch 要使這個命令生效,你需要重啟動 Vim。后面我們還會學到如何不退出 Vim 就能讓它生 效。 這一章只解釋最基本的東西。想了解更多關(guān)于 Vim 腳本的知識,請參見 |usr_41.txt|。

*05.2* vimrc 示例解釋 *vimrc_example.vim*

在第一章中,我們曾經(jīng)介紹過怎樣用 vimrc 示例文件 (包括在 Vim 發(fā)布中) 使 Vim 以 非 vi 兼容模式啟動 (參見 |not-compatible|)。這個文件可以在這里找到: $VIMRUNTIME/vimrc_example.vim 我們在這一節(jié)中介紹這個文件中用到的一些命令。這會對你自行參數(shù)設(shè)置有一定的幫助。 但我們不會介紹所有的內(nèi)容。你需要用 ":help" 獲得更多的幫助。 set nocompatible 就像第一章所述,本手冊解釋在改進的方式下工作的 Vim,因此與 Vi 不完全兼容。要關(guān) 閉 'compatible' 選項,'nocompatible' 可以用于完成這個功能。 set backspace=indent,eol,start 這指明在插入模式下在哪里允許 <BS> 刪除光標前面的字符。逗號分隔的三個值分別指: 行首的空白字符,換行符和插入模式開始處之前的字符。 set autoindent 這使 Vim 在啟動一個新行的時候使用與前一行一樣的縮進。就是說,新行前面會有同樣 多的空白字符。啟動新行是指用 <Enter> 換行,在普通模式下執(zhí)行 "o" 命令等情況。 if has("vms") set nobackup else set backup endif 這告訴 Vim 當覆蓋一個文件的時候保留一個備份。但 VMS 系統(tǒng)除外,因為 VMS 系統(tǒng)會 自動產(chǎn)生備份文件。備份文件的名稱是在原來的文件名上加上 "~" 字符。參見 |07.4| set history=50 這個命令保存 50 個命令和 50 個查找模式的歷史。如果你想 Vim 記住多些或者少些命 令,可以把這個數(shù)改成其它值。 set ruler 總在 Vim 窗口的右下角顯示當前光標位置。 set showcmd 在 Vim 窗口右下角,標尺的右邊顯示未完成的命令。例如,當你輸入 "2f",Vim 在等 你輸入要查找的字符并且顯示 "2f"。當你再輸入 w,"2fw" 命令被執(zhí)行,"2f" 自動消 失。 +-------------------------------------------------+ |text in the Vim window | |~ | |~ | |-- VISUAL -- 2f 43,8 17% | +-------------------------------------------------+ ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ 'showmode' 'showcmd' 'ruler' set incsearch 在輸入部分查找模式時顯示相應(yīng)的匹配點。 map Q gq 這定義一個鍵映射。下一節(jié)會介紹更多的相關(guān)內(nèi)容。這將定義 "Q" 命令用來完成與 "gq" 操作符相同的功能,這是在 Vim 5.0 版前 "Q" 命令的作用。如果沒有設(shè)置這個映射, "Q" 會啟動 Ex 模式,這也許不是你想要的情況。 vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h"<CR> 這個映射在可視模式下拷貝已選擇的文本并在 C 文件中查找它。這是一個復雜映射。你 可以看到該映射可以被用來執(zhí)行相當復雜的操作。但其本質(zhì)依然是一個命令序列而已, 與你直接輸入沒有什么兩樣。 if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif 這激活語法高亮功能,但僅在有色彩的時候才有效。而 'hlsearch' 選項告訴 Vim 高亮 上次查找模式匹配的地方。"if" 命令在設(shè)置選項的時候非常有用,它使設(shè)置命令在某些 條件下才執(zhí)行。更多的內(nèi)容請參見 |usr_41.txt|。 *vimrc-filetype* filetype plugin indent on 這啟動三個非常靈巧的機制: 1. 文件類型探測 當你開始編輯一個文件的時候,Vim 會試圖確定這個文件的類型。當編輯 "main.c" 時,Vim 會根據(jù)擴展名 ".c" 認為這是一個 C 源文件。當你編輯一個文件前面是 "#!/bin/sh" 的文件時,Vim 會把它認作 "sh" 文件。文件類型探測用于語法高亮 和以下另兩項。請參見 |filetypes|。 2. 使用文件類型相關(guān)的插件 不同的文件需要不同的選項支持。例如,當你編輯一個 "c" 文件,用 'cindent' 選 項來自動縮進就非常有用。這些文件類型相關(guān)的選項在 Vim 中是通過文件類型插件 來實現(xiàn)的。你也可以加入自己的插件,請參見 |write-filetype-plugin|。 3. 使用縮進文件 當編輯程序的時候,行縮進通??梢员蛔詣記Q定。Vim 用不同的策略處理不同的文件 類型。請參見 |:filetype-indent-on| 和 'indentexpr'。 autocmd FileType text setlocal textwidth=78 這使 Vim 在一行長于 78 個字符的時候自動換行,但僅對純文本文件中有效。這里包括 兩個部分。其中 "autocmd FileType text" 定義個自動命令,表示當文件類型被設(shè)置為 "text" 的時候,后面的命令自動執(zhí)行。"setlocal textwidth=78" 設(shè)置 'textwidth' 選 項為 78,但僅對本文件有效。 *restore-cursor* autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif 這是又一個自動命令。這回它設(shè)置為在讀入任何文件之后自動執(zhí)行。后面那堆復雜的東西 檢查 '" 標記是否已被定義,如果是,則跳轉(zhuǎn)到該標記。行首的反斜杠用于把所有語句連 接成一行。這可以避免一行寫得太長, 請參見 |line-continuation|。這只在 Vim 腳本文件中有效,在命令行中無效。

*05.3* 簡單鍵盤映射

映射可以使你把一系列 Vim 命令綁定為一個單獨的鍵。假設(shè)你要用一個大括號將一個特 定的單詞括起來。例如,把 "amount" 變成 "{amount}"。用 ":map" 命令,就可以讓 F5 來完成這個工作。命令如下: :map <F5> i{<Esc>ea}<Esc> 備注: 在輸入這個命令時,<F5> 要用四個字符表示。相似地,輸入 <Esc> 不是直接按 <Esc> 鍵,而是輸入五個字符。讀這份手冊時請注意這些區(qū)別! 讓我們來分解一下這個命令: <F5> F5 功能鍵。這是命令的觸發(fā)器。當這個鍵被按下時,相應(yīng)的命令即被 執(zhí)行。 i{<Esc> 插入 { 字符。<Esc> 鍵用于退出插入模式。 e 移動到詞尾。 a}<Esc> 插入 } 到單詞尾。 執(zhí)行 ":map" 命令后,要在單詞兩端加上 {},只需要移到單詞的第一個字符上并按 F5。 在這個例子中,觸發(fā)器是單獨一個鍵;它還可以是任何字符串。但若你使用一個已經(jīng)存在 的 Vim 命令,該命令將不再有效。最好避免出現(xiàn)這種情況。 一個可用于映射的鍵是反斜杠。因為你很可能想定義多個映射,那就加上另一個字 符。你可以映射 "\p" 為在單詞兩端加圓括號,而映射 "\c" 為加花括號,例如: :map \p i(<Esc>ea)<Esc> :map \c i{<Esc>ea}<Esc> 你需要在敲入 \ 后,立即敲入 p,以便 Vim 知道它們組成一個命令。 ":map" 命令 (無參數(shù)) 列出當前已定義的映射,至少會包括普通模式下的那些。更多的 內(nèi)容參見 |40.1|。

*05.4* 添加插件 *add-plugin* *plugin*

Vim 可以通過插件增強功能。插件其實是一個當 Vim 啟動的時候能被自動執(zhí)行的腳本。 簡單地把插件放到你 Vim 的 plugin 目錄中就可以使它生效。 {僅當 Vim 編譯時加入 |+eval| 特性時才有效} Vim 中有兩種插件: 全局插件:用于所有類型的文件 文件類型插件:僅用于特定類型的文件 我們將先討論全局插件,然后涉及文件類型插件 |add-filetype-plugin|。 全 局 插 件 *standard-plugin* 當你啟動 Vim,它會自動加載一些插件。你不需要為此做任何事。這些插件增加一些很多 人想用的,但由 Vim 腳本實現(xiàn)而非編譯進 Vim 中的功能。你可以在幫助索引中找到這些 插件:|standard-plugin-list|。還可以參照 |load-plugin|。 *add-global-plugin* 你可以加入一個全局插件使得某些功能在你每次使用 Vim 時都被開啟。添加一個全局插 件只要兩步: 1. 獲得一個插件的拷貝 2. 把它塞進合適的目錄 獲 得 一 個 全 局 插 件 在什么地方可以找到插件? - 有一些與 Vim 一起發(fā)布,你可以在 $VIMRUNTIME/macros 目錄或其子目錄中找到。 - 從網(wǎng)上下載,http://www. 收集了很多。 - 在 Vim 的郵件列表中找:|maillist|。 - 自己寫一個,參見 |write-plugin|。 某些插件被打包在 vimball 中,參見 |vimball|。 某些插件可以自動更新,參見 |getscript|。 使 用 一 個 全 局 插 件 首先閱讀插件包括的說明文字,看看有沒有什么特殊的限制。然后拷貝到你的插件目錄: 系統(tǒng) 插件目錄 Unix ~/.vim/plugin/ PC 和 OS/2 $HOME/vimfiles/plugin 或 $VIM/vimfiles/plugin Amiga s:vimfiles/plugin Macintosh $VIM:vimfiles:plugin RISC-OS Choices:vimfiles.plugin 以 Unix 系統(tǒng)為例 (假設(shè)你還沒有 plugin 目錄): mkdir ~/.vim mkdir ~/.vim/plugin cp /usr/local/share/vim/vim60/macros/justify.vim ~/.vim/plugin 就是這樣了!現(xiàn)在你可以用這個插件定義的命令調(diào)整文字了。 除了把這些插件直接放進 plugin/ 目錄以外,還可以更好地組織一下,把它們放進 plugin 的單獨的子目錄中。例如,可以考慮把所有 Perl 插件放置在 "~/.vim/plugin/perl/*.vim" 文件類型插件 *add-filetype-plugin* *ftplugins* Vim 的發(fā)布中包括一套針對不同文件類型的插件。你可以用如下命令啟用它們: :filetype plugin on 這樣就行了! 參閱 |vimrc-filetype|。 如果你缺少某種文件類型的插件,或者你找到一個更好的,你可以自行添加一個。這也只 需兩步: 1. 獲取一個插件的拷貝 2. 塞到合適的目錄。 取 得 文 件 類 型 插 件 你可以在找全局插件的相同地方找到文件類型插件。注意一下插件有沒有注明文件類型, 據(jù)此你可以知道這個插件是全局的還是文件類型相關(guān)的。在 $VIMRUNTIME/macros 中的是 全局插件;文件類型插件在 $VIMRUNTIME/ftplugin 中。 使 用 文 件 類 型 插 件 *ftplugin-name* 你可以通過把插件文件放到合適的目錄中來增加一個插件。目錄的名字與前面提過的全局 插件的位置一樣,但最后一級目錄是 "ftplugin"。假設(shè)你找到一個用于 "stuff" 文件類 型的插件,而且你的系統(tǒng)是 Unix。那么,你可以把這個文件用如下命令移入 ftplugin 目錄: mv thefile ~/.vim/ftplugin/stuff.vim 如果這個文件已經(jīng)存在,你可以檢查一下兩個插件有沒有沖突。如果沒有,你可以用另一 個名字: mv thefile ~/.vim/ftplugin/stuff_too.vim 這里,下劃線用來分開文件類型和其它部分 (這些部分可以由任意字符組成)。但如果你 用 "otherstuff.vim" 就不行了。那是用于 "otherstuff" 類型的文件的。 在 MS-DOS 上不能使用長文件名。如果你增加第二個插件,而這個插件超過 6 個字符, 你就沒法用了。你可以通過使用另一層目錄來解決這個問題: mkdir $VIM/vimfiles/ftplugin/fortran copy thefile $VIM/vimfiles/ftplugin/fortran/too.vim 總的來說,一個文件類型相關(guān)的插件的名稱是: ftplugin/<filetype>.vim ftplugin/<filetype>_<name>.vim ftplugin/<filetype>/<name>.vim 這里 "<name>" 可以是任何你喜歡的名字。例如,在 Unix 上,"stuff" 文件類型的插件 可以是: ~/.vim/ftplugin/stuff.vim ~/.vim/ftplugin/stuff_def.vim ~/.vim/ftplugin/stuff/header.vim 這里, <filetype> 部分是相應(yīng)文件類型的名稱。只有對應(yīng)文件類型的文件才會用這個插 件內(nèi)的設(shè)置。插件的 <name> 部分則不重要,你可以對同一個文件類型使用多個插件。 注意 插件必須以 ".vim" 結(jié)尾。 請進一步閱讀: |filetype-plugins| 文件類型插件的文檔和有關(guān)如何避免映射引起的問題。 |load-plugins| 全局插件的啟動時間。 |ftplugin-overrule| 控制全局文件類型插件的選項。 |write-plugin| 如何寫插件。 |plugin-details| 關(guān)于如何使用插件的信息或者當你的插件不工作的時候如何處 理。 |new-filetype| 如果檢測新文件類型。

*05.5* 添加幫助 *add-local-help* *matchit-install*

如果幸運的話,你安裝的插件還會包括幫助文件。我們這里解釋如何安裝這個幫助文件, 以便你能方便地獲得新插件的幫助。 我們以 "matchit.vim" 插件為例 (包括在 Vim 中)。這個插件使 "%" 命令可以在兩個對 應(yīng)的 HTML 標記間,Vim 腳本的 if/else/endif 間等匹配點間跳轉(zhuǎn)。這非常有用,但它 不向后兼容 (這也是為什么默認的情況下它不會被激活)。 這個插件有一個文檔:"matchit.txt"。我們先來把該插件拷貝到合適的位置。這 次,我們在 Vim 內(nèi)完成這個工作,以便利用 $VIMRUNTIME。(如果某些目錄已經(jīng)存在你可 以省略一些 "mkdir" 命令) :!mkdir ~/.vim :!mkdir ~/.vim/plugin :!cp $VIMRUNTIME/macros/matchit.vim ~/.vim/plugin "cp" 命令是基于 Unix 的,MS-DOS 上你可以用 "copy"。 現(xiàn)在在某個 'runtimepath' 目錄中建立一個 doc 目錄。 :!mkdir ~/.vim/doc 再把幫助文件拷貝進去: :!cp $VIMRUNTIME/macros/matchit.txt ~/.vim/doc 現(xiàn)在開始玩技巧了,怎樣使 Vim 允許你跳轉(zhuǎn)到新的主題上?用 |:helptags| 命令產(chǎn)生一 個本地的 tags 文件即可: :helptags ~/.vim/doc 現(xiàn)在,你可以用這個命令 :help g% 來獲得 "g%" 的幫助了。在使用如下命令的時候,可以看見一個新的條目: :help local-additions 本地幫助的標題行被自動的加入到該節(jié)了。在那里你可以看到 Vim 添加了那些本地的幫 助文件。你還可以從這里跳轉(zhuǎn)到新的幫助中。 要寫一個本地幫助文件,請參考 |write-local-help|。

*05.6* 選項窗口

如果要找一個選項,你可以在這里尋找?guī)椭簗options|。另一個方法是用如下命令: :options 這會打開一個新窗口,其中給出一個選項的列表,并對每個選項提供一行解釋。這些選項 根據(jù)種類分組。將光標移到一個主題上然后按 <Enter> 就可以跳轉(zhuǎn)到那里。再按一下 <Enter> 或者 CTRL-O 就可以跳回來。 你可以通過這個窗口改變一個選項的值。例如,移到 "displaying text" 主題。然后把 光標下移到這一行: set wrap nowrap 當你在上面鍵入回車,這行會改變?yōu)椋? set nowrap wrap 現(xiàn)在,這個選項被關(guān)閉了。 這行的上方是對這個選項的簡要描述。將光標向上移動一行,然后按 <Enter>,你可以跳 轉(zhuǎn)到 'wrap' 的完整幫助,再用 CTRL-O 可以跳回來。 對于那些值為數(shù)值或者字符串的選項,你可以編輯它的值,然后按 <Enter> 來啟用該 值。例如,把光標移動到下面這行: set so=0 用 $ 移到行尾,再用 "r5" 命令修改為五,然后按 <Enter> 使修改生效?,F(xiàn)在如果你移 動一下光標,你會發(fā)現(xiàn)在你的光標移到窗口邊界前,你的文字就開始滾動了。這就是選項 'scrolloff' 完成的功能:它指定在距離邊界多遠的地方開始滾動文字。

*05.7* 常用選項

Vim 中有很多選項。大部分你很少用得上。我們在這個介紹一些常用的。別忘了你可以通 過 ":help" 命令獲得更多的幫助。方法是在選項命令前后加上單引號,例如: :help 'wrap' 如果你搞亂了一個選項,你可以通過在選項后加上一個 & 號把它恢復到默認值。例如: :set iskeyword& 禁 止 回 繞 行 Vim 通常會對長行自動回繞,以便你可以看見所有的文字。但有時最好還是能讓文字在一 行中顯示完。這樣,你需要左右移動才能看到一整行。以下命令可以關(guān)閉行的回繞: :set nowrap 當你移動到那些不能顯示的文字上,Vim 會自動向右滾動讓你看到后面的文字,要一次滾 動十個字符,這樣就行了: :set sidescroll=10 這個命令不改變文件中的文本,只改變顯示方式。 移 動 命 令 換 行 很多命令只能在一行中移動。你可以通過 'whichwrap' 選項改變它。如下命令把這個選 項設(shè)為默認值: :set whichwrap=b,s 這樣,當光標處于行首時用 <BS> 鍵可以回到前一行的結(jié)尾;當處于行尾時用 <Space> 鍵可以移動到下一行的行首。 要允許 <Left><Right> 鍵也能這樣,可以用這個命令: set whichwrap=b,s,<,> 這只在普通模式中有效,要在插入模式中使 <Left><Right> 也有效,可以: :set whichwrap=b,s,<,>,[,] 還有一些可以用的標志位,參見 'whichwrap'。 顯 示 TAB 鍵 文件中有 TAB 鍵的時候,你是看不見的。要把它顯示出來: :set list 現(xiàn)在 TAB 鍵顯示為 ^I,而 $顯示在每行的結(jié)尾,以便你能找到可能會被你忽略的空白字 符在哪里。 這樣做的一個缺點是在有很多 TAB 的時候看起來很丑。如果你使用一個有顏色的終 端,或者使用 GUI 模式,Vim 可以用高亮顯示空格和 TAB。使用 'listchars' 選項: :set listchars=tab:>-,trail:- 現(xiàn)在,TAB 會被顯示成 ">---" ("-" 的個數(shù)不定) 而行尾多余的空白字符顯示成 "-"。 看起來好多了,是吧? 關(guān) 鍵 字 'iskeyword' 選項指定哪些字母可以出現(xiàn)在一個單詞中: :set iskeyword iskeyword=@,48-57,_,192-255 "@" 表示所有字母。"48-57" 表示 ASCII 字符 48-57 ,即數(shù)字 0 到 9。"192-255" 是 可顯示的拉丁字符。 有時你希望橫線也是關(guān)鍵字,以便 "w" 命令會把 "upper-case" 看作是一個單詞。 你可以這樣做: :set iskeyword+=- :set iskeyword iskeyword=@,48-57,_,192-255,- 看一下新的值,你會發(fā)現(xiàn) Vim 自動在 "-" 前面加了一個逗號。 要從中去掉一個字符,用 "-="。例如要排除下劃線: :set iskeyword-=_ :set iskeyword iskeyword=@,48-57,192-255,- 這回,逗號又自動被刪除了。 顯 示 消 息 的 空 間 當 Vim 啟動的時候,在屏幕底部有一行被用于顯示消息。當消息很長的時候,多余的部 分會被截斷。這樣你只能看到一部分?;蛘呶淖肿詣訚L動,你要按 <Enter> 來繼續(xù)。你 可以給 'cmdheight' 選項賦一個值,用來設(shè)定顯示消息所用的行數(shù)。例如: :set cmdheight=3 這樣意味著你用于編輯文字的空間少了,所以這實際上是一種折衷。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多