【Linux】開發工具命令指南:深度解析Vim的使用操作

在這里插入圖片描述
歡迎各位佬進行交流,我們一起無限進步!!!!!!!!!!

文章目錄

    • Vim:多模式高效文本編輯器
      • 1. 初次體驗 Vim
      • 2. Vim 核心工作模式(5 種模式詳解)
      • 3. 命令模式:高效操作核心區
        • (1)光標定位(精準移動,告別方向鍵)
        • (2)編輯命令(復制、刪除、撤銷)
        • (3)模式切換命令
      • 4. 命令行模式(底行模式):文件與編譯操作
        • (1)文件基礎操作
        • (2)搜索與替換
        • (3)編譯與運行(以 C 語言為例)
        • (4)分屏操作(多文件同時編輯)
      • 5. 可視模式:批量操作神器
        • (1)批量添加注釋(以 C 語言 `//` 為例)
        • (2)批量取消注釋
        • (3)批量剪切/復制
      • 6. Vim 配置:自定義你的編輯器
        • (1)基礎配置流程(新手必備)
        • (2)進階配置與模式查詢


Vim:多模式高效文本編輯器

1. 初次體驗 Vim

  • 啟動與基礎操作:終端輸入 vim 文件名(如 vim test.c)啟動,默認進入命令模式(此時輸入字符會被識別為命令,而非文本);
    • 若啟動后無明顯反應,無需慌張,按 i 鍵即可進入插入模式(界面會顯示 --INSERT-- 提示),此時可正常輸入代碼;
    • 退出提示:若需放棄編輯退出,按 Esc 返回命令模式,輸入 :q! 強制退出;若需保存退出,輸入 :wq 或快捷鍵 Shift+zz
  • Vim 界面參考:
    Vim 界面示意圖:展示命令模式與插入模式切換

2. Vim 核心工作模式(5 種模式詳解)

Vim 的核心優勢是“模式化編輯”,不同模式對應不同操作場景,新手可先掌握前 3 種基礎模式,后續逐步熟悉剩余模式。模式分類及操作邏輯如下表:

模式類型觸發方式核心用途退出方式(返回命令模式)新手重點度
命令模式(默認)啟動 Vim 或按 Esc光標移動、復制/刪除/撤銷等無需退出(默認狀態)★★★★★
插入模式i(光標前)/a(光標后)/o(新行)輸入文本內容Esc★★★★★
命令行模式(底行):(即 Shift+;保存、退出、編譯、搜索等Esc 或執行命令后返回★★★★☆
可視模式(塊級/行級)Ctrl+v(塊級)/v(字符級)/V(行級)批量注釋、刪除、復制Esc★★★☆☆
替換模式Shift+r(即 R實時替換光標后字符Esc★★☆☆☆

關鍵規則:插入模式、命令行模式、可視模式、替換模式之間無法直接切換,必須先按 Esc 返回命令模式,再切換至其他模式。

  • 模式切換邏輯參考:
    Vim 模式切換示意圖:展示各模式間的切換關系

3. 命令模式:高效操作核心區

命令模式無需觸發,啟動后默認進入,所有操作通過“快捷鍵命令”完成,按功能分類如下:

(1)光標定位(精準移動,告別方向鍵)
  • 行級定位:

    • 跳轉到第 n 行:n gg(n 為數字,如 5 gg 跳轉到第 5 行,無需加“+”);
    • 跳轉到文件首行:gg(無數字,直接按 gg);
    • 跳轉到文件末尾:G(即 Shift+G無需加數字,原“n+Shift+G”為錯誤命令,會導致跳轉到第 n 行而非末尾)。
  • 行內定位:

    • 行尾:Shift+$(光標快速移到當前行最后一個字符);
    • 行首:Shift+^(光標快速移到當前行第一個非空字符);
    • 方向替代(兼容無方向鍵設備):h(左)、j(下)、k(上)、l(右)(原“左下上右”順序錯誤,需糾正為“左、下、上、右”);
    • 單詞級移動:w(跳轉到下一個單詞開頭)、b(跳轉到上一個單詞開頭)。
(2)編輯命令(復制、刪除、撤銷)
  • 復制與粘貼:
    • 復制 n 行:n yy(如 3 yy 復制當前行及下方共 3 行);
    • 粘貼:n p(將復制內容粘貼到當前行下方,n 為粘貼次數,如 2 p 粘貼 2 次)。
  • 撤銷與重做:
    • 撤銷上一步:u(可連續撤銷,只要不退出 Vim);
    • 重做撤銷操作:Ctrl+r(恢復被 u 撤銷的步驟)。
  • 刪除與剪切:
    • 刪除 n 行(剪切):n dd(如 2 dd 刪除當前行及下方 1 行,刪除內容可通過 p 粘貼,等同于“剪切”);
    • 字符級刪除:x(刪除光標后 1 個字符)、X(刪除光標前 1 個字符)。
  • 其他實用命令:
    • 大小寫轉換:Shift+~(光標所在字符切換大小寫,按 n Shift+~ 連續轉換 n 個字符);
    • 局部替換:n r(從光標開始替換 n 個字符,如 4 r1 將光標及后續 3 個字符替換為 1)。
(3)模式切換命令
  • 進入替換模式:Shift+r(即 R),此時輸入的字符會直接覆蓋光標后的字符,界面顯示 --REPLACE-- 提示;
    Vim 替換模式示意圖:展示實時替換字符的效果
  • 進入插入模式:i(光標前插入)、a(光標后插入)、o(當前行下方新增一行并插入),按需選擇即可(如在單詞末尾補全用 a,新增行寫代碼用 o)。

4. 命令行模式(底行模式):文件與編譯操作

: 觸發命令行模式,輸入命令后按回車執行,核心命令按場景分類:

(1)文件基礎操作
  • 保存與退出:
    • :w:僅保存文件(不退出,適合編輯中階段性保存);
    • :q:退出 Vim(需先保存,未保存時會報錯);
    • :wq:保存并退出(等同于命令模式的 Shift+zz);
    • :!:強制執行(如 :q! 強制退出不保存、:w! 強制保存只讀文件)。
  • 行號控制:
    • :set nu:顯示行號(寫代碼查錯必備);
    • :set nonu:隱藏行號(需簡潔界面時使用)。
(2)搜索與替換
  • 關鍵詞搜索::/關鍵詞(如 :/printf,回車后定位到第一個匹配項,按 n 找下一個,Shift+n 找上一個);
  • 全局替換:::%s/舊內容/新內容/g% 表示整個文件,s 表示替換,g 表示全局匹配,如 :%s/int/long/g 將所有 int 改為 long);
    Vim 全局替換示意圖:展示底行模式下的替換命令與效果
(3)編譯與運行(以 C 語言為例)
  • 編譯代碼::! gcc 源碼文件 -o 輸出文件名(如 :! gcc code.c -o myprog,生成可執行文件 myprog);
    • 簡化編譯:若無需自定義文件名,可直接輸入 :! gcc code.c(默認生成 a.out);
  • 運行程序::! ./輸出文件名(如 :! ./myprog,執行編譯后的程序并查看輸出);
  • 快速執行歷史命令:按 :! 后加“命令首字母”,按 Tab 鍵可補全歷史命令(如 :!g 補全 ! gcc code.c)。
(4)分屏操作(多文件同時編輯)
  • 垂直分屏::vs 文件名(如 :vs test.c,在當前窗口右側新增分屏并打開 test.c,光標在哪就從哪個窗口分屏);
    Vim 垂直分屏示意圖:展示兩個文件同時編輯的分屏界面
  • 分屏切換:Ctrl+ww(在多個分屏間循環切換,按一次切換一個窗口);
  • 關閉分屏:在目標分屏中輸入 :q(若為最后一個分屏則退出 Vim)。

5. 可視模式:批量操作神器

可視模式主要用于“批量選中文本”,其中 塊級可視模式Ctrl+v 觸發)最適合代碼注釋、刪除等場景,操作步驟如下:

(1)批量添加注釋(以 C 語言 // 為例)
  1. 命令模式下按 Ctrl+v 進入塊級可視模式;
  2. j/k 方向鍵選中需要注釋的所有行(僅需選中每行的開頭位置,無需全選);
  3. Shift+i 進入“塊插入模式”,輸入注釋符號 //(此時僅第一行顯示輸入內容);
  4. Esc 鍵,選中的所有行開頭會自動添加 //,完成批量注釋;
    Vim 批量注釋示意圖:展示塊級可視模式選中與注釋添加過程
(2)批量取消注釋
  1. 命令模式下按 Ctrl+v 進入塊級可視模式;
  2. h/l/j/k 選中所有行的 // 符號(確保僅選中注釋部分,不包含代碼);
  3. d 鍵刪除選中的 //,所有行注釋同步取消;
    Vim 批量取消注釋示意圖:展示塊級可視模式選中注釋符號與刪除過程
(3)批量剪切/復制
  • 批量剪切:選中內容后按 d 鍵,直接刪除并保存到剪貼板;
  • 批量復制:選中內容后按 y 鍵,復制到剪貼板,再按 p 粘貼到目標位置。

6. Vim 配置:自定義你的編輯器

Vim 支持通過 ~/.vimrc 文件自定義功能(如默認顯示行號、自動縮進),配置僅對當前用戶生效,步驟如下:

(1)基礎配置流程(新手必備)
  1. 返回家目錄:終端輸入 cd ~~ 代表當前用戶的主目錄,如 /home/yourname);
  2. 創建配置文件:輸入 touch .vimrc.vimrc 是 Vim 的默認配置文件,前綴 . 表示隱藏文件);
  3. 編輯配置文件:輸入 vim .vimrc,進入 Vim 編輯界面;
  4. 添加基礎配置(可直接復制以下內容,按 Esc 后輸入 :wq 保存生效):
    " 顯示行號(寫代碼查錯必備)
    set nu
    " Tab 鍵對應 4 個空格(符合多數代碼縮進規范)
    set tabstop=4
    " 自動縮進(新行與上一行縮進對齊,寫循環/函數時不用手動縮進)
    set autoindent
    " 高亮當前行(方便定位光標位置)
    set cursorline
    " 插入模式下按 jj 快速返回命令模式(替代 Esc 鍵,更順手)
    inoremap jj <Esc>
    " 搜索時忽略大小寫(輸入 /Printf 和 /printf 效果一致)
    set ignorecase
    
(2)進階配置與模式查詢
  • 進階配置:若需代碼補全、主題美化等功能,可創建 ~/.vim 目錄,下載插件(如 Vundle 插件管理器)放入該目錄,具體配置可參考 AI 或 Vim 插件文檔;
  • 查看所有模式:vim-modes 命令錯誤(Vim 無此命令),正確方式是在 Vim 內輸入 :help modes 并回車,查看官方模式說明文檔;
    Vim 模式說明文檔示意圖:展示通過 help 命令查看模式的界面
  • 配置效果參考:
    Vim 配置示例示意圖:展示配置后的行號、高亮等效果

注意:不同用戶的 Vim 配置相互獨立(每個用戶的 ~/.vimrc 僅作用于自己),無需擔心影響其他用戶。


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

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

相關文章

【Day 12】73.矩陣置零

文章目錄73.矩陣置零題目&#xff1a;思路&#xff1a;方法一&#xff1a;用兩個標記數組&#xff08;易理解&#xff0c;額外空間 O(mn)&#xff09;思路&#xff08;直觀&#xff09;舉例&#xff08;[[1,1,1],[1,0,1],[1,1,1]]&#xff09;優缺點代碼實現&#xff08;Go&…

Clustering Enabled Wireless Channel Modeling Using Big Data Algorithms

文章目錄Clustering TechniquesPartitioning-Based AlgorithmsDensity-Based AlgorithmsHierarchical-based algorithmsClustering Enabled Channel ModelingCluster-Based Channel ModelsClustering AlgorithmsClustering Techniques 聚類是一種已被廣泛用于數據分析的技術。…

基于「多模態大模型 + BGE向量檢索增強RAG」的兒童繪畫心理健康分析系統(vue+flask+AI算法)

一、項目演示視頻 基于「多模態大模型 BGE向量檢索增強RAG」的兒童繪畫心理健康分析系統(vueflaskAI算法)二、技術棧 前端技術棧 (web-vue) 核心框架: Vue 3.5.13 (Composition API) UI組件庫: Element Plus 2.9.4 狀態管理: Pinia 2.3.1 路由管理: Vue Router 4.5.0 HTTP客戶…

QML中的Component

目錄 &#x1f9e0; 核心概念&#xff1a;什么是 Component&#xff1f; &#x1f4ca; Component 的兩種主要形式 1. 內聯 Component&#xff08;在 QML 文件內部定義&#xff09; 2. 外部 Component&#xff08;單獨的 .qml 文件&#xff09; &#x1f3af; Component 的…

什么是模型訓練中的 特征提取,如何對光伏發電預測中的特征進行提取

&#x1f50d; 什么是模型訓練中的“特征提取” 定義&#xff1a;特征提取是從原始數據中提煉出對預測或分類最有用的信息的過程。它的目標是去掉冗余和噪聲&#xff0c;保留能最好反映數據規律的特征。 作用&#xff1a; 降低數據維度&#xff0c;減少計算量 提高模型的泛化…

Linux應急響應一般思路(三)

日志分析Linux日志分析Linux日志類型大致可以分為三類&#xff0c;內核和系統日志、用戶日志、應用日志內核和系統日志&#xff1a;這種日志主要由syslog管理、根據其配置文件/etc/syslog.conf中的設置決定內核消息和各種系統程序信息記錄到哪個位置用戶日志&#xff1a;用戶日…

【酒店酒水寄存管理效率低?】佳易王酒水寄存管理系統操作教程全解析

前言&#xff1a; &#xff08;一&#xff09;試用版獲取方式 資源下載路徑&#xff1a;進入博主頭像主頁第一篇文章末尾&#xff0c;點擊卡片按鈕&#xff1b;或訪問左上角博客主頁&#xff0c;通過右側按鈕獲取詳細資料。 說明&#xff1a;下載文件為壓縮包&#xff0c;使用…

Unity 套圈捕捉 UI 實現分享:橢圓環 Shader + 動態進度

Unity 套圈捕捉 UI 實現分享 期望表現效果 《拼貼冒險傳 / PatchQuest》 捕捉進度 動態UI實現效果 目標&#xff1a;角色 A 套圈怪物 B&#xff0c;進度環顯示圍繞角度。技術點&#xff1a;Shader 繪制橢圓環&#xff0c;支持描邊、順/逆時針,需要對兩個切口也進行描邊。 技術…

MyBatis-Plus代碼生成器

MyBatis-Plus 代碼生成器是一款高效、靈活的自動化工具,旨在簡化 Java 后端開發中的持久層代碼編寫。通過配置數據庫連接和模板參數,它可以一鍵生成實體類、Mapper 接口、XML 文件、Service 層及 Controller 層代碼,大幅提升開發效率,減少重復勞動。 核心優勢: 快速生成:…

06-導入Maven項目模塊

文章目錄1、文章介紹2、模塊復制3、導入pom文件4、效果圖1、文章介紹 視頻定位 2、模塊復制 復制資料“02.maven項目”中的兩個項目模塊到剛剛新建的項目文件路徑中 導入后的效果圖 3、導入pom文件 4、效果圖

Jenkins+docker 微服務實現自動化部署安裝和部署過程

Jenkins 是一款流行的開源自動化服務器&#xff0c;廣泛用于持續集成&#xff08;CI&#xff09;和持續交付&#xff08;CD&#xff09;流程的自動化。通過 Docker 部署 Jenkins 可以簡化安裝和配置過程&#xff0c;同時保證在不同環境下的一致性。本篇文章將介紹如何使用 Dock…

【芯片后端設計的靈魂:Placement的作用與重要性】

在芯片設計的浩瀚宇宙中&#xff0c;后端物理設計扮演著決定成敗的關鍵角色。其中&#xff0c;?Placement&#xff08;布局&#xff09;?? 作為整個流程的核心環節&#xff0c;被譽為芯片性能、功耗和面積的“奠基者”。今天&#xff0c;我們就來深入探討Placement的作用、重…

將FGUI的Shader全部預熱后,WebGL平臺沒有加載成功

1&#xff09;將FGUI的Shader全部預熱后&#xff0c;WebGL平臺沒有加載成功 2&#xff09;iOS如何確認內存擴展使用生效 3&#xff09;SpriteAtlasManager.atlasRequested延后一幀回調 4&#xff09;Unity如何使用Java 17打包 這是第442篇UWA技術知識分享的推送&#xff0c;精選…

Python二進制、八進制與十六進制高級操作指南:從底層處理到工程實踐

引言&#xff1a;為何需要掌握進制操作&#xff1f;在現代計算領域&#xff0c;直接操作不同進制的數值是一項核心技術能力。根據2024年Stack Overflow開發者調查報告&#xff1a;73%的低級系統開發涉及位級操作65%的網絡協議要求理解十六進制數據80%的硬件接口配置使用二進制控…

離線可用的網絡急救方案

在使用電腦的過程中&#xff0c;經常會遇到斷網的狀況&#xff0c;這種情況讓人十分頭疼&#xff0c;很多時候我們都不知道去哪里找相關的教程來解決這樣的問題。它能一鍵操作解決電腦的網絡故障問題&#xff0c;最關鍵的是它是完全免費的。它只需解壓就可以直接雙擊使用。把工…

華為云Stack環境中計算資源,存儲資源,網絡資源發放前的準備工作(中篇)

實驗流程說明再上期文章鏈接如下&#xff1a; 華為云Stack環境中計算資源&#xff0c;存儲資源&#xff0c;網絡資源發放前的準備工作&#xff08;上篇&#xff09; 華為云Stack環境中計算資源&#xff0c;存儲資源&#xff0c;網絡資源發放前的準備工作&#xff08;中篇篇&am…

設置密鑰連接服務器

要將本地電腦的 SSH 公鑰添加到服務器登錄&#xff0c;可按以下步驟操作&#xff0c;確保服務器僅允許密鑰認證&#xff1a; 一、將本地公鑰添加到服務器 &#xff08;前提&#xff1a;你已通過密碼或現有方式能登錄服務器&#xff0c;且本地已生成 SSH 密鑰對&#xff09; 1. …

k8s筆記04-常用部署命令

Kubernetes&#xff08;K8s&#xff09;部署與版本管理命令筆記 一、部署核心命令分類與應用場景 K8s中用于應用部署、版本控制與實例擴縮容的核心命令主要包括三類&#xff0c;分別對應“版本回滾”“手動擴縮容”“自動擴縮容”場景&#xff0c;是CKA考試中部署類題目的核心考…

[系統架構設計師]知識產權(二十)

[系統架構設計師]知識產權&#xff08;二十&#xff09; 一.知識產權的特性 1.特性 無體性&#xff1a;抽象財富 專有性&#xff1a;權利人同意或法律規定外&#xff0c;權利人以外的任何人不得享有或使用該項權力 地域性&#xff1a;只能在該國范圍內手法律保護 時間性&#x…

rk3566編譯squashfs報錯解決

項目場景&#xff1a; 提示&#xff1a;這里簡述項目相關背景&#xff1a; 編譯開源的rk3566代碼squashfs報錯&#xff0c;tspi_linux_sdk_repo_20240131.tar.gz 下之前先讀我 1.tspi_linux_sdk_20230916.tar.gz這個是之前老的沒有git和repo的版本&#xff0c;后面會刪除掉大家…