天天看點

Vim 編輯器快捷鍵及配置指南

文章目錄

      • 1.Vim 常見工作模式
      • 2.Vim 的模式轉換
        • 正常模式轉輸入模式
      • 3.Vim 高頻快捷鍵
        • 插入文本 ( 正常模式下輸入 )
        • 行間跳轉 ( 正常模式下輸入)
        • 文本處理 ( 正常模式下輸入)
        • 檔案操作 ( 指令模式下輸入)
        • 批量處理 ( 輸入模式下輸入 )
      • 4.Vim 配置檔案配置指南

1.Vim 常見工作模式

Vim 編輯器快捷鍵及配置指南
  1. 正常模式 :Vim 打開檔案預設處于正常模式。此模式下,可使用方向鍵(上、下、左、右鍵)或 k、j、h、i 移動光标的位置,還可以對檔案内容進行複制、粘貼、替換、删除等操作。
  2. 輸入模式(插入模式,編輯模式) :輸入模式 Vim 可以對檔案執行寫操作。
  3. 指令模式 :指令模式用于對檔案中的指定内容執行儲存、查找或替換等操作。

2.Vim 的模式轉換

正常模式轉輸入模式

快捷鍵 功能
i 在光标所在位置前輸入文本,進入輸入模式
I 在行首插入文本,進入輸入模式
a 在光标所在位置後輸入文本,進入輸入模式
A 在行末尾插入文本,進入輸入模式
o 在目前行的下一行插入空行,進入輸入模式
O 在目前行的上一行插入空行,進入輸入模式

正常模式 轉 指令模式隻需要按下 :,然後在指令模式下進行操作,最常見的就是操作就是 使用 " / "查找文本的關鍵字,比如在正常模式下搜尋文本出現的include單詞

vim test.c
:/include 回車
           

3.Vim 高頻快捷鍵

插入文本 ( 正常模式下輸入 )

快捷鍵 功能
i 在光标所在位置前輸入文本
I 在行首插入文本
a 在光标所在位置後輸入文本
A 在行末尾插入文本
o 在目前行的下一行插入空行
O 在目前行的上一行插入空行

行間跳轉 ( 正常模式下輸入)

快捷鍵 功能
h 光标向左移動
l 光标向右移動
j 光标向下移動一行
k 光标向上移動一行
w 光标跳到上一個單詞
b 光标跳到下一個單詞

使用技巧:

使用指令前可以加上數字,代表執行的次數,比如 :5 j 便是光标向下移動五行,其他指令依次類推

文本處理 ( 正常模式下輸入)

快捷鍵 功能
dd 删除目前行
num+dd 向下删除num行
p 将剪切闆的内容複制到此處
x 删除目前光标的字元
u 撤銷上次操作
ctrl+r 取消撤銷上次操作
r 替換成将要輸入的字元
ctrl+d 向下翻半頁
ctrl+u 向上翻半頁

檔案操作 ( 指令模式下輸入)

正常模式使用:進入指令模式

快捷鍵 功能
:w 将文本内容儲存
:q 退出目前文本
:wq! 強制儲存并退出文本
:vs+檔案名 豎直分屏打開文本
:sp+檔案名 水準分屏打開文本
num+dd 向下删除num行

打開分屏之後,想要切換視窗使用 ctrl + w + h / j / k / l

批量處理 ( 輸入模式下輸入 )

批量替換

:%s/源字元串/目的字元串/g

批量注釋

:起始行号,結束行号s/^/注釋符/g

批量取消注釋

:起始行号,結束行号s/^注釋符//g

4.Vim 配置檔案配置指南

Vim 通過一個配置檔案叫做 vimrc 來提供使用者自定義配置 Vim 屬性,通常叫做 .vimrc ,是以是一個隐藏檔案,使用 ls -a 才能看到,在etc目錄中有一個全局的 .vimrc 檔案,自己的家目錄下也有一個 .vimrc 檔案,強烈推薦配置使用者家目錄下的配置檔案,也就是 ~/.vimrc,他的配置檔案文法中使用 " 來注釋

基礎配置文法示例:

Vim 編輯器快捷鍵及配置指南

第 1 行到 12 行為基礎配置,直接用即可,16行意思是在插入模式下輸入 j j 來映射 Esc 按鍵,也就是進入了預設模式,( Esc 鍵有點遠,沒辦法 😂),18 行意思是普通模式下ctrl w h 映射 ctrl h,目的就是在分屏切換的時候少按了一個鍵,友善一些。沒錯inoremap 表示 插入模式下映射,noremap 表示預設模式下映射,可以根據自己的喜好随意配置。

"零碎配置
 set number "顯示行号
 syntax on  "文法高亮
 set hlsearch
 set autoindent
 set smartindent
 set scrolloff=5    "垂直滾動時,光标距離頂部/底部的位置(機關:行)
 set noswapfile  "不建立交換檔案
 set tabstop=4
 set shiftwidth=4
 set showmatch
 set fileencodings=ucs-bom,utf-8,chinese,cp936

"按鍵映射
 inoremap jj <Esc>
 inoremap <Tab> <Esc>la
 noremap <C-h> <C-w>h
 noremap <C-j> <C-w>j
 noremap <C-k> <C-w>k
 noremap <C-l> <C-w>l
 noremap <space> viw 
           

提示 : Vim 很多指令前後可以加上一個數字,表示指令執行次數,使用過程中需要舉一反三才能更好地利用 Vim。