工作中常用Vim的命令

Hi, 我是你們的老朋友,主要專注于嵌入式軟件開發,有興趣不要忘記點擊關注【碼思途遠】


目錄

0. ctags -R

1.認識 Vim的幾種工作模式

2.高頻使用命令

2.1 修改文件

2.2 關于行號

2.3 刪除多行,刪除部分

2.4 復制粘貼

2.5 光標移動

2.6 撤銷命令

2.7 翻頁命令

2.8 查找和跳轉

2.9 替換文本

2.10 退出

Vim 命令大全

總結


Vim 對于做Linux 嵌入式相關的工作,Vim 應該都比較熟悉,本章節將總結一些使用頻率較高的一些相關操作,一些少用的這里就不再做介紹,說得太多,也記不住,以下將以實際情景進行介紹,基本可以完成相關基礎操作。

0. ctags -R

ctags -R 這個確實不是vim命令,但是為什么第一個就要介紹它,因為在Linux 中,如果使用Vim進行瀏覽代碼跳轉都是非常有用,所以一般會在代碼的根目錄下輸入:

ctags -R

1.認識 Vim的幾種工作模式

提到Vim 可能還不知道有幾種工作模式,根據網上分類有多種方式,有分3類,4類,6類,7類等等,這里考慮常用的方式分類為4種模式:

vim file.c開始進入的模式叫做?Normal 模式

當處于Normal模式下,輸入i,a,o 可以進入Insert 模式,也就是我們經常編輯的文件模式,退出Insert 模式直接按下Esc返回到Normal模式

當處于Normal 模式下,輸入v或者V進入Visual 模式可以進行選擇文本,進行一些剪切,復制等操作,按下Esc可以返回Normal 模式

當屬于Normal 模式下,輸入:可以進入Command 模式,命令以回車的方式又返回到Normal 模式

2.高頻使用命令

2.1 修改文件

# vim 打開文件
vim file.c
# 輸入i 就可以正常的操作,添加,刪除等操作,通過上下左右進行移動光標;

2.2 關于行號

# 顯示行號
:set nu
# 跳轉到xxx行號
:xxx
# 不要顯示行號
:set no nu

2.3 刪除多行,刪除部分

# 1. 非編輯模式下 
# 刪除當前行,按下dd
?
# 刪除多行,光標所在開始數,行數和d結合
# 刪除4行,按下:4d
?
?
# 2. 編輯模式下:
# 刪除范圍
 

2.4 復制粘貼

# 1. 采用行號為單位的復制
?
# yy 復制當前行
# p 在當前行下粘貼
# np 粘貼n次
?
# nyy 復制n行
?
# 2. Visual 模式下復制粘貼
?
# 按v進入可視模式,(大V是行可視化,小v是字符可視化,Ctrl+v 是塊可視化)
# 按下ctrl , 通過上下左右進行選擇區域,或者j,k,h,l選擇范圍
# 移動文件尾部G ,文件頭部gg
?
# 按下p 粘貼

2.5 光標移動

# 1. 方向性的有 ikhl
?
# 2. 移動到文件頭 gg, 移動到尾部 G
?
# 3. 移動到行首

2.6 撤銷命令

# 小寫u 撤銷
# 大寫U 撤銷對整行的操作
# Ctrl+r  即撤銷的撤銷

2.7 翻頁命令

# Ctrl+f 向下翻一頁
# Ctrl+b 向上翻一頁
?
# 當然你使用PgUp PgDn 也行。

2.8 查找和跳轉

# 查找
# /abc abc為你要查找的字符串
# /^abc  以abc為行首的行
# /abc$  以abc為行尾的行# n 往后查找
# N 往前查找# 跳轉行號
# :n n為行號

2.9 替換文本

# 當前文本中的admin 全部替換成 hywelstar
# :1,$s/admin/hywelstar/g 

2.10 退出

# :wq 保存并退出
# :q! 不保存并強制退出 
# :w file  保存到file 文件去
# 按下ZZ 直接退出

Vim 命令大全

這張圖應該都見過,比較全面

總結

本章節主要對Vim在工作中常用的命令進行整理,只需要掌握以上10個重要的,問題不大,再結合ctags 應該會更方面。如果不想使用Vim, 當然可以使用常用的代碼編輯工具eclipse, vscode , Source insight 等工具,但有時候在服務器上這種無界面畫或者又沒有samba, nfs 這種服務,采用Vim 看看。

推薦閱讀:

vim mode tips

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

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

相關文章

如何在 Vue 2 中使用 Swiper 5.4.5 處理靜態與后端數據不能切換問題

一、文章大綱 1.前言 介紹 Swiper 作為一款強大的輪播組件,常用于處理圖片、文章、商品等內容的滑動展示。 在 Vue.js 項目中集成 Swiper,尤其是在 Vue 2 中使用,常見的兩種數據來源:靜態數據與后端數據。 在 Vue 2 項目中集成 Swiper 5.4.5 2.如何通過 npm 安裝 Swiper…

究極炫酷3D立方體宇宙

演示動畫:https://life.mdjsjd.me/2024/12/27/3d-cube-animation/ 一個使用Python和Pygame制作的炫酷3D立方體動畫效果。結合了多種視覺特效,包括: 動態旋轉的3D立方體炫彩漸變的顏色系統星空背景粒子效果動態殘影拖尾效果深度透視投影 主要特性 動態變換: 立方…

什么是 Azure OpenAI ?了解微軟 Azure OpenAI 和 OpenAI 的關系

一、什么是Azure OpenAI ? 微軟已與 OpenAI 合作以實現三個主要目標: ?利用 Azure 的基礎結構(包括安全性、合規性和區域可用性),幫助用戶構建企業級應用程序。 ?在微軟產品(包括 Azure AI 產品以及以外…

Linux day 1129

家人們今天繼續學習Linux,ok話不多說一起去看看吧 三.Linux常用命令 3.1 Linux命令體驗 3.1.1 常用命令演示 在這一部分中,我們主要介紹幾個常用的命令,讓大家快速感 受以下 Linux 指令的操作方式。主要包含以下幾個指令: ls命…

mysql8 從C++源碼角度看 Statement cancelled due to timeout or client request異常

##Statement cancelled due to timeout or client request 異常 Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client requestat com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1932)at …

【數據結構-單調隊列】力扣1438. 絕對差不超過限制的最長連續子數組

給你一個整數數組 nums ,和一個表示限制的整數 limit,請你返回最長連續子數組的長度,該子數組中的任意兩個元素之間的絕對差必須小于或者等于 limit 。 如果不存在滿足條件的子數組,則返回 0 。 示例 1: 輸入&#x…

SAP HCM 標準報表與前臺操作的增強差異邏輯分析(rhgrenz4)

導讀 增強差異:SAP的HCM模塊組織和人事增強都有標準的增強點,不管你調用標準的函數還是前臺操作都會觸發對應的增強。所以很多業務不需要考慮那么多分散點,只要找到一個合適的增強點,就能解決很多和外圍系統集成的業務邏輯,今天遇…

【Spring】Spring DI(依賴注入)詳解——自動裝配——手動裝配與自動裝配的區別

在spring開發中,依賴注入(Dependency Injection,DI)是實現松耦合和高內聚設計的重要模式。它使得對象的創建和管理與其依賴關系分離,從而提高了代碼的可維護性、可測試性和靈活性。Spring框架通過IoC(控制反…

EZ-USB? FX3 USB 5 Gbps 外設控制器

EZ-USB? FX3 USB 5 Gbps 外設控制器 EZ-USB? FX3 提供 USB 5Gbps 至 32 位數據總線,并配備 ARM9,可為任何系統添加 USB 3.0 連接 英飛凌的 EZ-USB? FX3 是業界用途最廣泛的 USB 外圍設備控制器,可以為幾乎任何系統添加 USB 5Gbps 連接。 …

【數據倉庫】spark大數據處理框架

文章目錄 概述架構spark 架構角色下載安裝啟動pyspark啟動spark-sehll啟動spark-sqlspark-submit經驗 概述 Spark是一個性能優異的集群計算框架,廣泛應用于大數據領域。類似Hadoop,但對Hadoop做了優化,計算任務的中間結果可以存儲在內存中&a…

數據庫容災備份的意義+分類+執行工具!

數據庫容災解決方案的背景 數據庫容災(Disaster Recovery,DR)解決方案的背景主要源于企業對數據安全性、業務連續性和系統高可用性的需求。隨著數字化轉型的加速,企業的數據量迅猛增長,數據庫已成為支撐核心業務的關鍵…

PDF怎么壓縮得又小又清晰?5種PDF壓縮方法

PDF 文件在日常辦公與學習中使用極為頻繁,可想要把它壓縮得又小又清晰卻困難重重。一方面,PDF 格式本身具有高度兼容性,集成了文字、圖像、矢量圖等多樣元素,壓縮時難以兼顧不同元素特性,稍不注意,文字就會…

SpringBoot數據字典字段自動生成對應code和desc

效果:接口會返回orderType,但是這個orderType是枚舉的類型(1,2,3,4),我想多返回一個orderTypeDesc給前端展示,這樣前端就可以直接拿orderTypeDesc使用了。 1. 定義注解 …

【YashanDB知識庫】imp導入數據庫時,報錯YAS-08023

本文內容來自YashanDB官網,原文內容請見 https://www.yashandb.com/newsinfo/7849010.html?templateId1718516 **【問題分類】**數據導入導出 **【關鍵字】**imp、YAS-08023 【問題描述】 導出數據庫時,使用以下命令,導出正常&#xff1…

又一年。。。。。。

2024,渾渾噩噩的一年。 除了100以內的加減法(數據,數據,還是數據。。。。。。),似乎沒做些什么。 臉盲癥越來越重的,怕是哪天連自己都不認得自己的了。 看到什么,聽到什…

FreeRTOS: ISR(中斷服務例程)和 TCB(任務控制塊)

在討論 ISR(中斷服務例程)和 TCB(任務控制塊,Task Control Block)時,我們實際上是在探討 FreeRTOS 中兩個不同但又相互關聯的概念:一個是用于處理硬件或軟件觸發的中斷事件,另一個是…

GoldenDB組件及對應的用戶和進程

1. GoldenDB組件及對應的用戶和進程 GoldenDB數據庫由管理節點、全局事務節點GTM、計算節點CN、數據節點DN等組成。 1.1. 管理節點 管理節點分為集群管理、Insight運維管理平臺(InsightServer、RDB、ZK)。 1.1.1. 集群管理 1. 集群管理包括Metadatas…

OpenStack系列第四篇:云平臺基礎功能與操作(Dashboard)

文章目錄 1. 鏡像(Image)添加鏡像查看鏡像刪除鏡像 2. 卷(Volume)創建卷查看卷刪除卷 3. 網絡(虛擬網絡)創建網絡查看網絡刪除網絡 4. 實例類型創建實例類型查看實例類型刪除實例類型 4. 密鑰對&#xff08…

CSDN編輯器

這里寫自定義目錄標題 歡迎使用Markdown編輯器新的改變功能快捷鍵合理的創建標題,有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、居右SmartyPants 創建一個自定義列表如何創建一個…

MTK 平臺關于WIFI 6E P2P的解說

一 前言 官方 P2P 6E 設計原理,請查看這個網站 hostap - hostapd/wpa_supplicant 配置:p2p_6ghz_disable 允許上層指定是否允許6G連接 僅允許6G用于WFD –不允許6G用于純P2P 缺點:存在很多 IOT issues 如:一些物聯網設備無法識別6G類/信道,可能存在物聯網問…