【Linux】VIM 編輯器,編輯加速引擎

目錄

  • vim中的五種常見模式介紹
  • VIM的基本操作
    • 安裝VIM
    • VIM中的模式切換
  • VIM指令集
    • 命令模式指令集
    • 底行模式指令集
    • 視圖模式指令集
    • 替換和插入模式
  • end

vim中的五種常見模式介紹

  • 正常/普通/命令模式【Normal mode】

控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode。在此模式下無法進行代碼編輯

  • 插入模式【Insert mode】

只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。該模式是我們后面用的最頻繁的編輯模式

  • 末行模式【Last line mode】

文件保存或退出,也可以進行文件替換,找字符串,列出行號等操作。 在命令模式下,shift+: 即可進入該模式。要查看你的所有模式:打開vim,底行模式直接輸入

  • 視圖模式

在正常模式按下v, V, Ctrl + v,可以進入可視模式。可視模式中的操作有點像拿鼠標進行操作,選擇文本的時候有一種鼠標選擇的即視感,有時候會很方便

  • 替換模式【Replace mode】

在正常模式按下R,可以進入可視模式。對于替換模式而言其實并沒有那么常用,因為在命令模式中就可以直接進行替換,也就是按下【r】鍵,然后直接對當前光標所在字符進行替換即可。但是每次只可替換一次或者批量替換,在【替換模式】中可連續替換,更加方便

VIM的基本操作

安裝VIM

sudo yum -y install vim	  //普通用戶
yum -y install vim	      //超級用戶
  • 如果你想要用vim編輯一個文件
VIM 文件名

在這里插入圖片描述

VIM中的模式切換

  • 當我們一進入vim的時候,便是【命令模式】,上在這個模式下無法對文本去進行編輯,只能對當前的文本/代碼進行一些基本的操作
  • 想要從命令模式切換為其他模式,就要按下對應的功能鍵,以下是vim中常見的5種模式
    在這里插入圖片描述
  • 注意:如果你不知道自己在什么模式下,無腦Esc

VIM指令集

命令模式指令集

  • vim可以直接用鍵盤上↑↓←→來進行移動移動,但正規的vim是用小寫英文字母「h」、「j」、「k」、「l」,分別控制光標左、下、上、右移一格.
  • 按「 $ 」:移動到光標所在行的“行尾”【shift + 4】
  • 按「^」:移動到光標所在行的“行首”【shift + 6】
  • 按「w」:光標跳到下個字的開頭
  • 按「b」:光標回到上個字的開頭
  • 按「e」:光標跳到下個字的字尾
  • 按[gg]:定位到文本第一行
  • 按[G]:定位到最后一行【shift + g】
  • 「#l」:光標移到該行的第#個位置,如:5l,56l(其他三個方向鍵h,k,j一樣可以組合用)
    在這里插入圖片描述
  • 按「ctrl」+「b」:屏幕往“后”(上)移動一頁
  • 按「ctrl」+「f」:屏幕往“前”(下)移動一頁
  • 按「ctrl」+「u」:屏幕往“后”(上)移動半頁
  • 按「ctrl」+「d」:屏幕往“前”(下)移動半頁
  • 復制粘貼
  • 「yw」:將光標所在之處到當前字尾的字符復制到緩沖區中。
  • 「#yw」:復制#個字到緩沖區
  • 「yy」:復制光標所在行到緩沖區。
  • 「#yy」:例如,「5yy」表示拷貝從光標所在的該行“往下數”5行文字【包括光標所在行】
  • 「p」:將緩沖區內的字符貼到光標所在位置這一行的下一行。
  • 「#p」:例如,「5p」表示拷貝從光標所在的該行“往下數”5行文字。【包括光標所在行
    ?注意:所有與“y”有關的復制命令都必須與“p”配合才能完成復制與粘貼功能?。】

在這里插入圖片描述

  • 「#x」:例如,「6x」表示刪除光標所在位置的“后面”6個字符【包含自己在內】
    「#X」:例如,「20X」表示刪除光標所在位置的“前面”20個字符【不包含自己在內】
    「dd」:刪除光標所在行
    「#dd」:刪除光標所在行開始向下#行【包括當前行

執行「p / #p」就可以達到裁剪的效果

底行模式指令集

  • List item在使用末行模式之前,請記住先按「ESC」鍵確定您已經處于正常模式,再按「:」冒號即可進入末行模式
  • set nu / set nonu」 —— 代碼前的行號
    在這里插入圖片描述

在這里插入圖片描述

  • 查找字符
  • 「/關鍵字」 —— 先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往后尋找到您要的關鍵字為止
  • 「?關鍵字」 —— :先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關鍵字為止
  • 對于「/」查找和「?」查找存在向前和向后的區別,我們通過動圖來看看
    在這里插入圖片描述
  • ?替換字符
  • 「%s/替換前的字符串/替換后的字符串/g」 —— %s可以看成是C語言中字符串的格式聲明符,g代表[global]整體的

在這里插入圖片描述

  • 保存及退出vim
  • 「q」 —— 直接退出
  • 「q!」 —— 強制退出
  • 「wq」 —— 保存并退出
  • 「wq!」 —— 保存并強制退出

分屏編寫工程

  • [vs 文件名] —— 創建文件
  • [ctrl + ww] —— 切換光標到不同的界面

視圖模式指令集

  • 在可視模式下,比較常用的一條指令就是多行注釋,放在這里將是因為它要配合【命令模式】和【底行模式】一起使用

多行注釋

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
取消多行注釋
在這里插入圖片描述

在這里插入圖片描述

替換和插入模式

這兩個太簡單了,插入模式按i進行進入,替換模式用shift+r進入分別可以進行插入字符和替換字符

end

對于這一節主要是指令的鍛煉,要多練一下就可以掌握,感謝大家的閱讀,快去練練吧。

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

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

相關文章

【Linux網絡】Socket 編程TCP

🌈個人主頁:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列專欄:https://blog.csdn.net/qinjh_/category_12891150.html 目錄 TCP socket API 詳解 socket(): bind(): listen(): accept(): connect V0…

記一次 .NET某固高運動卡測試 卡慢分析

一:背景 1. 講故事 年前有位朋友找到我,說他們的程序會偶發性卡慢 10s 鐘,在某些組合下會正常,某些組合下就會出現問題,解釋不了其中的原因,讓我幫忙看下怎么回事?截圖如下: priva…

硬件知識積累 單片機+ 光耦 + 繼電器需要注意的地方

1. 電路圖 與其數值描述 1.1 單片機引腳信號為 OPtoCoupler_control_4 PC817SB 為 光耦 繼電器 SRD-05VDC-SL-A 的線圈電壓為 67Ω。 2. 需注意的地方 1. 單片機的推挽輸出的電流最大為 25mA 2. 注意光耦的 CTR 參數 3. 注意繼電器線圈的 內阻 4. 繼電器的開啟電壓。 因為光耦…

IP組播技術與internet

1.MAC地址分為三類:廣播地址;組播地址;單播地址 2.由一個源向一組主機發送信息的傳輸方式稱為組播。 3.組播MAC地址,第一個字節的最后一位為1; 單播MAC地址,第一個字節的最后一位為0; 4.不能…

vue3+vite+ts使用daisyui/tailwindcss

vite創建vue3腳手架 npm init vitelatest myVue3 – --template vue cd .\myVue3\ npm i npm run dev 安裝tailwindcss/daisyui 依賴安裝 npm install -D tailwindcss postcss autoprefixer daisyui npx tailwindcss init -p 這條命令將生成postcss.config.js(因為加了…

大數據(7)Kafka核心原理揭秘:從入門到企業級實戰應用

目錄 一、大數據時代的技術革命1.1 消息中間件演進史1.2 Kafka核心設計哲學 二、架構深度解構2.1 核心組件拓撲2.1.1 副本同步機制(ISR) 2.2 生產者黑科技2.3 消費者演進路線 三、企業級應用實戰3.1 金融行業實時風控3.2 物聯網數據管道 四、生產環境優化…

spring boot大文件與多文件下載

一、簡單大文件下載&#xff1a; /*** 下載大文件* param path 路徑* param fileName 文件名* return* throws IOException*/ public static ResponseEntity<InputStreamResource> downloadFile(String path, String fileName) throws IOException {Path filePath Path…

第二節:React 基礎篇-受控組件 vs 非受控組件

一、場景題&#xff1a;設計一個實時搜索輸入框&#xff0c;說明選擇依據 受控組件 vs 非受控組件 核心區別 特征受控組件非受控組件數據管理由React狀態&#xff08;state&#xff09;控制通過DOM元素&#xff08;ref&#xff09;直接訪問更新時機每次輸入觸發onChange提交…

局部路由守衛

局部路由守衛為我們提供了更細粒度的路由控制&#xff0c;允許我們在特定的路由或組件級別添加鑒權和邏輯處理。局部路由守衛分為 path 守衛和 component 守衛&#xff0c;它們分別適用于不同的場景。 path 守衛&#xff08;路由守衛&#xff09; path 守衛用于在進入特定路由…

Android 16應用適配指南

Android 16版本特性介紹 https://developer.android.com/about/versions/16?hlzh-cn Android 16 所有功能和 API 概覽 https://developer.android.com/about/versions/16/features?hlzh-cn#language-switching Android 16 發布時間 Android 16 適配指南 Google開發平臺&…

android display 筆記(十二)CPU,GPU,DPU的區別

CPU&#xff08;Central Processing Unit&#xff09;通用計算&#xff1a;處理復雜邏輯、分支預測、多任務調度。 低延遲&#xff1a;優先快速響應單線程任務。 GPU&#xff08;Graphics Processing Unit&#xff09; 高吞吐量并行計算&#xff1a;適合大規模數據并行處理。…

音頻轉文本:如何識別音頻成文字

Python腳本:MP4轉MP3并語音識別為中文 以下是一個完整的Python腳本,可以將MP4視頻轉換為MP3音頻,然后使用語音識別模型將音頻轉換為中文文本。 準備工作 首先需要安裝必要的庫: pip install moviepy pydub SpeechRecognition openai-whisper完整腳本 import os from m…

理解 MCP 協議的數據傳遞:HTTP 之上的一層“殼子

以下是以 CSDN 博客的風格記錄你對 MCP 協議數據傳遞的理解和發現&#xff0c;內容涵蓋了 MCP 協議基于 HTTP 的本質、JSON-RPC 的“殼子”作用&#xff0c;以及為什么熟悉 HTTP 協議就足以理解 MCP 的數據傳遞。文章面向技術社區&#xff0c;結構清晰&#xff0c;適合分享。 理…

基于ssm網絡游戲推薦系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 當今社會進入了科技進步、經濟社會快速發展的新時代。國際信息和學術交流也不斷加強&#xff0c;計算機技術對經濟社會發展和人民生活改善的影響也日益突出&#xff0c;人類的生存和思考方式也產生了變化。傳統網絡游戲管理采取了人工的管理方法&#xff0c;但這種管理方…

vue入門:指令

文章目錄 vue的內置指令說明&#xff1a; 自定義指令 vue的內置指令 Vue 指令的本質是&#xff1a; 聲明式的 DOM 操作接口&#xff08;隱藏底層 JavaScript 代碼&#xff09;。響應式數據的綁定媒介&#xff08;連接數據和視圖&#xff09;。模板編譯的標記&#xff08;最終…

oracle 索引失效

在 Oracle 11g 中&#xff0c;索引失效的常見原因包括函數修改列、隱式類型轉換、統計信息過時等&#xff0c;解決方法需結合版本特性&#xff08;如虛擬列、索引跳躍掃描&#xff09;。通過執行計劃分析、統計信息維護和合理使用提示&#xff08;Hints&#xff09;&#xff0c…

k8s藍綠發布

k8s藍綠發布 什么是藍綠部署K8S中如何實現藍綠部署k8s藍綠部署流程圖 什么是藍綠部署 參考: https://youtu.be/CLq_hA0lAd0 https://help.coding.net/docs/cd/best-practice/blue-green.html 藍綠部署最早是由馬丁福勒 2010年在他的博客中提出. 藍綠部署是一種軟件部署策略,用…

stm32面試

數據結構相關問題 stm32面試 數據結構相關問題 目錄基礎數據結構樹與圖排序與查找算法 Linux相關問題Linux系統基礎Linux命令與腳本Linux網絡與服務 操作系統相關問題操作系統基礎概念操作系統調度算法操作系統同步與通信 STM32相關問題STM32硬件基礎STM32編程與開發STM32應用與…

Mybatis 中 mappers標簽 package的使用

MyBatis 的配置文件中&#xff0c;<mappers> 標簽用于指定 MyBatis 應該加載哪些映射器&#xff08;Mapper&#xff09;。其中 package 屬性是一種便捷的方式來批量注冊多個映射器接口 package 屬性允許你指定一個包名&#xff0c;MyBatis 會自動掃描該包下的所有映射器…

設計模式 --- 訪問者模式

訪問者模式是一種行為設計模式&#xff0c;它允許在不改變對象結構的前提下&#xff0c;定義作用于這些對象元素的新操作。 優點&#xff1a; 1.??符合開閉原則&#xff1a;新增操作只需添加新的訪問者類&#xff0c;無需修改現有對象結構。 ??2.操作邏輯集中管理??&am…