Linux開發工具----vim

目錄

Linux編輯器-vim使用

1. vim的基本概念

正常/普通/命令模式(Normal mode)

插入模式(Insert mode)

底行模式(last line mode)

2. vim的基本操作

3. vim正常模式命令集

4. vim底行模式命令集

5. vim操作總結


(本篇文章相當于vim常用命令字典)

Linux編輯器-vim使用

我們先來看看vim的鍵盤分布圖,大家可以保存參考。

vi/vim的區別簡單點來說,它們都是多模式編輯器,不同的是vim是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在里面。例如語法加亮,可視化操作不僅可以在終端運行,也可以運行于x window、 mac os、 windows。我們統一按照vim來進行講解。

1. vim的基本概念

我們講解vim的三種模式(其實有好多模式,目前掌握這3種即可),分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:

正常/普通/命令模式(Normal mode)

控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode

插入模式(Insert mode)

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

底行模式(last line mode)

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

:help vim-modes

我這里一共有12種模式:six BASIC modes和six ADDITIONAL modes.

2. vim的基本操作

進入vim,在系統提示符號輸入vim及文件名稱后,就進入vim全屏幕編輯畫面:

$ vim test.c

不過有一點要特別注意,就是你進入vim之后,是處于[正常模式],你要切換到[插入模式]才能夠輸入文字。

[正常模式]切換至[插入模式]

輸入a:直接在當前行的后一個位置進行編輯

輸入i:直接在當前行的當前位置進行編輯

輸入o:另起新的一行進行編輯

[插入模式]切換至[正常模式]

目前處于[插入模式],就只能一直輸入文字,如果發現輸錯了字,想用光標鍵往回移動,將該字刪除,可以先按一下「ESC」鍵轉到[正常模式]再刪除文字。當然,也可以直接刪除。

[正常模式]切換至[底行模式]

「shift + ;」, 其實就是輸入「:」

退出vim及保存文件,在[正常模式]下,按一下「:」冒號鍵進入「Last line mode」,例如:

: w (保存當前文件)

: wq (輸入「wq」,存盤并退出vim)

: q! (輸入q!,不存盤強制退出vim)

3. vim正常模式命令集

插入模式

按「i」切換進入插入模式「insert mode」,按“i”進入插入模式后是從光標當前位置開始輸入文件;

按「a」進入插入模式后,是從目前光標所在位置的下一個位置開始輸入文字;

按「o」進入插入模式后,是插入新的一行,從行首開始輸入文字。

從插入模式切換為命令模式

按「ESC」鍵。

移動光標

vim可以直接用鍵盤上的光標來上下左右移動,但正規的vim是用小寫英文字母「h」、「j」、「k」、 「l」,分別控制光標左、下、上、右移一格

按「G」:移動到文章的最后

按「 $ 」:移動到光標所在行的“行尾”

按「^」:移動到光標所在行的“行首”

按「w」:光標跳到下個字的開頭

按「e」:光標跳到下個字的字尾

按「b」:光標回到上個字的開頭

按「#l」:光標移到該行的第#個位置,如:5l,56l

按[gg]:進入到文本開始 按[shift+g]:進入文本末端

按「ctrl」+「b」:屏幕往“后”移動一頁

按「ctrl」+「f」:屏幕往“前”移動一頁

按「ctrl」+「u」:屏幕往“后”移動半頁

按「ctrl」+「d」:屏幕往“前”移動半頁

刪除文字

「x」:每按一次,刪除光標所在位置的一個字符

「#x」:例如,「6x」表示刪除光標所在位置的“后面(包含自己在內)”6個字符

「X」:大寫的X,每按一次,刪除光標所在位置的“前面”一個字符

「#X」:例如,「20X」表示刪除光標所在位置的“前面”20個字符

「dd」:刪除光標所在行 「#dd」:從光標所在行開始刪除#行

復制

「yw」:將光標所在之處到字尾的字符復制到緩沖區中。

「#yw」:復制#個字到緩沖區

「yy」:復制光標所在行到緩沖區。

「#yy」:例如,「6yy」表示拷貝從光標所在的該行“往下數”6行文字。

「p」:將緩沖區內的字符貼到光標所在位置。注意:所有與“y”有關的復制命令都必須與“p”配合才能完成復制與粘貼功能。

替換

「r」:替換光標所在處的字符。

「R」:替換光標所到之處的字符,直到按下「ESC」鍵為止。

撤銷上一次操作

「u」:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作。按多次“u”可以執行多次回復。

「ctrl + r」: 撤銷的恢復

更改

「cw」:更改光標所在處的字到字尾處

「c#w」:例如,「c3w」表示更改3個字

跳至指定的行

「ctrl」+「g」列出光標所在行的行號。

「#G」:例如,「15G」,表示移動光標至文章的第15行行首。

4. vim底行模式命令集

在使用底行模式之前,請記住先按「ESC」鍵確定您已經處于正常模式,再按「:」冒號即可進入底行模式。

列出行號

「set nu」: 輸入「set nu」后,會在文件中的每一行前面列出行號。

跳到文件中的某一行

「#」:「#」號表示一個數字,在冒號后輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字15, 再回車,就會跳到文章的第15行。

查找字符

「/關鍵字」: 先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按 「n」會往后尋找到您要的關鍵字為止。

「?關鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直 按「n」會往前尋找到您要的關鍵字為止。

保存文件

「w」: 在冒號輸入字母「w」就可以將文件保存起來

離開vim

「q」:按「q」就是退出,如果無法離開vim,可以在「q」后跟一個「!」強制離開vim。 「wq」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。

5. vim操作總結

三種模式

正常模式 插入模式 底行模式

我們一共有12種總模式,大家下來可以研究一下

vim操作

打開,關閉,查看,查詢,插入,刪除,替換,撤銷,復制等等操作。

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

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

相關文章

基于云函數的自習室預約微信小程序+LW示例參考

全階段全種類學習資源,內涵少兒、小學、初中、高中、大學、專升本、考研、四六級、建造師、法考、網賺技巧、畢業設計等,持續更新~ 文章目錄 [TOC](文章目錄) 1.項目介紹2.項目部署3.項目部分截圖4.獲取方式 1.項目介紹 技術棧工具:云數據庫…

卷積神經網絡與計算機視覺:從數學基礎到實戰應用

卷積神經網絡與計算機視覺:從數學基礎到實戰應用 摘要 本文深入解析卷積神經網絡(CNN)的核心原理及其在計算機視覺中的應用。首先介紹卷積與互相關的數學定義及在神經網絡中的實際應用差異,接著從系統設計視角分析卷積的線性代數…

從Manus到OpenManus:多智能體協作框架如何重構AI生產力?

文章目錄 Manus:封閉生態下的通用AI智能體OpenManus:開源社區的閃速復刻挑戰與未來:框架落地的現實邊界當前局限性未來演進方向 OpenManus使用指南1. 環境配置2. 參數配置3. 替換搜索引擎4. 運行效果 協作框架開啟AI生產力革命 Manus&#xf…

js 使用 Web Workers 來實現一個精確的倒計時,即使ios手機鎖屏或頁面進入后臺,倒計時也不會暫停。

## 效果如上 <!-- 將 main.js 和 worker.js 放在同一個目錄下&#xff0c;然后在 HTML 文件中引入 main.js --><!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&q…

深入理解 Linux 中的 -h 選項:讓命令輸出更“人性化”

在 Linux 系統中&#xff0c;命令行工具是系統管理員和普通用戶最常用的交互方式之一。然而&#xff0c;命令行輸出往往充滿了技術性術語和數字&#xff0c;對于初學者或非技術用戶來說可能顯得晦澀難懂。幸運的是&#xff0c;許多 Linux 命令都提供了一個非常實用的選項&#…

Docker Compose國內鏡像一鍵部署dify

克隆代碼 git clone https://github.com/langgenius/dify.git進入docker目錄 cd docker修改.env部分 # 將環境模版文件變量重命名 cp .env.example .env # 修改 .env,修改nginx的host和端口,避免端口沖突 NGINX_SERVER_NAME192.168.1.223 NGINX_PORT1880 NGINX_SSL_PORT1443…

紅隊OPSEC(安全運營)個人總結

OPSEC又稱&#xff1a;運營安全&#xff0c;是指在紅隊的視角下&#xff0c;藍隊對我方的威脅。 OPSEC漏洞的五個流程&#xff1a; 關鍵信息識別&#xff1a;指紅隊的關鍵信息不泄露&#xff0c;包括但不限于紅隊的攻擊意圖&#xff0c;能力&#xff0c;人員&#xff0c;活動及…

NO.29十六屆藍橋杯備戰|string九道練習|reverse|翻轉|回文(C++)

P5015 [NOIP 2018 普及組] 標題統計 - 洛谷 #include <bits/stdc.h> using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);string s;getline(cin, s);int sz s.size();int cnt 0;for (int i 0; i < sz; i){if (isspace(s[i]))continue…

MongoDB 觸發器實現教程

在傳統的關系型數據庫&#xff08;如 MySQL&#xff09;中&#xff0c;觸發器是一種強大的工具&#xff0c;它可以在特定的數據庫操作&#xff08;如插入、更新或刪除&#xff09;發生時自動執行一段代碼。然而&#xff0c;MongoDB 并沒有原生內置的觸發器概念。不過&#xff0…

C#控制臺應用程序學習——3.11

一、整型數字計算 如果我們想執行以下程序&#xff1a;程序提示用戶輸入一個數字并輸出 num 20 的結果&#xff0c;我們的思維應該是這樣的&#xff1a; using System;public class Class1 {public static void Main(string[] args){Console.WriteLine("Enter the first…

【C語言】指針篇

目錄 C 語言指針概述指針的聲明和初始化聲明指針初始化指針 指針的操作解引用操作指針算術運算 指針的用途動態內存分配作為函數參數 指針與數組數組名作為指針通過指針訪問數組元素指針算術和數組數組作為函數參數指針數組和數組指針指針數組數組指針 函數指針函數指針的定義和…

嵌入式音視頻通話SDK組件EasyRTC:全平臺設備兼容,智能硬件里的WebRTC調用實踐

在萬物互聯時代&#xff0c;智能硬件設備對實時音視頻通信的需求呈現爆發式增長。傳統基于PC或移動端的WebRTC方案難以滿足嵌入式設備在資源占用、低延遲傳輸和硬件適配等方面的特殊需求。本文將深入探討如何通過EasyRTC嵌入式音視頻通信SDK在嵌入式設備中實現高效的WebRTC視頻…

Aim Robotics電動膠槍:機器人涂膠點膠的高效解決方案

在自動化和智能制造領域&#xff0c;機器人技術的應用越來越廣泛&#xff0c;而涂膠和點膠作為生產過程中的重要環節&#xff0c;也逐漸實現了自動化和智能化。Aim Robotics作為一家專注于機器人技術的公司&#xff0c;其推出的電動膠槍為這一領域帶來了高效、靈活且易于操作的…

c語言筆記 數組進階題目的理解

題目&#xff1a;聲明一個二維 int 型數組 a&#xff0c;再聲明另一個一維數組指針數組 b&#xff0c;使該數組 b 的每一個指針分別指向二維數組 a 中的每一個元素(即每一個一維數組)&#xff0c;然后利用數組 b 計算數組 a 的和。 圖解&#xff1a;畫圖幫助理解 我們要清楚什…

Photo Works在線圖片編輯器:一鍵修復老照片,輕松煥新記憶

★【概況介紹】 今天突然收到我的朋友電腦出故障了,截圖給我,我一看就知道這個是缺少必要的組件引起的故障。結合這個問題,我來談談自己的解決思路和方法,希望能夠幫助到大家。幫助大家是我最開心的事情。以前只是幫朋友解決問題,沒有記錄下來,剛剛接觸到這個平臺,剛好可…

FANformer:融合傅里葉分析網絡的大語言模型基礎架構

近期大語言模型(LLM)的基準測試結果引發了對現有架構擴展性的思考。盡管OpenAI推出的GPT-4.5被定位為其最強大的聊天模型&#xff0c;但在多項關鍵基準測試上的表現卻不及某些規模較小的模型。DeepSeek-V3在AIME 2024評測中達到了39.2%的Pass1準確率&#xff0c;在SWE-bench Ve…

【 IEEE出版 | 快速穩定EI檢索 | 往屆已EI檢索】2025年儲能及能源轉換國際學術會議(ESEC 2025)

重要信息 主會官網&#xff1a;www.net-lc.net 【論文【】投稿】 會議時間&#xff1a;2025年5月9-11日 會議地點&#xff1a;中國-杭州 截稿時間&#xff1a;見官網 提交檢索&#xff1a;IEEE Xplore, EI Compendex, Scopus 主會NET-LC 2025已進入IEEE 會議官方列表!&am…

藍橋杯練題順序

有重復,適當選擇題目~共229道題&#xff01; 后續會發題解~ STL&#xff1a;9 3100 反轉字符串 [string簡單]---3100 -CSDN博客 2470 單調棧 [stack簡單]---2470 單調棧 [stack簡單]-CSDN博客 2254 括號匹配&#xff01; [stack簡單]---2254: 括號匹配&#xff01;-CSDN博客 …

react基礎語法視圖層類組件

react基礎語法視圖層&類組件 MVVM *區別mvc&mvvm 兩者的區別&#xff1a; 數據模型去渲染視圖。數據層改了&#xff0c;vue自己會監聽到幫我們拿最新的數據去渲染視圖&#xff1b;構建數據構建視圖&#xff0c;數據驅動的思想。這一套是非常相似的。 視圖中的內容改變&…

開發、科研、日常辦公工具匯總(自用,持續更新)

主要記錄匯總一下自己平常會用到的網站工具&#xff0c;方便查閱。 update&#xff1a;2025/2/11&#xff08;開發網站補一下&#xff09; update&#xff1a;2025/2/21&#xff08;補充一些AI工具&#xff0c;剛好在做AI視頻相關工作&#xff09; update&#xff1a;2025/3/7…