Vi/Vim 編輯器詳細指南

在這里插入圖片描述


Vi/Vim 編輯器詳細指南

  • 簡介
  • 一、模式詳解
    • 1. 命令模式(Normal Mode)
    • 2. 插入模式(Insert Mode)
    • 3. 可視模式(Visual Mode)
    • 4. 命令行模式(Ex Mode)
  • 二、核心操作
    • 1. 保存與退出
    • 2. 導航與移動
    • 3. 編輯與文本操作
    • 4. 搜索與替換
  • 三、高級技巧
    • 1. 多文件與窗口操作
    • 2. 宏錄制
    • 3. 寄存器與剪貼板
    • 4. 代碼折疊
  • 四、配置與插件
    • 1. 配置文件(~/.vimrc)
    • 2. 插件管理(以 vim-plug 為例
      • 1. 安裝 vim-plug:
      • 2. 配置插件(在 `~/.vimrc` 中添加):
      • 3. 安裝插件:
  • 五、場景示例
    • 1. 批量注釋代碼
    • 2. 多文件編輯
    • 3. 快速修復縮進
  • 六、快捷鍵速查表
  • 七、注意事項
    • 1. 只讀文件:
    • 2. 恢復文件:
    • 3. 插件兼容性:
    • 4. 性能優化:


簡介

Vi/Vim 是一款功能強大的文本編輯器,以其高效的鍵盤操作和靈活的配置著稱。它支持多模式編輯,適用于從簡單文本處理到復雜代碼開發的各類場景。本指南將全面解析其核心功能,幫助你掌握從基礎到進階的操作。


一、模式詳解

1. 命令模式(Normal Mode)

  • 默認模式:啟動 Vim 后自動進入,所有按鍵被解析為命令。

  • 核心作用:導航、刪除、復制、粘貼、搜索等操作。

  • 退出其他模式:按 Esc 鍵返回此模式。

2. 插入模式(Insert Mode)

  • 進入方式:

    • i:在光標前插入。

    • a:在光標后插入。

    • o / O:在當前行下方/上方新建行并插入。

    • s:刪除當前字符并插入。

    • S:刪除整行并插入。

  • 退出:按 Esc 返回命令模式。

3. 可視模式(Visual Mode)

  • 進入方式:

    • v:字符級選擇。

    • V:行級選擇。

    • Ctrl+v:塊級選擇(列選擇)。

  • 操作:選中文本后,可執行復制(y)、刪除(d)、縮進(>)等操作。

4. 命令行模式(Ex Mode)

  • 進入方式:在命令模式下按 :

  • 用途:執行保存、退出、替換、配置等高級命令。


二、核心操作

1. 保存與退出

命令說明
:w保存當前文件。
:w [新文件名]另存為指定文件(如 :w backup.txt)。
:w !sudo tee %無權限時強制保存(需輸入密碼)。
:q退出,僅當文件未修改時生效。
:q!強制退出,丟棄所有未保存的修改。
:wq / :x保存并退出(:x 僅在修改后保存)。
ZZ快捷鍵,等同于 :wq

2. 導航與移動

命令說明
h/j/k/l

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

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

相關文章

kotlin 01flow-StateFlow 完整教程

一 Android StateFlow 完整教程:從入門到實戰 StateFlow 是 Kotlin 協程庫中用于狀態管理的響應式流,特別適合在 Android 應用開發中管理 UI 狀態。本教程將帶全面了解 StateFlow 的使用方法。 1. StateFlow 基礎概念 1.1 什么是 StateFlow? StateF…

開發搭載OneNet平臺的物聯網數據收發APP的設計與實現

一、開發環境與工具準備 工具安裝 下載HBuilderX開發版(推薦使用開發版以避免插件兼容性問題)安裝Node.js和npm(用于依賴管理及打包)配置Android Studio(本地打包需集成離線SDK)項目初始化 創建uni-app項目,選擇“默認模板”或“空白模板”安裝必要的UI庫(如uView或Van…

HHsuite3 的 HHblits 和 HHsearch比較

HHblits 與 HHsearch 的核心區別及遠源同源檢測能力對比 一、核心功能與定位差異 特征HHblitsHHsearch核心目標快速迭代搜索,構建高質量多序列比對(MSA)和 Profile HMM,用于大規模序列聚類與初步同源篩選。高精度 Profile HMM-HMM 比對,用于深度同源檢測與結構 / 功能預測…

【從零開始學習RabbitMQ | 第二篇】生成交換機到MQ的可靠性保障

目錄 ?編輯前言 交換機 Direct交換機與Fanout交換機的差異 Topic交換機 Topic交換機相比Direct交換機的差異 生成我們的交換機,隊列,以及綁定關系 基于代碼去生成交換機和隊列 基于注解去聲明隊列和交換機 消息轉換器 消息隊列的高可靠性 發送…

LeetCode 熱題 100 22. 括號生成

LeetCode 熱題 100 | 22. 括號生成 大家好,今天我們來解決一道經典的算法題——括號生成。這道題在 LeetCode 上被標記為中等難度,要求生成所有可能的并且有效的括號組合。這是一道非常經典的回溯法題目,非常適合用來練習遞歸和回溯的技巧。…

TestStand API 簡介

TestStand API 簡介 在自動化測試領域,TestStand 憑借其靈活的架構和強大的功能,成為眾多開發者的首選工具。而 TestStand API(Application Programming Interface,應用程序編程接口)則是打開 TestStand 強大功能的 “…

如何修改 JAR 包中的源碼

如何修改 JAR 包中的源碼 前言一、準備工作二、將 JAR 當作 ZIP 打開并提取三、重寫 Java 類方法 A:直接替換已編譯的 .class方法 B:運行時類路徑優先加載 四、修改 MyBatis(或其他)XML 資源五、重新打包 JAR(命令行&a…

存算一體架構下的新型AI加速范式:從Samsung HBM-PIM看近內存計算趨勢

引言:突破"內存墻"的物理革命 馮諾依曼架構的"存儲-計算分離"設計正面臨根本性挑戰——在GPT-4等萬億參數模型中,數據搬運能耗已達計算本身的200倍。存算一體(Processing-In-Memory, PIM)技術通過?在存儲介…

藍橋杯15屆國賽 合法密碼

問題描述 小藍正在開發自己的 OJ 網站。他要求網站用戶的密碼必須符合以下條件&#xff1a; 長度大于等于 8 個字符&#xff0c;小于等于 16 個字符。必須包含至少 1 個數字字符和至少 1 個符號字符。 例如 **lanqiao2024!、-*/0601、8((>w<))8** 都是合法的密碼。 而…

Jenkins忘記admin密碼后的恢復步驟

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、pandas是什么&#xff1f;二、使用步驟 1.引入庫2.讀入數據 總結 前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&#xff1a; 時間較長沒有使用…

C++ - 仿 RabbitMQ 實現消息隊列(1)(環境搭建)

C - 仿 RabbitMQ 實現消息隊列&#xff08;1&#xff09;&#xff08;環境搭建&#xff09; 什么是消息隊列核心特點核心組件工作原理常見消息隊列實現應用場景優缺點 項目配置開發環境技術選型 更換軟件源安裝一些工具安裝epel 軟件源安裝 lrzsz 傳輸工具安裝git安裝 cmake安裝…

簡單面試提問

Nosql非關系型數據庫&#xff1a; Mongodb&#xff1a;開源、json形式儲存、c編寫 Redis&#xff1a;key-value形式儲存&#xff0c;儲存在內存&#xff0c;c編寫 關系型數據庫&#xff1a; sqlite;&#xff1a;輕量型、0配置、磁盤存儲、支持多種語言 mysql&#xff1a;開源…

油氣地震資料信號處理中的NMO(正常時差校正)

油氣地震資料信號處理中的NMO&#xff08;正常時差校正&#xff09;介紹與應用 NMO基本概念 **正常時差校正&#xff08;Normal Moveout Correction&#xff0c;NMO&#xff09;**是地震資料處理中的一項關鍵技術&#xff0c;主要用于消除由于炮檢距&#xff08;source-recei…

深度解析:從 GPT-4o“諂媚”到 Deepseek“物理腔”,透視大模型行為模式的底層邏輯與挑戰

深度解析&#xff1a;從 GPT-4o“諂媚”到 AI“物理腔”&#xff0c;透視大模型行為模式的底層邏輯與挑戰 標簽&#xff1a;人工智能, GPT-4o, 大語言模型, AI倫理, 人機交互, 技術思考 大家好&#xff01;最近AI圈最火的“瓜”之一&#xff0c;莫過于OpenAI的GPT-4o模型在一…

Java引用RabbitMQ快速入門

這里寫目錄 Java發送消息給MQ消費者接收消息實現一個隊列綁定多個消費者消息推送限制 Fanout交換機路由的作用Direct交換機使用案例 Java發送消息給MQ public void testSendMessage() throws IOException, TimeoutException {// 1.建立連接ConnectionFactory factory new Conn…

從讀寫分離到分布式服務:系統架構演進十階段深度解析

第一階段到第四階段&#xff1a;架構進化四階段&#xff1a;探索單體到集群的高可用性能優化之道-CSDN博客https://blog.csdn.net/pinbodeshaonian/article/details/147464084?spm1001.2014.3001.5502 以下是對從第五階段到第十階段詳細的解釋&#xff1a; 第五階段&#xf…

Webug4.0靶場通關筆記07- 第9關反射XSS和第10關存儲XSS

目錄 第09關 反射型XSS 1.打開靶場 2.源碼分析 3.滲透實戰 第10關 存儲型XSS 1.打開靶場 2.源碼分析 3.滲透實戰 本系列為通過《Webug4.0靶場通關筆記》的滲透集合&#xff0c;本文為反射型和存儲型XSS漏洞關卡的滲透部分&#xff0c;通過對XSS關卡源碼的代碼審計找到漏…

Prometheus的安裝部署

目錄 一、概述 二、Prometheus的安裝 1、二進制方式 1.1、下載系統安裝包?編輯 1.2、解壓 1.3、創建數據目錄&#xff0c;服務運行用戶 1.4、設置為系統服務&#xff08;創建服務運行腳本&#xff09; 1.5、啟動服務&#xff0c;并通過瀏覽器訪問驗證 2、容器方式 2…

Jupyter Notebook為什么適合數據分析?

Jupyter Notebook 是一款超實用的 Web 應用程序&#xff0c;在數據科學、編程等諸多領域都發揮著重要作用。它最大的特點就是能讓大家輕松創建和共享文學化程序文檔。這里說的文學化程序文檔&#xff0c;簡單來講&#xff0c;就是把代碼、解釋說明、數學公式以及數據可視化結果…

Python清空Word段落樣式的方法

在 Python 中&#xff0c;你可以使用 python-docx 庫來操作 Word 文檔&#xff0c;包括清空段落樣式。以下是幾種清空段落樣式的方法&#xff1a; 方法一&#xff1a;直接設置段落樣式為"Normal" from docx import Documentdoc Document(your_document.docx) # 打…