Linux開發工具——vim

📝前言:

上篇文章我們講了Linux開發工具——apt,這篇文章我們來講講Linux開發工具——vim

🎬個人簡介:努力學習ing
📋個人專欄:Linux
🎀CSDN主頁 愚潤求學
🌄其他專欄:C++學習筆記,C語言入門基礎,python入門基礎,C++刷題專欄


目錄

  • 一,什么是vim
  • 二,vim的五個常用模式
    • 1. 命令模式
      • 常用命令集
        • 1. 光標移動
        • 2. 文本編輯
        • 3. 查找與替換
    • 2. 底行模式
      • ZZ操作
    • 3. 插入模式
    • 4. 視圖模式
    • 5. 替換模式
  • 三,vim配置
    • vim配置文件的注釋

一,什么是vim

在Windows下,我們寫代碼通常依靠如:vs2022vs2022是一個集代碼編輯,代碼調試,代碼編譯…為一身的集成開發環境
而在Linux下,這些功能通常是分開使用不同的工具來完成的。vim就是一一個多模式編譯器

在這里插入圖片描述
操作很多,我們主要掌握幾個常用的!

進入vim的方式:vim 文件名 [+ n]n可選,跳轉到第n行。

二,vim的五個常用模式

vim共有12種模式,但是,我們先掌握vim的五個常用模式:

  • 命令模式(用于執行各種操作指令),直接Vim進入的普通模式
  • 插入模式(用于輸入和編輯文本內容)
  • 底行模式(用于配置設定、文件操作)
  • 視圖模式(用于對文本塊進行選擇、復制、刪除等批量操作)
  • 替換模式(用于逐個或全部替換指定位置的字符)

在這里插入圖片描述
命令模式是核心,任何模式回到命令模式都按Esc

打開vim,進入的默認是命令模式:
在這里插入圖片描述

1. 命令模式

只有插入模式可以編輯,命令模式就是執行命令的地方。

常用命令集

1. 光標移動

以下大部分操作都可以在輸入前先輸入一個數字n代表移動n次,即:移動到第n個。

  1. 上下左右h:左,j:下,k:上,l:右
  2. 行間移動gg:移動到第一行, shift + g:移動到最后一行, n + shift + g:移動到第n行(按完n,再一起按shift + g
  3. 行內移動shift + $:該行結尾,shift + ^:該行開頭
  4. 按單詞移動w后一個單詞,b前一個單詞
2. 文本編輯

大多數刪除都具有剪切效果,大多數也都可以前帶n

  1. 復制yy
  2. 刪除/剪切dd
  3. 粘貼p:在光標的下一行粘貼,P:在上一行粘貼
  4. 刪除x:刪除當前光標所在的字符,往右刪,X:往左刪
  5. 撤銷u 撤銷上一步操作;Ctrl + r 恢復被撤銷的操作

注意:撤銷操作:一旦退出文件編輯,就無法撤銷。但只是保存,沒有q退出文件編輯,都可以撤銷。

3. 查找與替換
  • 查找:按 / 后輸入要查找的內容,按回車鍵開始向后查找,按 n 查找下一個匹配項,按 N 查找上一個匹配項。(或者#:向上查找當前光標所在的單詞)
  • 替換r :替換當前光標所在的字符(先按r,再輸入新字符);R進入替換模式,之后輸入的字符會逐個替換當前光標所在的字符,按 Esc 退出替換模式。
  • 大小寫替換Ctrl + ~

2. 底行模式

輸入shift + ;進入底行模式
輸入:

  • w:保存當前?件
  • wq :存盤并退出vim
  • q!:不存盤強制退出vim(即如果有修改,不詢問你是否保存,普通的q會詢問)
  • set nu/nonu:設置(取消)行號,
  • ! 外部命令:無須退出vim,直接執行外部命令
  • %s /dst/src/[g/i]:用src替換dstg/i可選,g:全局替換,i忽略大小寫替換
  • vs new_src:分屏操作,這時候,光標在哪里,就是對哪個文件操作。用ctrl +ww實現切換光標所在的屏幕

ZZ操作

在vim模式下連按ZZ(大寫):保存當前文件并退出vim。相當于底行模式下輸入wq

3. 插入模式

沒什么好說的,編輯的地方
在這里插入圖片描述
底下會有一個INSERT的標志,寫完以后按Esc退出到命令模式,換到底行模式wq保存,或者直接ZZ保存并退出vim

4. 視圖模式

Ctrl +v進入視圖模式,主要用于區域選擇,進行區域操作。
如,進行區域注釋:

  1. 進入視圖模式后,hjkl進行區域選擇
  2. shift + i直接切換到插入模式
  3. 輸入//,進行注釋
  4. Esc回到命令模式,就會批量注釋之前區域選擇的行(相當于是在所選的行內都執行了輸入//的那一行的操作)

上述操作一般用于插入數據,刪除:

  1. Ctrl + v進入視圖模式
  2. 選中要刪除的內容
  3. d

5. 替換模式

R進入,進行批量化替換。

三,vim配置

vs2022這類編譯器,會有代碼補全,高亮等功能。但是vim如果想要實現這些功能需要自行配置。
vim在使用的時候會自動到用戶的目錄下搜索.vimrc配置文件,所以我們要配置的就是個人用戶的.vimrc文件。(注意:安裝vim的時候不會自動生成.vimrc文件,所以我們要touch ~/.vimrc,自己在個人用戶目錄下創建文件,然后進行配置)

配置vim,原?的配置可能功能不全,可以選擇安裝插件來完善配置(如實現代碼自動補全的功能)

這里提供一個GIthub上自動配置vim的項目,如果網絡不好clone不動的話,也可以考慮自己先下載zip到本地,然后上傳云服務器。

在這里插入圖片描述
有這個現實以后,代表你安裝好了。這時候你就可以自行安裝自己需要的插件了。(根據GIthub上的步驟,配置文件)

vim配置文件的注釋

Vim 配置文件.vimrc中使用 " 進行注釋。

推薦一篇文章:vim從入門到牛逼


🌈我的分享也就到此結束啦🌈
要是我的分享也能對你的學習起到幫助,那簡直是太酷啦!
若有不足,還請大家多多指正,我們一起學習交流!
📢公主,王子:點贊👍→收藏?→關注🔍
感謝大家的觀看和支持!祝大家都能得償所愿,天天開心!!!

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

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

相關文章

在 Langflow 中構建靈活的自定義組件:從基礎到高級實踐

本文深入探討了如何在 Langflow 平臺中創建功能豐富的自定義組件。通過詳細的目錄結構解析、分步實現指南和多個實戰案例,幫助開發者掌握利用 Python 生態擴展低代碼平臺的方法,打造高效的數據處理流程。 理解組件架構設計 自定義組件是在 Langflow 中創…

stm32+LTR-390UV使用教程含源碼

stm32LTR-390UV使用教程含源碼 (csdn首發源碼),本人大四學生,考研已上岸,畢設做的全向輪小車,這個是環境檢測部分LTR-390UV使用教程 文章目錄 目錄 文章目錄 前言 一、硬件準備與連接 二、數據手冊 1.…

【嵌入式系統設計師】知識點:第2章 嵌入式系統硬件基礎知識

提示:“軟考通關秘籍” 專欄圍繞軟考展開,全面涵蓋了如嵌入式系統設計師、數據庫系統工程師、信息系統管理工程師等多個軟考方向的知識點。從計算機體系結構、存儲系統等基礎知識,到程序語言概述、算法、數據庫技術(包括關系數據庫、非關系型數據庫、SQL 語言、數據倉庫等)…

Java 項目灰度發布的詳細實現與實踐

前言 灰度發布是一種通過逐步將新功能或更新推向一部分用戶來降低上線風險的技術。本文將詳細介紹如何在 Java 項目中實現灰度發布,并提供相關的配置參數、代碼示例以及 uml 圖,幫助您更好地理解和應用這一技術。 一、灰度發布的核心思想 灰度發布的核…

使用 Swift 實現 LRU 緩存淘汰策略

📌 實現思路 一、核心目標 我們要實現一個緩存類: 支持通過 get(key) 獲取緩存的值;支持通過 put(key, value) 寫入緩存;緩存容量有限,當超過容量時要淘汰最久未使用的元素。 二、為什么用「哈希表 雙向鏈表」 功…

C#中為自定義控件設置工具箱圖標

在C#中為自定義控件設置工具箱圖標,可通過以下步驟實現: ### 步驟說明: 1. **準備圖標文件** - 創建或選擇一個16x16像素的位圖(.bmp)文件,建議使用透明背景以確保清晰顯示。 2. **添加位圖到項目** -…

Linux數據庫:【數據庫基礎】【庫的操作】【表的操作】

目錄 一.數據庫基礎 1.1什么是數據庫 1.2基本使用 1.2.1連接服務器 1.2.2服務器,數據庫,表關系 1.2.3使用案例 1.2.4數據存儲結構 ?編輯 1.3MySQL架構 1.4SQL分類 1.5存儲引擎 1.5.1什么是存儲引擎 1.5.2查看存儲引擎 ?編輯 1.5.3存儲引擎…

CKPT文件是什么?

檢查點(Checkpoint,簡稱ckpt)是一種用于記錄系統狀態或數據變化的技術,廣泛應用于數據庫管理、機器學習模型訓練、并行計算以及網絡安全等領域。以下將詳細介紹不同領域中ckpt檢查點的定義、功能和應用場景。 數據庫中的ckpt檢查點…

Redis的公共操作命令

目錄 1.Key操作命令1.1 keys *1.2 exists <key]>1.3 type <key>1.4 del <key>1.5 unlink <key>1.6 ttl <key>1.7 expire <key> <秒數>1.8 move <key> <index> 2.庫操作命令2.1 select <index>2.2 dbsize2.3 flush…

【LLM】使用MySQL MCP Server讓大模型輕松操作本地數據庫

隨著MCP協議&#xff08;Model Context Protocol&#xff09;的出現&#xff0c;使得 LLM 應用與外部數據源和工具之間的無縫集成成為可能&#xff0c;本章就介紹如何通過MCP Server讓LLM能夠直接與本地的MySQL數據庫進行交互&#xff0c;例如新增、修改、刪除數據&#xff0c;…

【C++】從零實現Json-Rpc框架(2)

目錄 JsonCpp庫 1.1- Json數據格式 1.2 - JsonCpp介紹 ? 序列化接口 ? 反序列化接口 1.3 - Json序列化實踐 JsonCpp使用 Muduo庫 2.1 - Muduo庫是什么 2.2 - Muduo庫常見接口介紹 TcpServer類基礎介紹 EventLoop類基礎介紹 TcpConnection類基礎介紹 TcpClient…

語文常識推翻百年“R完備、封閉”論

?語文常識推翻百年“R完備、封閉”論 黃小寧 李四光&#xff1a;迷信權威等于扼殺智慧。語文常識表明從西方傳進來的數學存在重大錯誤&#xff1a;將無窮多各異數軸誤為同一軸。 復平面z各點z的對應點zk的全體是zk平面。z面平移變換為zk&#xff08;k是非1正實常數&#xf…

【Vue】 核心特性實戰解析:computed、watch、條件渲染與列表渲染

目錄 一、計算屬性&#xff08;computed&#xff09; ? 示例&#xff1a; 計算屬性-methods實現&#xff1a;在插值模塊里&#xff0c;實現函數的調用功能 計算屬性-computed的實現&#xff1a; 計算屬性-簡寫&#xff1a; ? 特點&#xff1a; ?? 與 methods 的區別…

二叉樹 遞歸

本篇基于b站靈茶山艾府的課上例題與課后作業。 104. 二叉樹的最大深度 給定一個二叉樹 root &#xff0c;返回其最大深度。 二叉樹的 最大深度 是指從根節點到最遠葉子節點的最長路徑上的節點數。 示例 1&#xff1a; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&…

與 AI 共舞:解鎖自我提升的無限可能

與 AI 共舞&#xff1a;解鎖自我提升的無限可能 在數字化浪潮的洶涌沖擊下&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度重塑著世界的每一個角落。從日常生活的點滴便利到復雜工作的高效推進&#xff0c;AI 的力量無處不在。然而&#xff0c;面對 AI 的強…

【網絡安全論文】筑牢局域網安全防線:策略、技術與實戰分析

【網絡安全論文】筑牢局域網安全防線:策略、技術與實戰分析 簡述一、引言1.1 研究背景1.2 研究目的與意義1.3 國內外研究現狀1.4 研究方法與創新點二、局域網網絡安全基礎理論2.1 局域網概述2.1.1 局域網的定義與特點2.1.2 局域網的常見拓撲結構2.2 網絡安全基本概念2.2.1 網絡…

MoE Align Sort在醫院AI醫療領域的前景分析(代碼版)

MoE Align & Sort技術通過優化混合專家模型(MoE)的路由與計算流程,在醫療數據處理、模型推理效率及多模態任務協同中展現出顯著優勢,其技術價值與應用意義從以下三方面展開分析: 一、方向分析 1、提升醫療數據處理效率 在醫療場景中,多模態數據(如醫學影像、文本…

[ctfshow web入門] web4

前置知識 robots.txt是機器人協議&#xff0c;在使用爬蟲爬取網站內容時應該遵循的協議。協議并不能阻止爬蟲爬取&#xff0c;更像是一種道德規范。 假設robots.txt中寫道 Disallow: /admind.php&#xff0c;那我就暴露了自己的后臺&#xff0c;這屬于信息泄漏&#xff0c;攻擊…

innodb如何實現mvcc的

InnoDB 實現 MVCC&#xff08;多版本并發控制&#xff09;的機制主要依賴于 Undo Log&#xff08;回滾日志&#xff09;、Read View&#xff08;讀視圖&#xff09; 和 隱藏的事務字段。以下是具體實現步驟和原理&#xff1a; 1. 核心數據結構 InnoDB 的每一行數據&#xff08…

coding ability 展開第九幕(位運算——進階篇)超詳細!!!!

文章目錄 前言丟失的數字兩整數之和只出現一次的數字II消失的兩個數字總結 前言 上一篇博客&#xff0c;我們已經把位運算的基礎知識&#xff0c;以及基本運算都掌握啦 上次的習題還是讓人意猶未盡&#xff0c;今天我們來嘗試一下難一點的題目 位運算熟練起來真的讓人覺得做題是…