linux | Vim 命令快捷操作

注:本文為過去的 “vim 使用筆記”


跳轉命令

跳轉命令

  • #:向前查找光標當前所在單詞,并跳轉到該單詞的上一個出現位置。
  • *:向后查找光標當前所在單詞,并跳轉到該單詞的下一個出現位置。

行內跳轉

  • 0:跳轉到當前行的行首。 [Home]
  • $:跳轉到當前行的行尾。 [End]
  • ^:跳轉到當前行的第一個非空字符處。
  • g_:跳轉到行尾最后一個非空白字符。
  • |n:跳轉到當前行的第 n 列(例如:|10 跳轉到第 10 列)。

文件內跳轉

  • gg:跳轉到文件第一行的行首。
  • G:跳轉到文件最后一行的行首。
  • G$:跳轉到文件最后一行的行尾。 [Ctrl + End]
  • :line-number:n:跳轉到指定行號的行(例如::100 跳轉到第 100 行)。
  • nG:跳轉到文件的第 n 行(例如:20G 跳轉到文件的第 20 行)。
  • /{pattern}:跳轉到第一個與 {pattern} 匹配的位置。

屏幕跳轉

  • H:跳轉到屏幕的最上方一行的第一個字符。
  • M:跳轉到屏幕的中央那一行的第一個字符。
  • L:跳轉到屏幕的最下方一行的第一個字符。
  • Ctrl + b:向上滾動一屏。
  • Ctrl + f:向下滾動一屏。

單詞跳轉

  • b:跳轉到前 1 個單詞的開頭(例如:5b 向前跳轉到第 5 個單詞的開頭)。
  • e:跳轉到當前單詞的末尾。
  • w:跳轉到下 1 個單詞的開頭(例如:5w 向后跳轉到第 5 個單詞的開頭)。
  • ge:向前跳轉到當前單詞的結尾(例如:3ge 向前跳轉到第 3 個單詞的結尾)。

字符跳轉

  • f{char}:跳轉到當前行下一個字符 {char} 的位置(例如:fa 跳轉到下一個字母 a)。
  • F{char}:跳轉到當前行上一個字符 {char} 的位置。
  • h:向左跳轉一個字符(例如:10h 向后跳轉 10 個字符)。
  • l:向右跳轉一個字符(例如:10l 向前跳轉 10 個字符)。

行間跳轉

  • j:向下跳轉一行(例如:5j 向下跳轉 5 行)。
  • k:向上跳轉一行(例如:5k 向上跳轉 5 行)。
  • n<Enter>:光標向下跳轉 n 行

刪除命令

字符刪除

  • x:刪除當前光標所在位置的字符,并將光標自動向后跳轉一個字符(例如:3x 刪除光標后的三個字符,3X 刪除光標前的三個字符)。
  • dl:同 x,刪除光標所在位置的字符(例如:5dl 刪除光標后的 5 個字符)。
  • dh:刪除光標所在位置的前一個字符。

行刪除

  • dd:刪除當前行(例如:5dd 向下刪除 5 行,共 6 行)。
  • D:刪除從光標當前位置一直到該行的末尾(包括光標所在的字符)。
  • d$:刪除至行尾。
  • d0:刪除至行首。

單詞刪除

  • dw:刪除光標所在位置到下 1 個單詞開頭之間的內容(不保留空格,例如:5dw 刪除連續的 5 個單詞)。
  • de:刪除從光標位置到當前單詞末尾的內容(不會刪除空格)。
  • dex:刪除從光標所在位置到當前單詞末尾之間的所有字符,包括當前單詞末尾的空格。
  • db:刪除光標所在單詞及其前面的空格。
  • daw:刪除光標所在的單詞及其后面的空格。
  • diw:刪除光標所在的單詞,并保留其前后的空格。
  • bdw:刪除光標所在位置到前 1 個單詞開頭之間的內容,并且不保留空格。

范圍刪除

  • :3,5d:刪除從第 3 行到第 5 行。
  • d1G:刪除從當前行到第一行之間的文本。
  • dG:刪除到文件尾,也就是刪除整個文檔的后半部分(包括光標所在的字符)。
  • dgg:刪除到文件首。
  • dj:刪除當前行和下一行(例如:5dj 刪除當前行及其下面的 5 行,即向下刪除 6 行)。
  • dk:刪除當前行和上一行(例如:5dk 刪除當前行及其上面的 5 行,即向上刪除 6 行)。
  • d2w:刪除光標后面的兩個單詞。
  • dX:刪除當前單詞前面的空格,但不包括當前單詞本身
  • wde:刪除從光標位置到下 1 個單詞開頭的內容,并且保留空格。其中數字可以指定要刪除的單詞數

其他

  • d{motion}: motion 可以是任何移動光標的命令,例如 dw, d2w, d$ 等.

注意: d 刪除的字符存放到 Vim 的剪貼板中,可以使用 p 命令將其粘貼到另一個位置。

復制和粘貼

復制

  • y:復制(默認是復制到"寄存器)。
  • "+y:復制到系統剪貼板(也就是 vim 的 + 寄存器)。
  • yw:復制 1 個單詞(例如:y3w 復制 3 個單詞)。
  • yy:復制游標所在的那一行(常用)。
  • nyy:n 為數字,復制光標所在的向下 n 行(例如:20yy 則是復制 20 行)。
  • y1G:復制游標所在行到第一行的所有數據。
  • yG:復制游標所在行到最后一行的所有數據。
  • y0:復制光標所在字符到該行行首的所有數據。
  • y$:復制光標所在字符到該行行尾的所有數據。
  • 5bgyw:復制光標所在單詞向前 5 個單詞
  • 5egyw:復制光標所在單詞向后 5 個單詞
  • 5b5egyw:復制光標所在單詞向前向后 3 個單詞

粘貼

  • p:粘貼(默認從"寄存器取出內容粘貼,在光標后)。
  • P:粘貼到光標前。
  • "+p:從系統剪貼板粘貼。
  • 5p:粘貼五份。

插入新行

  • o:在當前行下面插入 1 個新行,并將光標放置到新行的起始位置。
  • O:在當前行上面插入 1 個新行,并將光標放置到新行的起始位置。

插入模式

  • i:在當前光標位置處插入文本。
  • I:在當前行的開頭插入文本。
  • a:在當前光標位置后插入文本。
  • A:在當前行的結尾插入文本。
  • o:在當前行的下一行插入文本。
  • O:在當前行的上一行插入文本。

撤銷和重做

  • u:撤銷,或輸入 :undo 命令。
  • Ctrl + r:重做或輸入 :redo 命令。

替換和搜索

  • :%s/old/new/g:快速替換文本中所有的匹配項。
  • :%s/old/new/gi:快速替換文本中所有的匹配項,忽略大小寫。
  • :%s/[\\u4e00-\\u9fa5]//g:替換所有中文字符。
  • :g/^$/d:刪除所有空行。
  • :%s/\\s\\+/ /g:將連續空格替換為單個空格。
  • :g/^\\s*$/d:刪除包含空格的空行。
  • :%s/^\\s*\\n//:刪除文檔中的連續空格,只保留單個空格,并且刪除包含空格的空行。

代碼塊操作

代碼塊縮進

  • <:代碼塊左移(減少縮進)。
  • >:代碼塊右移(增加縮進)。
  • <<:減少選中行的縮進,塊狀可視模式下使用。
  • >>:增加選中行的縮進,塊狀可視模式下使用。

代碼塊排序

  • :sort:按字典順序排序選中的行。
  • :sort!:按逆字典順序排序選中的行。
  • :sort n:按數字順序排序選中的行。

代碼塊注釋

  • I:在當前行的開頭插入注釋(需要配合可視塊模式)。
  • A:在當前行的末尾添加注釋(需要配合可視塊模式)。
  • :%s/^/# /:在每一行的行首插入 “#” 作為注釋符號。

代碼塊格式化

  • =:重新格式化選中的代碼塊(自動縮進)。

其他命令

  • nohl:取消高亮。
  • :set whichwrap+=<,>:允許光標在行首和行尾跳轉到下一行或上一行。
  • :set nofixeol:禁用文件末尾自動添加新行。
  • :set mouse=a:啟用鼠標支持。
  • :set mousemodel=extend:設置鼠標滾動時光標的移動方式為擴展模式
  • :set number 或者 :set nu:顯示行號
  • :set nonumber 或者 :set nonu:不顯示行號

文件操作

保存并退出

  • :wq:保存文件并退出編輯器。
  • :x:保存文件并退出編輯器,僅當文件自上次保存以來有修改時。
  • :xit:保存文件并退出編輯器,無論文件是否被修改。
  • :ZZ:保存文件并退出編輯器

僅保存

  • :w:保存更改但不退出 Vim。
  • :w!:強制保存更改,忽略某些文件類型插件的警告。

保存到其他文件

  • :w <filename>:將更改保存到指定的文件名中,不退出 Vim。
  • :w! <filename>:強制將更改保存到指定的文件名中,忽略警告。

保存所有打開的文件

  • :wqa:保存所有打開的文件并退出 Vim。

撤銷保存

  • :undo:撤銷最近的一次保存操作。

設置自動保存

  • :set autowrite:自動保存更改,每次執行命令時自動寫入文件。
  • :set noautowrite:取消自動保存。

保存并退出所有打開的標簽頁

  • :wqa:在有多個標簽頁的情況下,保存所有更改并退出 Vim。

保存并關閉當前窗口

  • :close:關閉當前窗口
  • :winc:保存當前窗口的更改并關閉窗口,不退出 Vim。

保存并關閉所有窗口

  • :wqa:保存所有更改并關閉所有窗口,退出 Vim。

自定義快捷鍵

  • :map <C-f> <PageDown>:將 Ctrl+f 映射為 PageDown(向下滾動一頁)。
  • :map <C-b> <PageUp>:將 Ctrl+b 映射為 PageUp(向上滾動一頁)。
  • :map <C-s> :w<CR>: 將 Ctrl + s 映射為保存。

正則表達式和替換命令

插入特定字符

  • :%s/^/#/:在整個文件中的每一行的行首插入 “#” 字符
  • :1,5s/^/# /:在第 1 行到第 5 行之間的每一行的行首插入 “#” 字符

刪除特定字符

  • :%s/^#//:刪除整個文件中的每一行的行首的 “#” 字符
  • :1,5s/^# //:刪除第 1 行到第 5 行之間的每一行的行首插入的 “#” 字符

插入行首和行尾字符

  • :%s/^/\\/\\/:在每一行的行首插入 “//”
  • :1,5s/^/# /:在第 1 行到第 5 行的行首插入 "# "

刪除行首和行尾字符

  • :%s/^\\s\\+//:刪除每行行首的空格
  • :%s/\\s\\+$//:刪除每行行尾的空格

替換文本

  • :%s/old/new/g:將文件中所有的 “old” 替換為 “new”
  • :%s/old/new/gi:將文件中所有的 “old” 替換為 “new”,忽略大小寫
  • :%s/\\n//g:刪除所有的換行符
  • :%s/\\r//g:刪除所有的回車符
  • :%s/\\t//g:刪除所有的制表符

特定范圍替換

  • :<起始行號>,<結束行號>s/^/<插入的字符>/:在特定范圍的行上執行插入操作
  • :<起始行號>,<結束行號>s/^<要刪除的字符>//:在特定范圍的行上執行刪除操作

未完待續……

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

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

相關文章

樹莓派3B+的初步使用

樹莓派3B的初步使用 一、安裝使用樹莓派系統1.將系統寫入SD卡2.登錄樹莓派系統3.用C和Python編譯運行hello world 一、安裝使用樹莓派系統 1.將系統寫入SD卡 首先&#xff0c;準備至少16GB大小的SD卡以便裝入樹莓派系統&#xff0c;將SD卡插入讀卡器后連接電腦準備給SD卡寫入…

基于Windows11的DockerDesktop安裝和布署方法簡介

基于Windows11的DockerDesktop安裝和布署方法簡介 一、下載安裝Docker docker 下載地址 https://www.docker.com/ Download Docker Desktop 選擇Download for Winodws AMD64下載Docker Desktop Installer.exe 雙點擊 Docker Desktop Installer.exe 進行安裝 測試Docker安裝是…

文檔處理控件Aspose.Total教程:使用 C# 將 Obsidian Markdown 轉換為 OneNote

Obsidian 是一款廣泛使用的基于 Markdown 的筆記應用程序。它提供了一種強大而有效的方式來構建和組織想法。用戶可以無縫地連接他們的想法&#xff0c;提高清晰度和工作效率。另一方面&#xff0c;OneNote 是 Microsoft 的一款功能強大的筆記應用程序。它還可以幫助用戶組織他…

第5章:vuex

第5章&#xff1a;vuex 1 求和案例 純vue版2 vuex工作原理圖3 vuex案例3.1 搭建vuex環境錯誤寫法正確寫法 3.2 求和案例vuex版細節分析源代碼 4 getters配置項4.1 細節4.2 源代碼 5 mapState與mapGetters5.1 總結5.2 細節分析5.3 源代碼 6 mapActions與mapMutations6.1 總結6.2…

迷你世界腳本對象庫接口:ObjectLib

對象庫接口&#xff1a;ObjectLib 迷你世界 更新時間: 2023-04-26 20:21:09 具體函數名及描述如下: 序號 函數名 函數描述 1 getAreaData(...) 獲取區域數據 2 getPositionData(...) 獲取位置數據 3 getLivingData(...) 獲取生物數據 4 getItemDat…

測試是如何跟進和管理 bug

測試在跟進和管理 Bug定位精確、問題反饋及時、修復閉環高效 三大關鍵環節中起到了至關重要的作用。Bug定位精確 是整個流程的基礎&#xff0c;通過詳細記錄和復現問題&#xff0c;可以幫助開發團隊迅速找出缺陷根源&#xff1b;而及時有效的反饋機制則確保問題不會被遺漏&…

運動控制卡--固高實用

目錄 組件 配置參數 編程控制 組件 我手頭有固高卡&#xff0c;記錄使用。 用運動控制卡 伺服&#xff08;步進&#xff09;電機搭建一個運動控制系統&#xff0c;主要包括&#xff1a;1、控制器 2、端子板 1、控制器 2、端子板 3、伺服&#xff08;步進&#xff09;…

2025年能源工作指導意見

2025年是“十四五”規劃收官之年&#xff0c;做好全年能源工作意義重大。為深入貫徹落實黨中央、國務院決策部署&#xff0c;以能源高質量發展和高水平安全助力我國經濟持續回升向好&#xff0c;滿足人民群眾日益增長的美好生活用能需求&#xff0c;制定本意見。 一、總體要求…

鍵值對(C++實現)

目錄 鍵值對的定義 鍵值對的底層實現 鍵值對的作用 鍵值對的使用 對鍵值對中的值的搜索 一、鍵值對的定義 鍵值對&#xff08;Key-Value Pair&#xff09;是一種數據結構&#xff0c;用于存儲和表示兩個相關聯的值。在鍵值對中&#xff0c;一個值被關聯到一個唯一的鍵上&…

使用 Docker 部署 RabbitMQ 并實現數據持久化

非常好&#xff01;以下是一份完整的 Docker 部署 RabbitMQ 的博客文檔&#xff0c;包含從安裝到問題排查的詳細步驟。你可以直接將其發布到博客中。 使用 Docker 部署 RabbitMQ 并實現數據持久化 RabbitMQ 是一個開源的消息隊列系統&#xff0c;廣泛應用于分布式系統中。使用…

springboot429-基于springboot的教務管理系統(源碼+數據庫+純前后端分離+部署講解等)

&#x1f495;&#x1f495;作者&#xff1a; 愛笑學姐 &#x1f495;&#x1f495;個人簡介&#xff1a;十年Java&#xff0c;Python美女程序員一枚&#xff0c;精通計算機專業前后端各類框架。 &#x1f495;&#x1f495;各類成品Java畢設 。javaweb&#xff0c;ssm&#xf…

my學習網址

文章目錄 1.軟件版本管控GIT學習網站大全1官方文檔類2在線教程類3互動學習類4問答社區類 Linux學習網址1、 Linux命令行與shell腳本編程大全 1.軟件版本管控 GIT學習網站大全 廖雪峰網站 以下為你推薦不同類型的學習Git的網站&#xff1a; 1官方文檔類 Git官方文檔 網址&am…

Best practice-生產環境中加鎖的最佳實踐

什么是死鎖&#xff1f; 場景&#xff1a;圖書館有兩個相鄰的儲物柜&#xff08;柜子A和柜子B&#xff09;&#xff0c;小明和小紅需要同時使用這兩個柜子才能完成借書流程。 互斥資源 每個柜子只有一把鑰匙&#xff0c;且一次只能被一人使用&#xff08;資源不可共享&#x…

極狐GitLab 17.9 正式發布,40+ DevSecOps 重點功能解讀【四】

GitLab 是一個全球知名的一體化 DevOps 平臺&#xff0c;很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab 是 GitLab 在中國的發行版&#xff0c;專門為中國程序員服務。可以一鍵式部署極狐GitLab。 學習極狐GitLab 的相關資料&#xff1a; 極狐GitLab 官網極狐…

黃昏時間戶外街拍人像Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色介紹 黃昏時分有著獨特而迷人的光線&#xff0c;使此時拍攝的人像自帶一種浪漫、朦朧的氛圍 。通過 Lr 調色&#xff0c;可以進一步強化這種特質并根據不同的風格需求進行創作。Lr&#xff08;Lightroom&#xff09;作為專業的圖像后期處理軟件&#xff0c;提供了豐富的調色…

Spring Boot 項目中 Redis 常見問題及解決方案

目錄 緩存穿透緩存雪崩緩存擊穿Redis 連接池耗盡Redis 序列化問題總結 1. 緩存穿透 問題描述 緩存穿透是指查詢一個不存在的數據&#xff0c;由于緩存中沒有該數據&#xff0c;請求會直接打到數據庫上&#xff0c;導致數據庫壓力過大。 解決方案 緩存空值&#xff1a;即使…

信息系統項目管理師--整合管理

信息系統項目管理師–整合管理

關于tomcat使用中瀏覽器打開index.jsp后中文顯示不正常是亂碼,但英文正常的問題

如果是jsp文件就在首行加 “<% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %>” 如果是html文件 在head標簽加入&#xff1a; <meta charset"UTF-8"> 以jsp為例子&#xff0c;我們…

微服務的春天:基于Spring Boot的架構設計與實踐

微服務的春天:基于Spring Boot的架構設計與實踐 在如今的技術領域,微服務架構儼然成為了解決復雜系統開發與運維挑戰的關鍵利器。作為一名資深運維和自媒體創作者,筆名Echo_Wish,我將深入探討基于Spring Boot的微服務架構設計,結合實例代碼說明觀點,希望能為大家帶來啟發…

JVM參數調整

一、內存相關參數 1. 堆內存控制 -Xmx&#xff1a;最大堆內存&#xff08;如 -Xmx4g&#xff0c;默認物理內存1/4&#xff09;。-Xms&#xff1a;初始堆內存&#xff08;建議與-Xmx相等&#xff0c;避免動態擴容帶來的性能波動&#xff09;。-Xmn&#xff1a;新生代大小&…