vim教程
vim的使用教程(常用命令)
vim 的使用主要分為vim的配置和四大模式的掌握
一、vim的配置
vimrc的存放位置:
系統 vimrc 檔案: “HOME/.vimrc”
使用者 exrc 檔案: “VIM/gvimrc”
使用者 gvimrc 檔案: “VIMRUNTIME/menu.vim”
$VIM 預設值: “/usr/share/vim”
在使用者家目錄(/home/使用者名稱)下面有一個.vimrc
/etc下面也有一個vimrc
一般只改使用者家目錄下面的 .vimrc 此配置檔案只針對使用者有效
更改後需使用su - 使用者名稱 來使配置生效(例如 su - zhang3)
vimrc的配置選項很多,具體的可以通過
二、vim的四大模式
1、命令模式(command mode)
vim開啟後預設就是命令模式,此時的輸入都被當作命令來解析
命令:
- yy: 複製游標所在的一行
- yny:複製游標處起的n行
- n,my: 複製n和m行之間的內容
- p:貼上
0
→ 數字零,到行頭$
→ 到本行行尾gg:跳到檔案首
shitf + g:跳到行檔案尾
^
到本行第一個不是blank字元的位置(所謂blank字元就是空格,tab,換行,回車等)g_
到本行最後一個不是blank字元的位置。w
到下一個單詞的開頭。e
到下一個單詞的結尾。fa
到下一個為a的字元處,你也可以fs到下一個為s的字元。t,
到逗號前的第一個字元。逗號可以變成其它字元。eg:dt” 刪除從游標處到”的字元,可以結合其他命令使用
3fa
在當前行查詢第三個出現的a。F
和T
和f
和t
一樣,只不過是相反方向。%
: 匹配括號移動,包括(
,{
,[
. (陳皓注:你需要把游標先移到括號上)*
和#
: 匹配游標當前所在的單詞,移動游標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)gU
(變大寫)gu
(變小寫).
(小數點) 可以重複上一次的命令u 撤銷上一次的命令
N → 重複某個命令N次
ctrl f 相當於page down
ctrl b 相當於page up
ggVG 全選 這個牛逼,其實是進入可視模式
2、末行模式(last line mode)
在命令模式下按下shitf + :即可進入末行模式,末行模式下可以執行一些指令,如儲存、退出、查詢、替換等、在命令前加入!,即可在末行模式下執行shell命令
命令:
- /text 即可查詢包含text的文字,通過n/N可以向下或者向上查詢
%s/text/text1/g 即可將全域性text替換為text1
:saveas <path/to/file>
→ 另存為<path/to/file>
vsplit 垂直分頁
- split 水平分頁
- set 檢視vim的配置,同時可以直接設定vim的配置,例如直接輸入 set nu即可顯示行號
bn
和bp
→ 你可以同時開啟很多檔案,使用這兩個命令來切換下一個或上一個檔案。(陳皓注:我喜歡使用:n到下一個檔案)- e
3、插入模式(insert mode)
在命令模式下,執行以下命令,進入插入模式,即可進行正常的文字編輯
按 i 在游標前插入
按 I 在行首插入
按 a 在游標後插入
按 A 在行末插入
按 s 刪除游標所在的字元再插入
按 S 刪除游標所在行再插入
按 o 在當前行之下新建行
按 O 在當前行之上新建行
命令:
- ctrl p 自動補全
4、可視模式(visual mode)
在命令模式下,執行以下命令,即可進入可視模式,該模式下可以執行檔案的選擇,然後對選中區域的文字,執行刪除、複製、大小寫轉換等,這三種模式可以隨意切換,實現不同的選擇粒度
- v 逐個字元選擇文字行文字
- V 逐行選擇文字塊文字
- ctrl + v 按照塊的方式選擇文字
命令:(掌握)
f{char}
來跳轉到某個字元上面d
刪除選中文字c
修改選中文字- y 複製選中文字
r
替換選中文字I
在選中文字前插入A
在選中文字後插入gu
選中區域轉為小寫gU
選中區域轉為大寫g~
大小寫互調>
向右縮排一個單位<
向左縮排一個單位J
→ 把所有的行連線起來(變成一行)<
或>
→ 左右縮排=
→ 自動給縮排- 塊操作,典型的操作:
0 <C-v> <C-d> I-- [ESC]
在選中塊前新增–
^
→ 到行頭<C-v>
→ 開始塊操作<C-d>
→ 向下移動 (你也可以使用hjkl來移動游標,或是使用%,或是別的)I-- [ESC]
→ I是插入,插入“--
”,按ESC鍵來為每一行生效。
單擊.
重複命令(瞭解)
選擇模式 | 重複效果 |
---|---|
字元文字選擇模式(Visual ) |
從當前游標開始,作用範圍是上次操作的字元數 |
行文字選擇模式(Visual line ) |
從當前行開始,作用範圍是上次操作的行數 |
塊文字選擇模式(Visual Block ) |
從當前游標開始,作用範圍是以當前游標為左上端點的上次操作的塊範圍 |
一旦切換到可視模式以後,選中的區域是由兩個端點來界定的(一個在左上角,一個在右下角),我們在預設情況下只可以控制右下角的端點,但是有些時候發現我們需要調整左上角的端點,這時我們可以使用o
按鍵來在左上角和右下角之間進行切換。
最後,善於使用命令模式下的操作,基本可以不用使用可視模式,例如:
n,m>,就可以將n到m行之間的文字直接右移,配合. 和u可以輕鬆的重複和撤銷命令