《鳥哥的Linux私房菜基礎篇》---5 vim 程序編輯器

目錄

一、vim程序編輯器的簡介

二、命令模式快捷鍵(默認模式)

1、光標移動

2、編輯操作

3、搜索與替換

三、插入模式快捷鍵

四、底行模式快捷鍵(按:進入)

五、高級技巧

1、分屏操作

2、多文件編輯

3、可視化模式


一、vim程序編輯器的簡介

1、在Linux的vi編輯器中,快捷鍵是提高編輯效率的關鍵。

2、vi是原始的文本編輯器,而vim(Vi IMproved)是vi的增強版,提供了更多的功能和快捷鍵。用戶可能實際上使用的是vim。

vi有三種主要模式:命令模式、插入模式和底行模式。

二、命令模式快捷鍵(默認模式)

1、光標移動
捷鍵功能說明
h?/?左移一個字符
j?/?下移一行
k?/?上移一行
l?/?右移一個字符
w跳到下一個單詞開頭
b跳到上一個單詞開頭
e跳到當前單詞結尾
0跳到行首(絕對行首)
^跳到行首的非空白字符
$跳到行尾
Ctrl + f向下翻頁(Page Down)
Ctrl + b向上翻頁(Page Up)
Ctrl + d向下滾動半屏
Ctrl + u向上滾動半屏
G跳到文件末尾
nG(如?5G跳到第?n?行
gg跳到文件開頭
2、編輯操作
快捷鍵功能說明
i進入插入模式(光標前插入)
a進入插入模式(光標后插入)
o在當前行下方插入新行
O在當前行上方插入新行
x刪除光標所在字符
dd刪除整行
ndd(如?3dd刪除?n?行
yy復制整行
nyy(如?3yy復制?n?行
p粘貼到光標后
P粘貼到光標前
u撤銷上一次操作
Ctrl + r重做(恢復撤銷)
J合并當前行和下一行
~切換光標所在字符的大小寫
3、搜索與替換
快捷鍵功能說明
/pattern向前搜索?pattern
?pattern向后搜索?pattern
n跳到下一個匹配項
N跳到上一個匹配項
:%s/old/new/g全局替換?old?為?new
:%s/old/new/gc全局替換并確認每個替換

三、插入模式快捷鍵

快捷鍵功能說明
Esc退出插入模式,返回命令模式
Ctrl + o暫時退出插入模式,執行一個命令模式命令后返回

四、底行模式快捷鍵(按:進入)

快捷鍵功能說明
:w保存文件
:q退出編輯器(未修改時)
:q!強制退出(不保存修改)
:wq?或?:x保存并退出
:set nu顯示行號
:set nonu隱藏行號
:set ts=4設置 Tab 為 4 個空格
:set expandtab將 Tab 轉換為空格
:s/old/new/g替換當前行所有?old?為?new

五、高級技巧

1、分屏操作
  • :sp?或?:split:水平分屏。
  • :vs?或?:vsplit:垂直分屏。
  • Ctrl + w + h/j/k/l:在分屏間切換。
2、多文件編輯
  • :e filename:打開新文件。
  • :bn?或?:bp:切換到下一個/上一個文件。
3、可視化模式
  • v:進入字符可視化模式(選擇文本)。
  • V:進入行可視化模式。
  • Ctrl + v:進入塊可視化模式。

掌握這些快捷鍵后,你可以在?vi/vim?中實現高效的文本編輯。

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

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

相關文章

AI大白話(四):自然語言處理——AI是如何理解和生成人類語言的?

??引言: 專欄:《AI大白話》 AI大白話(一):5分鐘了解AI到底是什么? AI大白話(二):機器學習——AI是怎么“學習“的? AI大白話(三):深度學習——AI的‘大腦‘是如何構建的? 大家好!歡迎回到"AI大白話"系列。前面我們聊了AI的基本概念、機器學習的原理…

擴展卡爾曼濾波

1.非線性系統的線性化 標準卡爾曼濾波 適用于線性化系統,擴展卡爾曼濾波 則擴展到了非線性系統,核心原理就是將非線性系統線性化,主要用的的知識點是 泰勒展開(我另外一篇文章的鏈接),如下是泰勒展開的公式…

安裝unsloth

我在llamafactory微調LLM,簡單測了一些(很不精準),加速方法中unsloth比flash_attention速度快了40%,顯存占用減少15%; 創建虛擬環境:conda create -n env_name python3.10, 然后conda activate…

關于 51 單片機顯示多個數碼管時出現殘影

殘影現象&#xff1a; 出現殘影代碼&#xff1a; #include <REGX52.H> #include <INTRINS.H> void Delayxms(unsigned int x) //11.0592MHz {while(x){unsigned char i, j;_nop_();i 2;j 199; do{while (--j);} while (--i);x--;} } void DisplayDigitalNumb…

STM32學習筆記之常用外設接口(原理篇)

&#x1f4e2;&#xff1a;如果你也對機器人、人工智能感興趣&#xff0c;看來我們志同道合? &#x1f4e2;&#xff1a;不妨瀏覽一下我的博客主頁【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸對你有幫助&#xff0c;可點贊 &#x1f44d;…

InnoDB 引擎核心知識點

InnoDB 引擎核心知識點 6.1 邏輯存儲結構 表空間&#xff08;Tablespace&#xff09;&#xff1a;所有數據邏輯上存儲在一個表空間中&#xff0c;物理上可能由多個文件組成。段&#xff08;Segment&#xff09;&#xff1a;分為數據段&#xff08;B樹葉子節點&#xff09;、索引…

深度學習 Deep Learning 第9章 卷積網絡 CNN

深度學習 Deep Learning 第9章 卷積網絡 章節概述 本章深入探討了卷積網絡的原理、變體及其在深度學習中的應用。卷積網絡通過卷積操作實現了參數共享和稀疏連接&#xff0c;顯著提高了模型的效率和性能。本章首先介紹了卷積操作的基本形式及其在不同數據維度上的應用&#x…

基于MATLAB的渦旋光和高斯光疊加產生平頂光

強度疊加耦合成平頂光&#xff0c;不發生干涉 通過分別生成高斯光和渦旋光的強度分布&#xff0c;然后按合適的權重將它們疊加&#xff0c;得到近似平頂光&#xff08;flat‐top beam&#xff09;的效果。由于我們只是將強度相加&#xff08;而非復振幅疊加&#xff09;&#…

wordpress-網站百寶箱插件

含置頂,網頁寵物, 哀悼, 禁止復制, 禁止查看源碼, 彈幕, WP優化,媒體分類,預加載,定時發布,在線客服, 留言板, 手機客服, 網站背景, 公告, 跑馬燈, 水印, 分享, 打賞, 海報圖, 廣告,數據庫管理,圖片加載特效。等綜合功能插件

北斗導航 | 基于北斗三號短報文通信的北斗-YOLO融合系統原理,算法公式,系統流程框圖,matlab代碼,應用場景

以下是關于基于北斗三號短報文通信的北斗-YOLO融合系統的詳細解析,包含原理、算法公式、系統流程、Matlab代碼框架和應用場景。一、系統原理 北斗-YOLO融合系統結合了北斗三號短報文通信(雙向通信能力)和YOLO目標檢測算法,用于在無地面網絡覆蓋區域實現實時目標檢測與數據傳…

Vue 中的日期格式化實踐:從原生 Date 到可視化展示!!!

&#x1f4c5; Vue 中的日期格式化實踐&#xff1a;從原生 Date 到可視化展示 &#x1f680; 在數據可視化場景中&#xff0c;日期時間的格式化顯示是一個高頻需求。本文將以一個邀請碼關系樹組件為例&#xff0c;深入解析 Vue 中日期格式化的 核心方法、性能優化 和 最佳實踐…

試試智能體工作流,自動化搞定運維故障排查

APO 1.5.0版本全新推出的智能體工作流功能&#xff0c;讓運維經驗不再零散&#xff01;只需將日常的運維操作和故障排查經驗轉化為標準化流程&#xff0c;就能一鍵復用&#xff0c;效率翻倍&#xff0c;從此告別重復勞動&#xff0c;把時間留給更有價值的創新工作。更貼心的是&…

LeetCode-215. 數組中的第K個最大元素

1、題目描述 給定整數數組 nums 和整數 k&#xff0c;請返回數組中第 k 個最大的元素。 請注意&#xff0c;你需要找的是數組排序后的第 k 個最大的元素&#xff0c;而不是第 k 個不同的元素。 你必須設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1: 輸入: [3,2,1…

分布式光伏防逆流管理:技術要點與實踐解析

在國家“雙碳”目標推動下&#xff0c;分布式光伏作為新能源體系的重要組成部分&#xff0c;正迎來快速發展。國家能源局近期發布的《關于做好新能源消納工作保障新能源高質量發展的通知》明確提出&#xff0c;需加強網源協調與調節能力&#xff0c;優化新能源利用率。其中&…

Ubuntu capolar 上實現內網穿透

在官網https://www.cpolar.com/ 注冊用戶&#xff0c;獲取tocken 1.1 安裝cpolar 在Ubuntu上打開終端&#xff0c;執行命令 首先&#xff0c;我們需要安裝curl&#xff1a; sudo apt-get install curl 國內安裝&#xff08;支持一鍵自動安裝腳本&#xff09; curl -L htt…

【CSS】CSS 使用全教程

CSS 使用全教程 介紹 CSS&#xff08;層疊樣式表&#xff0c;Cascading Style Sheets&#xff09;是一種樣式表語言&#xff0c;用于描述 HTML 或 XML 文檔的布局和外觀&#xff0c;它允許開發者將文檔的內容結構與樣式表現分離&#xff0c;通過定義一系列的樣式規則來控制網頁…

Jenkins 集成 SonarQube 代碼靜態檢查使用說明

環境準備 Jenkins 服務器 確保 Jenkins 已安裝并運行&#xff08;推薦 LTS 版本&#xff09;。安裝插件&#xff1a; SonarQube Scanner for Jenkins&#xff08;用于集成 SonarQube 掃描&#xff09;NodeJS Plugin&#xff08;可選&#xff0c;用于 JavaScript 項目&#xff0…

EasyRTC輕量級Webrtc音視頻通話SDK,助力帶屏IPC在嵌入式設備中的應用

一、市場背景 隨著人們生活水平的提高&#xff0c;對于家居安全和遠程監控的需求日益增長&#xff0c;帶屏IPCam不僅滿足了用戶實時查看監控畫面的需求&#xff0c;還提供了諸如雙向語音通話、智能報警等豐富的功能&#xff0c;極大地提升了用戶體驗。 此外&#xff0c;技術的…

AI編輯器-Trae 玩轉AI 編程

參考 掘金社區地址 Trae下載地址 管理插件 Trae 從入門到實踐:AI 編碼的妙筆生花 掘金社區 掘金社區簡介 掘金是面向全球中文開發者的技術內容分享與交流平臺。我們通過技術文章、沸點、課程、直播等產品和服務,打造一個激發開發者創作靈感,激勵開發者沉淀分享,陪伴開發者…

C語言代碼如何操作硬件?

在嵌入式開發中&#xff0c;C代碼通過直接操作硬件寄存器來控制硬件&#xff0c;這些寄存器被映射到特定的內存地址。以下是其工作原理的詳細分步解釋&#xff1a; 1. 內存映射硬件寄存器 微控制器將外設&#xff08;如GPIO、定時器、UART等&#xff09;的寄存器映射到內存地…