VIM維基
- 安裝 Vim
- Vim 的三種模式
- 基本操作 移動寫入儲存等等
- 标準操作 複制粘貼撤銷等等
- 進階操作 分屏合并查找等等
- 查找
- s 查找替換
- r 合并檔案
- 分屏
- 分屏模式下主要的快捷鍵
- 運作外部指令
- 配置 Vim
- 參數選項功能
- 以指令模式激活選項參數
- 在配置檔案中配置選項參數
安裝 Vim
sudo apt install Vim
or
sudo apt-get install Vim
Vim 有内嵌一個教程小程式
Vimtutor
, 在指令行輸入 Vimtutor 就可以出現這個教程頁面了。 英語不好的我, 則是看看網上的教程。
Vim 的三種模式
- 互動模式 : Interactif Mode 。 這是 Vim 的預設模式, 在打開 Vim 之後就是這個模式,這個模式中不能編輯文本, 最好也别亂按, 否則會導緻觸發其他相應的操作。
- 插入模式 : Insert Mode 。 進入這個模式就是文本編輯的頁面, 會出現光标; 進入這個模式有集中方式, 最常用的就是按字母
( i 是insert的首字母, 插入的意思 )。 退出這個模式 按下i
即可退出。Esc
- 指令模式 : Command Mode 。 這個模式下, 可以運作一些指令, 例如 退出、儲存等等; 也可以用這個模式來激活一些 Vim 的配置 ( 例如文法高亮、顯示行号等等 ); 甚至還可以發一些指令給終端指令行, 例如 ls, locate, cp等等。進入這個模式, 首先要處于互動模式下, 然後按下冒号 ( 在一般的鍵盤上是要按下 Shift 鍵 + 分号鍵 )。 輸入指令後, 再按回車, 就會執行此指令。 執行指令後, 就又回到互動模式了。
總有一天你會明白 ” 一入 Vim 深似海, 從此滑鼠是路人 “。
基本操作 ( 移動、寫入、儲存等等 )
打開 Vim :
vim
打開某個檔案名 : 即
vim 檔案名
- i : 插入文本
注意看左下角有一個, 說明我們處于 Insert Mode ( 插入模式下 )。
INSERT
退出回到 互動模式
Esc
- 移動 : h、j、k、l ( 上下左右移動 )
在 Vim 互動模式下, 可以 在文本中移動光标, 如下表:
按鍵 | 作用 |
---|---|
h | 向左移動一個字元 |
j | 向下移動一個字元 |
k | 向上移動一個字元 |
l | 向右移動一個字元 |
- 0 和 $ : 移動到行首和行末
在互動式模式下:
為了将光标定位到一行的開始位置,我們隻需要按下數字鍵 0 即可。當然了,鍵盤上的 “Home” 鍵也有相同效果。但是我們還是建議用 0 鍵,畢竟不用隔那麼老遠去按 Home 鍵。
為了将光标定位到一行的末尾,我們隻需要按下美元符号鍵
即可。 當然了,鍵盤上的$
鍵也有相同效果。但是我們還是建議用 $ 鍵, 畢竟不用隔那麼老遠去按 End 鍵。End
- w :一個單詞一個單詞移動
-
:儲存檔案。 ( 後面可跟自己命名的檔案 )。:w
-
: 退出。 也可以強行退出: q
。:q!
-
: 儲存後退出。:wq
标準操作 ( 複制、粘貼、撤銷等等 )
在互動模式下做大量的操作, 如果你不是互動模式, 按 ESC 。
- 删除字元 :
在互動式模式下, 将光标定位到你所想删除的字元上, 按下字母
x
( 小寫 ), 你會發現這個字元會被删除。 效果和 Backspace 一樣。
也可以一次性删除多個字元, 從管标開始往後删除 n 個字元, 就先按下鍵盤的數字, 然後再按下
x
。
- d : 删除單詞、行等等
雖然是删除, 但是删除的記憶體會被緩存到記憶體, 相當于 ” 剪切 “。
dd
:删除行, ( 連續按兩次來删除光标所在的那一行 ), 也可以和數字配合使用删除多行。
dw
: 删除一個單詞, 将光标置于一個單詞的首字母處, 然後按下 dw ,如果光标放在某個字元上,則隻會删除目前字元到下一個空格前的是以字元。 也可以删除多個單詞 ( 如 3dw / d3w )。
d0
和
d$
:删除行首或行末 : 按下 d 鍵, 再加 0 鍵, 就會删除從光标處到行首的所有字元。按下 d 鍵, 再加 $ 鍵, 就會删除從光标處到行末的所有字元。
- yy :
複制到記憶體中按兩次y會把光标所在行複制到記憶體中。和dd類似,dd用于“剪切”光标所在行到記憶體中,而yy是“複制”。yw則會複制一個單詞,y$則是複制從光标所在處到行末的所有字元,y0是複制從光标所在處到行首的所有字元。
- p : 粘貼如果你之前用dd來剪切過一行,或者用yy來複制過一行,或者是同類操作(比如y$, dw, y0, d0,等等),那麼可以使用p鍵來粘貼這些内容。
注意 : 用 p 來粘貼時, 内容會被粘貼到光标之後去。
如果你用 yy 複制了一行, 再用 p 來粘貼, 那麼需要在 p 前面加上次數。例如 7p , 表示粘貼 7 次。
- r : 替換一個字元
在互動式模式下, 把光标放置到想要替換的字元上, 按下
r
鍵, 接着輸入想要替換的字元。 例如 rs 替換目前的字元為 s 。 如果使用大寫 R , 那麼就是切換到替換模式了, 左下角會顯示 “REPLACE”。
- u : 撤銷操作
如果要撤銷最近的修改, 隻需要按下 u 鍵, 同理, 如果要撤銷最近四次修改, 可以按下 4 , 再按下 u 。
Vim 中數字 + 指令是很通用的方式。
為了取消撤銷,也就是重做之前的修改, 隻需要按下
Ctrl + r
鍵。
- g : 跳到指定行
一個檔案中都有一個行号,類似于一個坐标。在 Vim 中, 我們可以看到在右下方有這樣的字樣:
7,1
7 表示 7 行, 1 表示 1列。
要跳到最後一行: 按下大寫的 G ( 大寫的 G ,shift + g )
要跳到第一行: 按下 gg ( 兩次 g 鍵 )
跳轉到指定行: 行号 + G 或者 行号 + gg
進階操作 ( 分屏、合并、查找等等 )
例如 : 合并、查找、替換、分屏等等
這些操作在互動模式下進行。
/ : 查找
如果你按下
/
( 斜杠 ), 那麼就進入了查找模式。
這時, 你會在左下方看到一個斜杠符号, 而且光标會轉到斜杠右邊, 意思是讓你輸入要查找的字元串。
此時輸入你要查找的字元串, 然後按下回車, 光标就會轉到文中下一個查找到的比對處; 若果字元串不存在, 那麼會顯示 ” Pattern not found “ 。
如果要查找下一個比對項,隻需要按n鍵。如果要反向查找,需要按 N( 大寫的 n,Shift + n )。
用斜杠來進行的查找是從目前光标處開始。 如果你要從檔案最開始處查找,那麼将斜杠
/
替換為問号
?
即可,其他功能是一樣的。
: s 查找替換
要實作字元串替換, 有好幾種方法。
最簡單的是:
:s/舊字元串/新字元串
。 ( 但隻會替換光标所在行比對的第一個人字元串 )
列出所有實作查找替換的方法:
方法 | 效果 |
---|---|
:s/舊字元串/新字元串 | 替換光标所在行的第一個比對的字元串 |
:s/舊字元串/新字元串/g | 替換光标所在行的所有比對的字元串 |
:#,#s/舊字元串/新字元串/g | 替換檔案中第 # 行到第 # 行所有比對的字元串 |
:%s/舊字元串/新字元串/g | 替換檔案中所有比對的字元串 ( 應該是最常用的 ) |
: r :合并檔案
可以用
:r
在光标處插入一個檔案的内容。例如:
:r 另一個檔案名
可以使用 Tab 鍵來補全另一個檔案的路徑。
分屏
Vim 可以分屏, 可以同時打開好幾個檔案。
分屏之後, 螢幕的每一塊被成為 viewprot 。”視口”
-
橫向分屏:sp
:sp 就可以把螢幕分成兩塊, ( 預設是打開的同一檔案 ) :sp + 檔案名可以打開另一個檔案,( 檔案路徑名可以 Tab 補全 )
-
垂直分屏 ( 同上 ):vsp
分屏模式下主要的快捷鍵
分屏模式下實用的快捷鍵:
操作 | 效果 |
---|---|
再按 | 從一個 viewport 移動到另一個 viewport |
然後按 | 移動光标到左邊的 viewport |
然後按 | 移動光标到下邊的 viewport |
然後按 | 移動光标到上邊的 viewport |
然後按 | 移動光标到右邊的 viewport |
然後按 | 擴大目前的 viewport |
然後按 | 縮小目前的 viewport |
然後按 | 重新均勻配置設定各個 viewport 的占比 |
然後按 | 調換各個 viewport 的位置 。用 R 的話是反向調換 |
然後按 或者按 | 關閉目前 viewport |
或者 | 隻保留目前所在的 viewport , 關閉其他的 viewport |
:! 運作外部指令
在 Vim 中可以運作一些終端指令。 隻要先輸入
:!
, 然後接指令名稱。
例如:
:!ls
, 就是 Vim 打開的檔案所在目錄運作 ls 指令, 就會列出目前目錄包含的檔案。
配置 Vim
可以采用兩種方式來配置 Vim :
- 激活或不激活選項參數: 參考選項參數完整文檔 ( 科學上網 ) 不懂的上網搜尋
- 安裝插件。 參考 Vim 官方插件頁
參數選項功能
在Vim被啟動後,我們可以運作一些指令來激活一些選項參數。但是這些選項參數的配置在你退出Vim時會被忘記。如果你希望你所做的配置是永久性的,那麼需要在你的家目錄建立一個Vim的配置檔案:
.vimrc
以指令模式激活選項參數
激活選項參數:
:set 選項名
不激活選項參數:
:set no選項名
選項參數需要被指定值:
:set 選項名=數值
了解選項參數狀态,輸入:
:set 選項名?
在配置檔案中配置選項參數
目前在我們的使用者家目錄還沒有
.vimrc
( 注意前面有一點
.
,表示是隐藏檔案 ), 這個是 Vim 的配置檔案。但是在 /etc/vim 目錄中有一個檔案叫做
vimrc
( 注意前面沒有一點 . )。
把 /etc/vim 目錄下的
vimrc
拷貝到家目錄中, 重命名為
.vimrc
如下:
然後用 vim 打開:
- syntax : 配置文法高量
首先激活 文法高亮 這個選項參數, Vim 支援很多種語言程式設計語言類型的檔案, 例如 C、C++、Python、Java、Ruby、Bash、Perl等等。要激活文法高亮隻需要保證:
注意修改了 .vimrc
這個配置檔案後, 需要儲存此檔案, 退出,在重新運作。
- background : 背景色
設定背景色: 開啟黑色背景色選項
set background=dark
- number : 顯示行号
Vim 中, 要在檔案中顯示行号 ( 行号在每一行的左邊 ), 需要:
- showcmd : 顯示目前指令
Vim 中輸入指令時, 有時 ( 在互動模式下 ) 不能看到自己輸入的指令。那麼想要看到自己輸入的指令需要設定 :
set showcmd
- ignorecase : 在查找忽略大小寫
Vim 預設情況下是區分大小寫的, 例如 搜尋 “mark” 的時候, 就搜不到 “MARK”、”Mark”等等,那麼在搜尋時忽略大小寫需要這樣設定 :
set ignorecase
-
mouse : 滑鼠支援
激活滑鼠選項,即使在終端也可以使用滑鼠 隻要 :
網上也有很多高手配置的
.vimrc
, 可供下載下傳, 然後隻需稍加修改就可以成為自己的 Vim 配置了。