vim 編輯模式/命令模式/視圖模式常用命令

以下是一份 Vim 命令大全,涵蓋 編輯模式(Insert Mode)命令模式(Normal Mode)視圖模式(Visual Mode) 的常用操作,適合初學者和進階用戶使用。


🧾 Vim 模式簡介

Vim 是一個模式化編輯器,主要有以下幾種模式:

模式進入方式說明
正常模式(Normal Mode)啟動 Vim 默認進入此模式可執行移動光標、復制粘貼等操作
插入模式(Insert Mode)i, a, o 等鍵進入可以輸入文本內容
視覺模式(Visual Mode)v, V, Ctrl + v 進入可以選擇文本塊進行操作
命令行模式(Command-line Mode):/ 進入執行保存、搜索、替換等命令

🔧 一、正常模式(Normal Mode)命令

啟動 Vim 默認進入此模式。按下 Esc 可從其他模式返回。

🔍 光標移動

命令功能
h向左移動一個字符
j向下移動一行
k向上移動一行
l向右移動一個字符
w移動到下一個單詞的開頭
b移動到上一個單詞的開頭
e移動到當前或下一個單詞的結尾
0移動到當前行的行首
$移動到當前行的行尾
gg跳轉到文件開頭
G跳轉到文件末尾
nG跳轉到第 n 行(如 5G 到第 5 行)
Ctrl + f向下翻頁
Ctrl + b向上翻頁
Ctrl + d向下滾動半頁
Ctrl + u向上滾動半頁

?? 編輯操作

命令功能
x刪除當前字符
X刪除前一個字符
dw刪除一個單詞
dd刪除整行
ndd刪除 n 行(如 3dd 刪除 3 行)
d$刪除從光標位置到行尾
d0刪除從光標位置到行首
yy復制當前行
nyy復制 n 行
yw復制一個單詞
p在光標下方粘貼
P在光標上方粘貼
u撤銷一次修改
Ctrl + r重做一次撤銷
.重復上一次編輯操作

?? 文件操作

命令功能
:w保存文件
:w filename另存為 filename
:q退出(無修改時)
:q!強制退出且不保存修改
:wq保存并退出
:wq!強制保存并退出
:e filename打開另一個文件
:set number:set nu顯示行號
:set nonumber:set nonu隱藏行號
:set list顯示隱藏字符(如空格、Tab)
:set tabstop=4設置 Tab 寬度為 4 個字符
:set autoindent自動縮進
:set paste進入粘貼模式(防止自動縮進干擾)
:set nopaste關閉粘貼模式

🔍 搜索與替換

命令功能
/pattern向后搜索 pattern
?pattern向前搜索 pattern
n查找下一個匹配項
N查找上一個匹配項
:%s/old/new/g替換整個文件中的 old 為 new
:1,10s/old/new/g替換第 1~10 行中的 old 為 new
:s/old/new/替換當前行第一個匹配項
:s/old/new/g替換當前行所有匹配項
:s/old/new/gc替換當前行所有匹配項,并確認每個替換

?? 二、插入模式(Insert Mode)

按以下任意鍵可進入插入模式,按 Esc 返回正常模式。

命令功能
i在光標前插入
I在行首插入
a在光標后插入
A在行尾插入
o在當前行下方新建一行并插入
O在當前行上方新建一行并插入
s刪除當前字符并進入插入模式
S刪除當前行并進入插入模式

🧮 三、視覺模式(Visual Mode)

按以下任意鍵進入視覺模式,用于選中文本進行操作。

命令功能
v字符選擇模式(Character-wise Visual Mode)
V行選擇模式(Line-wise Visual Mode)
Ctrl + v塊選擇模式(Block-wise Visual Mode)
o切換光標起始點
>向右縮進選中區域
<向左縮進選中區域
y復制選中內容
dx刪除選中內容
c刪除選中內容并進入插入模式
:對選中區域執行命令(如 :'<,'>s/old/new/g

💡 四、命令行模式(Command-line Mode)

:/? 進入該模式,用于執行命令。

命令功能
:w保存
:q退出
:wq保存并退出
:q!不保存強制退出
:/pattern搜索 pattern 并跳轉到第一次出現的位置
:help打開幫助文檔
:help keyword查找關鍵字的幫助信息
:registers查看剪貼板寄存器內容
:map查看按鍵映射
:syntax on/off開啟/關閉語法高亮
:filetype plugin indent on開啟智能縮進和插件支持

🎨 五、高級技巧(可選)

技巧命令
多窗口分屏:split(水平)或 :vsplit(垂直)
切換窗口Ctrl + w + 方向鍵
打開多個文件vim file1 file2
在多個文件之間切換:next / :prev / :first / :last
加載插件管理器(如 Plug):PlugInstall(需配置 vim-plug)
使用宏錄制q{a-z} 錄制宏,@{a-z} 執行宏
快速注釋代碼(結合插件)NERD Commenter: <leader>cc 注釋選中行

📄 六、實用示例

示例 1:查找并替換

:%s/foo/bar/g

將全文中所有 foo 替換為 bar

示例 2:顯示行號并跳轉到第 50 行

:set number
:50

示例 3:多窗口打開兩個文件

:split otherfile.txt

示例 4:快速刪除 5 行

5dd

📚 總結表格

操作命令
進入插入模式i, a, o
返回正常模式Esc
刪除字符x
刪除行dd
復制行yy
粘貼p
撤銷u
重做Ctrl + r
保存:w
退出:q
保存并退出:wq
搜索/keyword
替換:%s/old/new/g
顯示行號:set number
進入選擇模式v, V, Ctrl + v

如果你是新手,可以先掌握以下核心命令:

i           # 進入插入模式
Esc         # 返回正常模式
:wq         # 保存并退出
:x          # 保存并退出(簡寫)
dd          # 刪除一行
yy p        # 復制粘貼一行
u           # 撤銷
Ctrl + r    # 重做

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85631.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85631.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85631.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每天看一個Fortran文件(10)

今天來看下MCV模式調用物理過程的相關代碼。我想改進有關于海氣邊界層方面的內容&#xff0c;因此我尋找相關的代碼&#xff0c;發現在physics目錄下有一個sfc_ocean.f的文件。 可以看見這個文件是在好多好多年前更新的了&#xff0c;里面內容不多&#xff0c;總共146行。是計算…

python打卡day37

疏錦行 知識點回顧&#xff1a; 1. 過擬合的判斷&#xff1a;測試集和訓練集同步打印指標 2. 模型的保存和加載 a. 僅保存權重 b. 保存權重和模型 c. 保存全部信息checkpoint&#xff0c;還包含訓練狀態 3. 早停策略 作業&#xff1a;對信貸數據集訓練后保存權重&#xf…

【Spark征服之路-2.9-Spark-Core編程(五)】

RDD行動算子&#xff1a; 行動算子就是會觸發action的算子&#xff0c;觸發action的含義就是真正的計算數據。 1. reduce ? 函數簽名 def reduce(f: (T, T) > T): T ? 函數說明 聚集 RDD 中的所有元素&#xff0c;先聚合分區內數據&#xff0c;再聚合分區間數據 val…

【入門】【練17.3 】比大小

| 時間限制&#xff1a;C/C 1000MS&#xff0c;其他語言 2000MS 內存限制&#xff1a;C/C 64MB&#xff0c;其他語言 128MB 難度&#xff1a;中等 分數&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分數2難度) 出題人&#xff1a;root | 描述 試編一個程序&#xff0c;輸入…

CppCon 2017 學習:Free Your Functions!

“Free Your Functions!” 這句話在C設計中有很深的含義&#xff0c;意思是&#xff1a; “Free Your Functions!” 的理解 “解放你的函數”&#xff0c;鼓勵程序員&#xff1a; 不要把所有的函數都綁在類的成員函數里&#xff0c;優先考慮寫成自由函數&#xff08;non-mem…

日常運維問題匯總-19

60. OVF3維護成本中心與訂貨原因之間的對應關系時&#xff0c;報錯提示&#xff0c;SYST: 不期望的日期 00/00/0000。消息號 FGV004&#xff0c;如下圖所示&#xff1a; OVF3往右邊拉動&#xff0c;有一個需要填入的字段“有效期自”&#xff0c;此字段值必須在成本中心定義的有…

2025SCA工具推薦︱基于多模態SCA的新一代開源供應鏈風險審查與治理平臺

近年來&#xff0c;隨著開源軟件在企業數字化轉型中的廣泛應用&#xff0c;開源供應鏈攻擊事件頻發&#xff0c;企業普遍面臨三大突出難題&#xff1a;一是不清楚自身引入了哪些開源組件&#xff0c;二是不掌握組件中潛在的安全漏洞和合規風險&#xff0c;三是缺乏自動化、全流…

CppCon 2017 學習:Migrating a C++03 library to C++11 case study

這段內容是在介紹 Wt&#xff08;發音類似 “witty”&#xff09; —— 一個用于 C 的 Web UI 框架。總結如下&#xff1a; 什么是 Wt&#xff1f; Wt 是一個 用 C 編寫的 widget&#xff08;控件&#xff09;驅動的 Web 框架。類似于桌面 GUI 框架&#xff08;比如 Qt&#…

coding習慣 + Bug記錄整理

&#x1f4d6; 清單 1、包裝類型導致的NPE2、xxApiWrapper命名3、see注釋4、MySQL模糊匹配特殊字符bug 整理些平時不好的coding習慣導致的bug&#x1f4dd; 1、包裝類型導致的NPE 處理項目的一個bug&#xff0c;看日志是發生了空指針&#xff0c;相關代碼如下&#xff1a; D…

機器學習項目微服務離線移植

機器學習項目微服務離線移植 引言&#xff1a;為什么需要Docker化機器學習項目&#xff1f; 在當今的機器學習工程實踐中&#xff0c;項目部署與移植是一個常見但極具挑戰性的任務。傳統部署方式面臨著"在我機器上能運行"的困境——開發環境與生產環境的不一致導致…

JS紅寶書筆記 8.4 類

與函數類型相似&#xff0c;定義類也有兩種主要方式&#xff1a;類聲明和類表達式&#xff0c;這兩種方式都使用class關鍵字加大括號 與函數表達式類似&#xff0c;類表達式在它們被求值前也不能引用&#xff0c;不過與函數定義不同的是&#xff0c;雖然函數聲明可以提升&…

專題:2025游戲科技與市場趨勢報告|附130+份報告PDF匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p42733 2024年全球游戲市場規模突破1877億美元&#xff0c;中國以37.5%的全球占比成為核心增長引擎。生成式AI以52%的企業采用率重塑開發流程&#xff0c;混合休閑游戲實現37%的收入增長&#xff0c;跨端互通產品貢獻42%增量。玩家行為…

【沉浸式解決問題】Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

目錄 一、問題描述二、場景還原1. 測試mapper2. 測試service 三、原因分析四、解決方案1. DemoApplicationTests2. DemoApplication 后記 一、問題描述 在Application文件中加了ComponentScan注解&#xff0c;此后運行任何測試方法均報錯 java.lang.IllegalStateException: Fa…

Ubuntu 和 CentOS 中配置靜態 IP

在 Ubuntu 和 CentOS 中配置靜態 IP 的方法有所不同&#xff0c;主要因為兩者使用的網絡管理工具不同。以下是詳細步驟&#xff1a; Ubuntu&#xff08;18.04 及更新版本&#xff0c;使用 netplan&#xff09; 1. 查看網卡名稱 ip a記錄網卡名稱&#xff08;如 ens33、eth0&a…

4、做中學 | 二年級下期 Golang整型和浮點型

上篇介紹了哪些數據類型&#xff0c;如何進行聲明常量和變量&#xff0c;那么接下來進行詳細學習下各個數據類型的使用&#xff01; 一、整數 在go中&#xff0c;整數分為倆類&#xff0c;一個是無符號整數&#xff0c;即0以上數值&#xff1b;另一個是有符號數值&#xff0c;…

C++11 GC Interface:從入門到精通

文章目錄 一、引言二、C11簡介2.1 C11發展歷史2.2 C11新特性概述 三、C11中的垃圾收集支持和基于可達性的泄漏檢測3.1 背景與原理3.2 相關標準與接口3.3 示例代碼 四、C11 GC interface的使用場景4.1 簡化內存管理4.2 提高代碼可靠性 五、C23中移除垃圾收集支持和基于可達性的泄…

《高并發系統性能優化三板斧:緩存 + 異步 + 限流》

高并發系統性能優化三板斧&#xff1a;緩存 異步 限流 引言 在互聯網應用的高并發場景下&#xff0c;系統性能面臨巨大挑戰。以某電商平臺會員活動為例&#xff0c;活動期間瞬時QPS可達10萬&#xff0c;若未進行有效優化&#xff0c;服務器將迅速崩潰。本文從緩存、異步、限…

JVM(4)——引用類型

痛點引入&#xff1a; 為什么需要不同的引用類型&#xff1f;直接只用強引用不行嗎&#xff1f;&#xff08;內存泄漏風險、緩存管理粗粒度、對象生命周期監聽需求&#xff09; 核心作用&#xff1a; 解釋引用類型如何讓程序員與垃圾收集器&#xff08;GC&#xff09;協作&…

ONLYOFFICE 文檔 9.0 版本已發布:新界面、圖表查看器、.md 文件支持、AI 表格與宏等更新

ONLYOFFICE 文檔 9.0 版本已正式發布。此次更新包含 20 多項新功能和約 500 項修復&#xff0c;全面提升您的辦公效率。從全新界面、突破性的 AI 工具到更廣泛的文件格式兼容性&#xff0c;本次發布將帶來更加流暢的使用體驗。閱讀本文&#xff0c;了解詳情。 更新全部編輯器的…

關于python-socket服務的問題記錄

概述 在使用pythonwebsocket部署socket服務&#xff0c;前端使用小程序來連接&#xff0c;過程中存在以下可能出現的問題&#xff1a; 1&#xff0c;代碼里socket端口問題2&#xff0c;服務器配置問題&#xff08;域名解析&#xff1f;Nginx配置是否正確處理了WebSocket升級頭…