Vim 常用快捷鍵大全:跳轉、編輯、查找替換全解析

摘要:

Vim 是一款非常強大的文本編輯器,許多程序員和系統管理員都離不開它。

本文詳細介紹了 Vim 編輯器中的常用快捷鍵和命令,從基本模式、光標移動、編輯操作到查找替換,再到文件保存等常用操作,幫助你快速上手并提升編輯效率。無論你是 Vim 新手還是資深用戶,都能從中找到提升效率的技巧。閱讀本文后,你將熟悉 Vim 的各種操作,讓編程、寫作變得更加高效!

下面列出了一些常用命令和操作:

1. 基本模式介紹

Vim 有三種主要模式:

? 普通模式(Normal Mode):默認模式,用于執行命令。

? 插入模式(Insert Mode):編輯文本,用 i、I、a、A 等命令進入。

? 命令模式(Command-line Mode):用于保存、退出、搜索等操作,進入方法是按 :。

了解這些模式對于高效使用 Vim 至關重要。


2. 光標移動

在普通模式下,可以使用以下快捷鍵來快速移動光標:

? 跳轉到文件開頭

? gg:將光標移動到文件的第一行。

? 1G:同樣效果,移動到第一行。

? 跳轉到文件末尾

? G:將光標移動到文件的最后一行。

? 按頁滾動

? Ctrl+f:向前翻頁。

? Ctrl+b:向后翻頁。

? 按行移動

? j:向下移動一行。

? k:向上移動一行。

? h:向左移動一個字符。

? l:向右移動一個字符。

? 快速跳轉到指定行

? 輸入 :行號 后按 Enter,例如 :50 跳到第 50 行。


3. 編輯操作

3.1 進入插入模式

? i:在當前光標位置前進入插入模式。

? I:在當前行的開頭進入插入模式。

? a:在當前光標位置后進入插入模式。

? A:在當前行末尾進入插入模式。

? o:在當前行下面新建一行并進入插入模式。

? O:在當前行上面新建一行并進入插入模式。

3.2 刪除操作

? x:刪除當前光標處的字符。

? dw:刪除從當前光標到下一個單詞的開頭。

? dd:刪除當前整行。

? D:刪除從當前光標到行末的內容。

3.3 復制與粘貼

? yy(或 Y):復制當前整行。

? p:在當前光標后粘貼。

? P:在當前光標前粘貼。

3.4 撤銷與重做

? u:撤銷上一步操作。

? Ctrl+r:重做上一步被撤銷的操作。


4. 查找和替換

4.1 查找

? /pattern:向下查找匹配 pattern 的字符串。

? ?pattern:向上查找匹配 pattern 的字符串。

? n:重復上一次查找操作(相同方向)。

? N:重復上一次查找操作(相反方向)。

4.2 替換

? :s/old/new/:替換當前行第一個匹配的字符串。

? :s/old/new/g:替換當前行所有匹配的字符串。

? :%s/old/new/g:替換整個文件中所有匹配的字符串。

? :%s/old/new/gc:替換時詢問確認。


5. 文件操作

? :w:保存文件。

? :q:退出 Vim。

? :wq 或 :x:保存并退出。

? :q!:不保存強制退出。


6. 其他有用命令

? :e filename:打開文件 filename。

? :ls 或 :buffers:列出當前打開的緩沖區。

? :b N:切換到編號為 N 的緩沖區。

? :split filename:水平分割窗口并打開文件。

? :vsplit filename:垂直分割窗口并打開文件。

? Ctrl+w 后跟 h/j/k/l:在分割窗口間切換。


參考資料

? Vim 官方文檔:Vim documentation

? 菜鳥教程 Vim 教程:菜鳥教程 - Vim 教程

通過掌握這些常用命令,你可以大幅提升在 Vim 中編輯文件的效率。

如果你覺得本文對你有所幫助,歡迎點個贊支持一下,也請在評論區分享你在 Vim 使用過程中總結的更多技巧和經驗!

你有遇到哪些 Vim 使用上的問題?或者有哪些快捷鍵是你覺得特別好用的?歡迎留言交流,我們一起進步!

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

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

相關文章

【實戰篇】【深度解析DeepSeek:從機器學習到深度學習的全場景落地指南】

一、機器學習模型:DeepSeek的降維打擊 1.1 監督學習與無監督學習的"左右互搏" 監督學習就像學霸刷題——給標注數據(參考答案)訓練模型。DeepSeek在信貸風控場景中,用邏輯回歸模型分析百萬級用戶數據,通過特征工程挖掘出"凌晨3點頻繁申請貸款"這類魔…

Vue核心知識:Vue動態權限到按鈕完整方案

為了進一步實現上面提到的動態路由功能,并且加入對每個路由的權限控制(即增、刪、改、查按鈕的權限控制),我們需要對數據庫、后端接口、前端的設計做一些改進和擴展。下面我將詳細描述如何在現有方案的基礎上加入對路由的增、刪、…

swift 開發效率提升工具

安裝github copliot for xcode github/CopilotForXcode brew install --cask github-copilot-for-xcode安裝swiftformat for xcode brew install swiftformatXcode Swift File代碼格式化-SwiftFormat

Trae智能協作AI編程工具IDE:如何在MacBook Pro下載、安裝和配置使用Trae?

Trae智能協作AI編程工具IDE:如何在MacBook Pro下載、安裝和配置使用Trae? 一、為什么選擇Trae智能協作IDE? 在AI編程新時代,Trae通過以下突破性功能重新定義開發體驗: 雙向智能增強:AI不僅提供代碼補全&a…

【推薦項目】023-游泳俱樂部管理系統

023 游泳俱樂部管理系統 游泳俱樂部管理系統概述 前端技術框架: 我們優雅地采用了Vue.js作為游泳俱樂部管理系統的前端基礎框架。Vue.js以其輕盈、高效和易于上手的特點,為我們的用戶界面帶來了極致的流暢性和響應速度。通過Vue.js,我們為…

C語言:51單片機 基礎知識

一、單片機概述 單片機的組成及其特點 單片機是指在一塊芯片上集成了CPU、ROM、RAM、定時器/計數器和多種I/O接口電路等,具有一定規模的微型計算機。 特點: 1、單片機的存儲器以ROM、RAM嚴格分工。 2、采用面向控制的指令系統。 3、單片機的I/O口引腳通…

【計算機網絡入門】初學計算機網絡(八)

目錄 1. S-W協議的信道利用率 2. GBN、SR協議的信道利用率 3.術語補充 3.1 滑動窗口協議 3.2 ARQ協議、連續ARQ協議 4. 信道劃分介質訪問控制 4.1 時分復用(TDM) 4.2 統計時分復用(STDM) 4.3 頻分復用(FDM&a…

HarmonyOS學習第7天: 文本組件點亮界面的文字魔法棒

一、引言 在 HarmonyOS 那豐富多彩的系統界面中,從簡潔直觀的應用圖標,到交互流暢的操作菜單,再到生動形象的圖文展示,每一處細節都經過精心雕琢,為用戶帶來了獨特而美妙的視覺與交互體驗。而在這琳瑯滿目的界面元素中…

從零開始:H20服務器上DeepSeek R1 671B大模型部署與壓力測試全攻略

前言 最近,我有幸在工作中接觸到了DeepSeek R1 671B模型,這是目前中文開源領域參數量最大的高質量模型之一。DeepSeek團隊在2024年推出的這款模型,以其驚人的6710億參數量和出色的推理性能,引起了業界廣泛關注。 作為一名AI基礎…

Unity中動態切換光照貼圖LightProbe的方法

關鍵代碼:LightmapSettings.lightmaps lightmapDatas; LightmapData中操作三張圖:lightmapColor,lightmapDir,以及一張ShadowMap 這里只操作前兩張: using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public cl…

實例分割 | yolov11訓練自己的數據集

前言 因工作要求使用的都是yolov5系列的模型,今天學習一下最先進的yolov11,記錄一下環境配置及訓練過程。 1.項目下載及環境安裝 源碼位置:yolov11 可以看到,這里要求python版本大于等于3.8,我這里安裝python3.10.…

大模型推理時的尺度擴展定律

大模型推理時的尺度擴展定律 FesianXu at 20250212 at Wechat Search Team 前言 大模型的尺度擴展定律告訴我們:『LLM的性能會隨著模型的參數量、模型的訓練量、模型的訓練數據量的增加而增加』。訓練存在尺度擴展定律,測試也存在尺度擴展定律&#xff…

如何使用useEffect模擬組件的生命周期?

什么是 useEffect? useEffect 是 React 提供的一個 Hook,用于處理副作用(side effects)。它允許你在函數組件中執行一些操作,這些操作通常會影響組件的渲染,比如數據獲取、訂閱、DOM 操作等。通過 useEffe…

Linux網絡基礎(協議 TCP/IP 網絡傳輸基本流程 IP VS Mac Socket編程UDP)

文章目錄 一.前言二.協議協議分層分層的好處 OSI七層模型TCP/IP五層(或四層)模型為什么要有TCP/IP協議TCP/IP協議與操作系統的關系(宏觀上是如何實現的)什么是協議 三.網絡傳輸基本流程局域網(以太網為例)通信原理MAC地址令牌環網 封裝與解包分用 四.IP地址IP VS Mac地址 五.So…

網絡安全-使用DeepSeek來獲取sqlmap的攻擊payload

文章目錄 概述DeepSeek使用創建示例數據庫創建API測試sqlmap部分日志參考 概述 今天來使用DeepSeek做安全測試,看看在有思路的情況下實現的快不快。 DeepSeek使用 我有一個思路,想要測試sqlmap工具如何dump數據庫的: 連接mysql數據庫&#…

AI繪畫軟件Stable Diffusion詳解教程(2):Windows系統本地化部署操作方法(專業版)

一、事前準備 1、一臺配置不錯的電腦,英偉達顯卡,20系列起步,建議顯存6G起步,安裝win10或以上版本,我的顯卡是40系列,16G顯存,所以跑大部分的模型都比較快; 2、科學上網&#xff0…

Linux NAT和代理服務器

目錄 0.前言 1.NAT 網絡地址轉換 1.1 NAT 技術背景 1.2 NAT的定義與分類 1.3 NAT的工作原理 1.4 NAT的缺陷 2.代理服務器 2.1 概述 2.2 正向代理 2.3 反向代理 2.4 NAT 與代理服務器的區別和聯系 3.小結 (圖像由AI生成) 0.前言 在前面的文章中&#x…

AI學習第七天

數組:基礎概念、存儲特性及力扣實戰應用 在計算機科學與數學的廣袤領域中,數組作為一種極為重要的數據結構,發揮著不可或缺的作用。它就像一個有序的 “數據倉庫”,能高效地存儲和管理大量數據。接下來,讓我們深入了解…

ue5 創建多列StreeView的方法與理解

創建StreeView的多列樣式怎么就像是創建單行單列差不多?貌似就是在單行單列中加入了多列widget? 示例代碼 DetailTabWidget #pragma once #include "TreeViewItemBase.h"class SDetailTabWidget : public SCompoundWidget {SLATE_BEGIN_ARGS(SDetailTabWidget){…

Linux之yum詳解

—— 小 峰 編 程 目錄 1、Linux軟件的安裝方式 2、什么是yum 3、配置網絡yum源 4、yum命令 【語法】 【yum常用命令】 1、Linux軟件的安裝方式 在CentOS系統中,軟件管理方式通常有三種方式: rpm安裝 、 yum安裝 以及 編譯安裝 。 2、什么是yum…