?? usr_05.cnx
字號:
*usr_05.txt* Vim version 6.3 最近更新:2004年6月 VIM用戶手冊 - by Bram Moolenaar (譯者:Nek_in http://vimcdoc.sf.net) 選項設置Vim 可以按你的需要進行設置。本章告訴你怎樣使 Vim 用你指定的選項啟動,怎樣增加插件以增強 Vim 的功能;以及怎樣進行宏定義。|05.1| vimrc 文件|05.2| vimrc 示例解釋|05.3| 簡單鍵盤映射|05.4| 增加插件|05.5| 增加幫助|05.6| 選項窗口|05.7| 常用選項 下一章:|usr_06.txt| 使用語法加亮 前一章:|usr_04.txt| 做小改動 目錄:|usr_toc.txt|=============================================================================*05.1* vimrc 文件 *vimrc-intro*可能你已經厭倦了輸入那些經常用到的命令了。要讓 Vim 用你習慣的設置啟動,你可以把這些設置寫到一個叫 vimrc 的文件中。Vim 會在啟動的時候讀入這個文件。如果你不知道你的 vimrc 在什么地方,可以使用如下命令:> :scriptnames命令列出的文件列表開頭的幾個中應該有一個叫 ".vimrc" 或者 "_vimrc" 的文件在你的home 目錄中。 如果你還沒有 vimrc 文件,請參考 |vimrc| 一節看看你應該在什么地方創建 vimrc文件。另外 ":version" 命令能告訴你 vim 在什么地方找 "用戶的 vimrc 文件"。對于 Unix 系統,肯定是如下文件:> ~/.vimrc對于 MS-DOS 和 MS-Windows,常常使用下面其中一個文件:> $HOME/_vimrc $VIM/_vimrcvimrc 文件可以包含任何冒號命令。最簡單的是設置選項命令。例如,如果你想 Vim 啟動的時候始終開啟 'incsearch' 選項,可以在你的 vimrc 文件中加上:> set incsearch要使這個命令生效,你需要重啟動 Vim。后面我們還會學到如何不退出 Vim 就能讓它生效。這一章只解釋最基本的東西。想了解更多關于 Vim 腳本的知識,請參見|usr_41.txt|。=============================================================================*05.2* vimrc 示例解釋 *vimrc_example.vim*在第一章中,我們曾經介紹過怎樣用 vimrc 示例文件(包括在 Vim 發布中)使 Vim 以非vi 兼容模式啟動(參見|not-compatible|)。這個文件可以在這里找到: $VIMRUNTIME/vimrc_example.vim ~我們在這一節中介紹這個文件中用到的一些命令。這會對你自行參數設置有一定的幫助。但我們不會介紹所有的內容。你需要用 ":help" 獲得更多的幫助。> set nocompatible就像第一章所述,這些手冊解釋了 Vim 工作在改進的方式下,因此與 Vi 不完全兼容。要關閉 'compatible' 選項設,'nocompatible' 可以用于完成這個功能。> set backspace=indent,eol,start這指明在插入模式下 <BS> 如何刪除光標前面的字符。逗號分隔的三個值分別指:行首的空白字符,分行符和插入模式開始處之前的字符。> set autoindent這使 Vim 在啟動一個新行的時候使用與前一行一樣的縮進。就是說,新行前面會有同樣多的空白字符。啟動新行是指用 <Enter> 換行,在普通模式下執行 "o" 命令等情況。> if has("vms") set nobackup else set backup endif這告訴 Vim 當覆蓋一個文件的時候保留一個備份。但 VMS 系統除外,因為 VMS 系統會自動產生備份文件。備份文件的名稱是在原來的文件名上加上 "~" 字符。參見 |07.4| > set history=50這個命令保存 50 個命令和 50 個查找模式的歷史。如果你想 Vim 記住多些或者少些命令,可以把這個數改成其它值。> set ruler總在 Vim 窗口的右下角顯示當前光標位置。> set showcmd在 Vim 窗口右下角,標尺的右邊顯示未完成的命令。例如,當你輸入 "2f",Vim 在等你輸入要查找的字符并且顯示 "2f"。當你再輸入w,"2fw" 命令被執行,"2f" 自動消失。 +-------------------------------------------------+ |text in the Vim window | |~ | |~ | |-- VISUAL -- 2f 43,8 17% | +-------------------------------------------------+ ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ 'showmode' 'showcmd' 'ruler'> set incsearch在查找模式輸入完前顯示匹配點。> map Q gq這定義一個鍵映射。下一節會介紹更多的相關內容。這將定義 "Q" 命令用來完成與 "gq"操作符相同的功能,這是在 Vim 5.0 版前 "Q" 命令的作用。如果沒有設置這個映射,"Q" 會啟動 Ex 模式,這也許不是你想要的情況。> vnoremap p <Esc>:let current_reg = @"<CR>gvs<C-R>=current_reg<CR><Esc>這是一個復雜映射。這里不介紹它是怎么工作的。它的作用是使 "p" 命令在可視模式下用拷貝的字符覆蓋被選中的字符。你可以看到映射可以被用來執行相當復雜的操作。但其本質依然是一個命令序列而已,與你直接輸入沒有什么兩樣。> if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif這激活語法加亮功能,但僅在顏色功能有效的時候才有效。而 'hlsearch' 選項告訴Vim 加亮上次查找模式匹配的地方。"if" 命令在設置選項的時候非常有用,它使設置命令在某些條件下才執行。更多的內容請參見|usr_41.txt|。 *vimrc-filetype* > filetype plugin indent on這啟動三個非常靈巧的機制:1. 文件類型探測 當你開始編輯一個文件的時候,Vim 會試圖確定這個文件的類型。當編輯 "main.c" 時,Vim 會根據擴展名 ".c" 認為這是一個 C 源文件。當你編輯一個文件前面是 "#!/bin/sh" 的文件時,Vim 會把它認作 "sh" 文件。文件類型探測用于語法加亮 和以下另兩項。請參見|filetypes|。2. 使用文件類型相關的插件 不同的文件需要不同的選項支持。例如,當你編輯一個 "c" 文件,用 'cindent' 選項來自動縮進就非常有用。這些文件類型相關的選項在 Vim 中是通過文件類型 插件來實現的。你也可以加入自己的插件,請參見 |write-filetype-plugin|。3. 使用縮進文件 當編輯程序的時候,行縮進通常可以被自動決定。Vim 用不同的策略處理不同的 文件類型。請參見 |:filetype-indent-on| 和 'indentexpr'。> autocmd FileType text setlocal textwidth=78這使 Vim 在一行長于 78 個字符的時候自動換行,但僅對純文本文件中有效。這里包括兩個部分。其中 "autocmd FileType text" 定義個自動命令,表示當文件類型被設置為"text" 的時候,后面的命令自動執行。"setlocal textwidth=78" 設置 'textwidth'選項為78,但僅對本文件有效。> autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif這是又一個自動命令。這回它設置為在讀入任何文件之后自動執行。后面那堆復雜的東西檢查 '" 標記是否已被定義,如果是,則跳轉到該標記。行首的反斜杠用于把所有語句連接成一行。這可以避免一行寫得太長,請參見 |line-continuation|。這只在 Vim腳本文件中有效,在命令行中無效。=============================================================================*05.3* 簡單鍵盤映射映射可以使你把一系列 Vim 命令綁定為一個單鍵。假設你要用一個大括號將一個特定的單詞括起來。例如,把 "amount" 變成 "{amount}"。用 ":map" 命令,就可以讓 F5 來完成這個工作。命令如下:> :map <F5> i{<Esc>ea}<Esc>< Note: 在輸入這個命令時,<F5> 要用四個字符表示。相似地,輸入 <Esc> 不是直接按 <Esc> 鍵,而是輸入五個字符。在讀這份手冊要注意這些區別!讓我們來分解一下這個命令: <F5> F5 功能鍵。這是命令的觸發器。當這個鍵被按下時,相應的命令即被 執行。 i{<Esc> 插入 { 字符。<Esc> 鍵用于退出插入模式。 e 移動到詞尾。 a}<Esc> 插入 } 到單詞尾。執行 ":map" 命令后,要在單詞兩端加上 {},只需要移到單詞上的第一個字符并按 F5。在這個例子中,觸發器是一個單鍵;它還可以是任何字符串。但若你使用一個已經存在的 Vim 命令,該命令將不在有效。所以你最好避免出現這種情況。 一個可用于映射的鍵是反斜杠。因為你很可能想定義多個映射,那就加上另一個字符。你可以映射 "\p" 為在單詞兩端加園括號,而映射 "\c" 為加花括號,例如:> :map \p i(<Esc>ea)<Esc> :map \c i{<Esc>ea}<Esc>你需要在敲入\后,立即敲入p,以便 Vim 知道它們組成一個命令。":map" 命令(無參數)列出當前已定義的映射,至少會包括普通模式下的那些。更多的內容參見 |40.1|。==============================================================================*05.4* 增加插件 *add-plugin* *plugin*Vim 可以通過插件增強功能。插件其實是一個當 Vim 啟動的時候能被自動執行的腳本。簡單地把插件放到你 Vim 的 plugin 目錄中就可以使它生效。(這個功能在 |+eval| 被編譯進 Vim 中時才有效)Vim 中有兩種插件: 全局插件:用于所有類型的文件 文件類型插件:僅用于特定類型的文件我們將先討論全局插件,然后涉及文件類型插件 |add-filetype-plugin|。全 局 插 件 *standard-plugin*當你啟動 Vim,它會自動加載一些插件。你不需要為此做任何事。這些插件增加一些很多人想用的,但由 Vim 腳本實現而非編譯進 Vim 中的功能。你可以在幫助索引中找到這些插件:|standard-plugin-list|。還可以參照 |load-plugin|。 *add-global-plugin*你可以加入一個全局插件使得某些功能在你每次使用 Vim 時都被開啟。添加一個全局插件只要兩步:1. 獲得一個插件的拷貝2. 把它塞進合適的目錄獲 得 一 個 全 局 插 件在什么地方可以找到插件?- 有一些與 Vim 一起發布,你可以在 $VIMRUNTIME/macros 目錄或其子目錄中找到。- 從網上下載,查一下這個地方:http://vim.sf.net。- 在 Vim 的郵件列表中找:|maillist|。- 自己寫一個,參見|write-plugin|。使 用 一 個 全 局 插 件首先閱讀插件包括的說明文字,看看有沒有什么特殊的限制。然后拷貝到你的插件目錄: 系統 插件目錄 ~
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -