VIM配置入門


原文鏈接: http://www.ruanyifeng.com/blog/2018/09/vimrc.html 個人增加了兩張收集來的圖.👍

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

二、基本配置

(1)

set nocompatible

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

(2)

syntax on

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

(3)

set showmode

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

(4)

set showcmd

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

(5)

set mouse=a

支持使用鼠標。

(6)

set encoding=utf-8

使用 utf-8 編碼。

(7)

set t_Co=256

啟用256色。

(8)

filetype indent on

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

三、縮進

(9)

set autoindent

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

(10)

set tabstop=2

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

(11)

set shiftwidth=4

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

(12)

set expandtab

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

(13)

set softtabstop=2

Tab 轉為多少個空格。

四、外觀

(14)

set number

顯示行號

(15)

set relativenumber

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

(16)

set cursorline

光標所在的當前行高亮。

(17)

set textwidth=80

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

(18)

set wrap

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

set nowrap

關閉自動折行

(19)

set linebreak

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

(20)

set wrapmargin=2

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

(21)

set scrolloff=5

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

(22)

set sidescrolloff=15

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

(23)

set laststatus=2

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

(24)

set  ruler

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

五、搜索

(25)

set showmatch

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

(26)

set hlsearch

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

(27)

set incsearch

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

(28)

set ignorecase

搜索時忽略大小寫。

(29)

set smartcase

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

六、編輯

(30)

set spell spelllang=en_us

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

(31)

set nobackup

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

(32)

set noswapfile

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

(33)

set undofile

保留撤銷歷史。

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

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

(34)

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

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

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

(35)

set autochdir

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

(36)

set noerrorbells

出錯時,不要發出響聲。

(37)

set visualbell

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

(38)

set history=1000

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

(39)

set autoread

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

(40)

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

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

(41)

set wildmenu
set wildmode=longest:list,full

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

七、參考鏈接

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM