Vi/Vim 是 Linux 系統自帶的標準文本編輯器,掌握其三大模式切換、光標移動、編輯操作、底行命令、配置優化,是運維開發必備基本功。本文提供結構化學習路徑與速查表。
| 模式 | 進入方式 | 核心功能 | 退出方式 |
|---|---|---|---|
| 命令模式 | 啟動 vim 進入;其他模式按 Esc | 光標移動、刪除/復制/粘貼、搜索、進入其他模式 | - |
| 插入模式 | 命令模式按 i/a/o/I/A/O | 文本輸入編輯 | 按 Esc 返回命令模式 |
| 底行模式 | 命令模式按 :///? | 保存/退出、設置、搜索替換、執行外部命令 | 執行命後自動返回命令模式 |
| 分類 | 命令 | 功能 |
|---|---|---|
| 光標移動 | h/j/k/l | 左/下/上/右(逐字符) |
w/b/e | 下一詞首/上一詞首/當前詞尾 | |
0/^/$ | 行首/第一個非空白字符/行尾 | |
gg/G | 文件首行/末行 | |
Ctrl+f/b/u/d | 向下/上翻頁/半頁 | |
nG/:n | 跳轉第 n 行 | |
% | 跳轉匹配括號 () {} [] | |
| 編輯操作 | x/X | 刪除光標後/前字符 |
dd/ndd | 刪除當前行/向下 n 行 | |
yy/nyy | 復制當前行/向下 n 行 | |
p/P | 粘貼到光標後/前 | |
u/Ctrl+r | 撤銷/重做 | |
r/R | 替換單字符/進入替換模式 | |
| 搜索替換 | /pattern | 向下搜索 |
?pattern | 向上搜索 | |
n/N | 下一個/上一個匹配 | |
:%s/old/new/g | 全文替換 |
| 命令 | 功能 |
|---|---|
:w | 保存 |
:wq / :x | 保存並退出 |
:q! | 強制退出不保存 |
:set nu / :set nonu | 顯示/隱藏行號 |
:set hlsearch / :set nohlsearch | 高亮/關閉搜索高亮 |
:!cmd | 執行 Shell 命令(如 :!ls) |
:r file | 讀入文件內容到光標處 |
:e file | 編輯新文件 |
:split / :vsplit | 水平/垂直分屏 |
" 基礎設置 set number " 顯示行號 set cursorline " 高亮當前行 set autoindent " 自動縮進 set smartindent " 智能縮進 set tabstop=4 " Tab 寬度 set shiftwidth=4 " 縮進寬度 set expandtab " Tab 轉空格 set hlsearch " 搜索高亮 set incsearch " 增量搜索 set ignorecase " 搜索忽略大小寫 set smartcase " 含大寫則區分大小寫 set history=1000 " 命令歷史 set undolevels=1000 " 撤銷層數 syntax on " 語法高亮 filetype plugin indent on " 文件類型插件 " 實用映射 nnoremap:w " Ctrl+S 保存 inoremap :w a nnoremap :set invnu " Ctrl+N 切換行號
:sp file # 水平分割 :vs file # 垂直分割 Ctrl+w w # 切換窗口 Ctrl+w q # 關閉當前窗口 Ctrl+w o # 關閉其他窗口
Linux 驅動層數據發送全流程:以 e100 為例解析環形緩衝區與 DMA 映射
Linux 靜態庫、動態庫與 libtool 存檔(.a/.so/.la) 區別詳解
UNIX/Linux vi/vim 全鍵盤操作大全:三種模式、編輯、搜尋、取代、複製移動
MySQL 啟動報錯:'./mysql-bin.index' not found (Errcode: 13) 權限修復方案
Ubuntu 系統檔案加密傳輸實戰:GPG 金鑰管理與 Nautilus 圖形化操作
Linux 掛載硬碟報錯「you must specify the filesystem type」解決流程