首頁»Linux»Vim 配置入門

Vim 配置入門

來源:阮一峰 發布時間:2019-06-18 閱讀次數:

  Vim 是最重要的編輯器之一,主要有下面幾個優點。

  • 可以不使用鼠標,完全用鍵盤操作。
  • 系統資源占用小,打開大文件毫無壓力。
  • 鍵盤命令變成肌肉記憶以后,操作速度極快。
  • 服務器默認都安裝 Vi 或 Vim。

  Vim 的配置不太容易,它有自己的語法,許許多多的命令。我總是記不清楚,所以就整理了下面這篇文章,列出主要配置項的含義。

 一、基礎知識

  Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,對所有用戶生效。用戶個人的配置在~/.vimrc。

  如果只對單次編輯啟用某個配置項,可以在命令模式下,先輸入一個冒號,再輸入配置。舉例來說,set number這個配置可以寫在.vimrc里面,也可以在命令模式輸入。


:set number

  配置項一般都有"打開"和"關閉"兩個設置。"關閉"就是在"打開"前面加上前綴"no"。


" 打開
set number

" 關閉
set nonumber

  上面代碼中,雙引號開始的行表示注釋。

  查詢某個配置項是打開還是關閉,可以在命令模式下,輸入該配置,并在后面加上問號。


:set number?

  上面的命令會返回number或者nonumber。

  如果想查看幫助,可以使用help命令。


:help number

 二、基本配置

 ?。?)


set nocompatible

  不與 Vi 兼容(采用 Vim 自己的操作命令)。

 ?。?)


syntax on

  打開語法高亮。自動識別代碼,使用多種顏色顯示。

 ?。?)


set showmode

  在底部顯示,當前處于命令模式還是插入模式。

 ?。?)


set showcmd

  命令模式下,在底部顯示,當前鍵入的指令。比如,鍵入的指令是2y3d,那么底部就會顯示2y3,當鍵入d的時候,操作完成,顯示消失。

 ?。?)


set mouse=a

  支持使用鼠標。

 ?。?)


set encoding=utf-8  

  使用 utf-8 編碼。

 ?。?)

 
set t_Co=256

  啟用256色。

 ?。?)


filetype indent on

  開啟文件類型檢查,并且載入與該類型對應的縮進規則。比如,如果編輯的是.py文件,Vim 就是會找 Python 的縮進規則~/.vim/indent/python.vim。

 三、縮進

 ?。?)


set autoindent

  按下回車鍵后,下一行的縮進會自動跟上一行的縮進保持一致。

 ?。?0)


set tabstop=2

  按下 Tab 鍵時,Vim 顯示的空格數。

 ?。?1)


set shiftwidth=4

  在文本上按下>>(增加一級縮進)、<<(取消一級縮進)或者==(取消全部縮進)時,每一級的字符數。

 ?。?2)


set expandtab

  由于 Tab 鍵在不同的編輯器縮進不一致,該設置自動將 Tab 轉為空格。

 ?。?3)


set softtabstop=2

  Tab 轉為多少個空格。

 四、外觀

 ?。?4)


set number

  顯示行號

 ?。?5)


set relativenumber

  顯示光標所在的當前行的行號,其他行都為相對于該行的相對行號。

 ?。?6)


set cursorline

  光標所在的當前行高亮。

 ?。?7)


set textwidth=80

  設置行寬,即一行顯示多少個字符。

 ?。?8)


set wrap

  自動折行,即太長的行分成幾行顯示。


set nowrap

  關閉自動折行

 ?。?9)


set linebreak

  只有遇到指定的符號(比如空格、連詞號和其他標點符號),才發生折行。也就是說,不會在單詞內部折行。

 ?。?0)


set wrapmargin=2

  指定折行處與編輯窗口的右邊緣之間空出的字符數。

 ?。?1)


set scrolloff=5

  垂直滾動時,光標距離頂部/底部的位置(單位:行)。

 ?。?2)


set sidescrolloff=15

  水平滾動時,光標距離行首或行尾的位置(單位:字符)。該配置在不折行時比較有用。

 ?。?3)


set laststatus=2

  是否顯示狀態欄。0 表示不顯示,1 表示只在多窗口時顯示,2 表示顯示。

 ?。?4)


set  ruler

  在狀態欄顯示光標的當前位置(位于哪一行哪一列)。

 五、搜索

 ?。?5)


set showmatch

  光標遇到圓括號、方括號、大括號時,自動高亮對應的另一個圓括號、方括號和大括號。

 ?。?6)


set hlsearch

  搜索時,高亮顯示匹配結果。

 ?。?7)


set incsearch

  輸入搜索模式時,每輸入一個字符,就自動跳到第一個匹配的結果。

 ?。?8)


set ignorecase

  搜索時忽略大小寫。

 ?。?9)


set smartcase

  如果同時打開了ignorecase,那么對于只有一個大寫字母的搜索詞,將大小寫敏感;其他情況都是大小寫不敏感。比如,搜索Test時,將不匹配test;搜索test時,將匹配Test。

 六、編輯

 ?。?0)


set spell spelllang=en_us

  打開英語單詞的拼寫檢查。

 ?。?1)


set nobackup

  不創建備份文件。默認情況下,文件保存時,會額外創建一個備份文件,它的文件名是在原文件名的末尾,再添加一個波浪號(?)。

 ?。?2)


set noswapfile

  不創建交換文件。交換文件主要用于系統崩潰時恢復文件,文件名的開頭是.、結尾是.swp。

 ?。?3)


set undofile

  保留撤銷歷史。

  Vim 會在編輯時保存操作歷史,用來供用戶撤消更改。默認情況下,操作記錄只在本次編輯時有效,一旦編輯結束、文件關閉,操作歷史就消失了。

  打開這個設置,可以在文件關閉后,操作記錄保留在一個文件里面,繼續存在。這意味著,重新打開一個文件,可以撤銷上一次編輯時的操作。撤消文件是跟原文件保存在一起的隱藏文件,文件名以.un~開頭。

 ?。?4)


set backupdir=~/.vim/.backup//  
set directory=~/.vim/.swp//
set undodir=~/.vim/.undo// 

  設置備份文件、交換文件、操作歷史文件的保存位置。

  結尾的//表示生成的文件名帶有絕對路徑,路徑中用%替換目錄分隔符,這樣可以防止文件重名。

 ?。?5)


set autochdir

  自動切換工作目錄。這主要用在一個 Vim 會話之中打開多個文件的情況,默認的工作目錄是打開的第一個文件的目錄。該配置可以將工作目錄自動切換到,正在編輯的文件的目錄。

 ?。?6)


set noerrorbells

  出錯時,不要發出響聲。

 ?。?7)


set visualbell

  出錯時,發出視覺提示,通常是屏幕閃爍。

 ?。?8)


set history=1000

  Vim 需要記住多少次歷史操作。

 ?。?9)


set autoread

  打開文件監視。如果在編輯過程中文件發生外部改變(比如被別的編輯器編輯了),就會發出提示。

 ?。?0)


set listchars=tab:»■,trail:■
set list

  如果行尾有多余的空格(包括 Tab 鍵),該配置將讓這些空格顯示成可見的小方塊。

 ?。?1)


set wildmenu
set wildmode=longest:list,full

  命令模式下,底部操作指令按下 Tab 鍵自動補全。第一次按下 Tab,會顯示所有匹配的操作指令的清單;第二次按下 Tab,會依次選擇各個指令。

 七、參考鏈接

QQ群:WEB開發者官方群(515171538),驗證消息:10000
微信群:加小編微信 849023636 邀請您加入,驗證消息:10000
提示:更多精彩內容關注微信公眾號:全棧開發者中心(fsder-com)
Vim
網友評論(共0條評論) 正在載入評論......
理智評論文明上網,拒絕惡意謾罵 發表評論 / 共0條評論
登錄會員中心
大发国际网址 龙胜| 石景山区| 临湘市| 梅河口市| 财经| 左贡县| 南岸区| 南京市| 措美县| 自贡市| 万安县| 万盛区| 天水市| 全州县| 林口县| 定远县| 宜黄县| 丰宁| 泗阳县| 襄樊市| 淄博市| 搜索| 万州区| 桓台县| 竹山县| 潼关县| 靖州| 和田县| 新化县| 高密市| 汉阴县| 贵德县| 永顺县| 灵武市| 英德市| 洛浦县| 铁岭市| 瑞安市| 建宁县| 宝山区| 龙岩市| 汤阴县| 兖州市| 洛隆县| 克拉玛依市| 甘孜县| 敦煌市| 章丘市| 洛川县| 彰化市| 扎赉特旗| 枣庄市| 弥渡县| 阳江市| 沛县| 旬阳县| 绥德县| 明溪县| 二连浩特市| 新巴尔虎左旗| 莎车县| 申扎县| 光山县| 白城市| 湄潭县| 松滋市| 阜宁县| 新干县| 湖北省| 专栏| 平谷区| 明溪县| 堆龙德庆县| 巴东县| 凤山县| 新平| 武川县| 荆州市| 德格县| 奉贤区| 常宁市| 宝山区| 乌兰察布市| 玛纳斯县| 衡东县| 株洲市| 达孜县| 道孚县| 毕节市| 会理县| 驻马店市| 株洲市| 三台县| 上杭县| 彝良县| 澎湖县| 集安市| 辽源市| 郎溪县| 玉门市| 手机| 湖南省| 商南县| 云龙县| 西畴县| 肇东市| 江津市| 博乐市| 都安| 溧阳市| 涟源市| 乡城县| 秭归县| 周宁县| 新干县| 刚察县| 明星| 晋城| 含山县| 京山县| 贵港市| 安国市| 天水市| 弥渡县| 琼海市| 淮阳县| 韶山市| 和龙市| 吴江市| 顺义区| 东安县| 东乌珠穆沁旗| 白银市| 穆棱市| 陆川县| 达州市| 罗江县|