Linux Vim 編輯器的使用

Vim 編輯器的使用

  • 一、安裝及介紹
  • 二、基礎操作
  • 三、高級功能
  • 四、配置與插件


一、安裝及介紹

Vim是一款強大且高度可定制的文本編輯器,相當于 Windows 中的記事本。具備命令、插入、底行等多種模式。它可通過簡單的鍵盤命令實現高效的文本編輯、查找替換、分屏操作等,廣泛應用于代碼編寫和文本處理工作。

  1. 安裝方法

    系統命令
    Linux Ubuntusudo apt install vim
    Linux CentOS 7sudo yum install vim
    macOSbrew install vim
    Windows下載gvim.exe安裝包
  2. Vim 模式

    命令功能
    命令模式(Normal Mode)啟動 Vim 后的默認模式,用于執行操作命令。按 Esc 返回該模式。
    插入模式(Insert Mode)用于文本輸入,通過 i/a/o 等鍵進入。i : 光標前插入, a: 光標后插入, o : 下方新行插入。
    底行模式(Ex Mode)用于執行文件操作或高級命令,按 Esc 輸入 : 進入該模式。
  3. 保存操作

    操作類型常用命令說明
    退出:q退出當前文件
    強制退出:q!放棄修改并退出
    保存:w保存當前文件
    保存并退出:wq保存并退出
    強制保存并退出:wq!強制保存并退出

二、基礎操作

  1. 光標移動

    命令功能
    h左移
    j下移
    k上移
    l右移
    w跳至下一單詞開頭
    b跳至上一單詞開頭
    gg跳至文件開頭
    G跳至文件末尾
    0跳至行首
    $跳至行尾
  2. 文本編輯
    (1)插入操作

    命令功能
    i在當前光標位置插入
    a在當前光標后插入
    o在當前行下方新建一行并插入

    (2)刪除操作

    命令功能
    x刪除光標所在字符
    dd刪除整行
    dw刪除光標到單詞末尾
    d$刪除光標到行尾

    (3)復制粘貼

    命令功能
    yy復制當前行
    p粘貼到光標后
    P粘貼到光標前
    u撤銷
    Ctrl+r重做
    r替換單個字符
  3. 查找與替換

    命令功能
    /關鍵詞查找關鍵詞(按 n 下一個,N 上一個)
    /pattern向前搜索
    ?pattern向后搜索
    :noh取消高亮
    :%s/old/new/g全局替換

三、高級功能

  1. 分屏操作

    命令功能
    :sp [文件名]水平分屏
    :vsp [文件名]垂直分屏
    Ctrl+w +方向鍵切換分屏
    ----------------------------------------
    :vsplit 或 Ctrl + w v垂直分屏
    :split 或 Ctrl + w s水平分屏
    Ctrl + w w切換分屏
  2. 宏錄制
    (1) qa 開始錄制宏(寄存器a)
    (2) 執行操作
    (3) q 停止錄制
    (4) @a 執行宏

  3. 標記系統

    命令功能
    ma設置標記a
    `a跳轉到標記a
    :marks查看所有標記

四、配置與插件

  1. 配置文件(~/.vimrc), 這里的注釋是:
    " 基礎配置
    set number        " 顯示行號
    syntax on         " 語法高亮
    set tabstop=4     " Tab寬度
    set expandtab     " 用空格代替Tab" 快捷鍵映射
    nmap <C-s> :w<CR>  " Ctrl+s保存
    
  2. 插件管理(推薦使用vim-plug)
    (1) 安裝
    curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    
    (2) 在.vimrc中添加以下內容:
    call plug#begin('~/.vim/plugged')
    " 這里可以添加你想要安裝的插件,例如:
    " Plug '插件作者/插件名'
    Plug 'tpope/vim-sensible'
    call plug#end()
    
    (3) 在 Vim 中執行 :PlugInstall 命令,若能正常下載插件,就表明 vim-plug 已成功安裝。

END


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

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

相關文章

Windows 圖形顯示驅動開發-WDDM 2.4功能-基于 IOMMU 的 GPU 隔離(三)

幀緩沖區保留 對于必須在電源轉換期間將幀緩沖區的保留部分保存到系統內存的驅動程序&#xff0c;Dxgkrnl 會在適配器初始化時對所需內存進行用量認可。 如果驅動程序報告 IOMMU 隔離支持&#xff0c;則 Dxgkrnl 將在查詢物理適配器上限后立即調用 DXGKDDI_QUERYADAPTERINFO&a…

UML之擴展用例

UML用例建模面向業務實現或者系統功能&#xff0c;每一個用例實現一個完整的業務或者功能。而一個完整的用例也可能有一些不是必需的附加功能&#xff0c;或者在該用例已經實現后需要添加一些新功能&#xff0c;此時可以通過UML提供的擴展用例機制描述類似這樣的場景。 例如對…

大數據學習(95)-謂詞下推

&#x1f34b;&#x1f34b;大數據學習&#x1f34b;&#x1f34b; &#x1f525;系列專欄&#xff1a; &#x1f451;哲學語錄: 用力所能及&#xff0c;改變世界。 &#x1f496;如果覺得博主的文章還不錯的話&#xff0c;請點贊&#x1f44d;收藏??留言&#x1f4dd;支持一…

行式存儲(Row-based Storage)與列式存儲(Column-based Storage)詳細對比

行式存儲&#xff08;Row-based Storage&#xff09;與列式存儲&#xff08;Column-based Storage&#xff09;詳細對比 1. 數據組織方式 類型行式存儲列式存儲存儲結構按行存儲數據&#xff0c;每條記錄的所有字段&#xff08;列&#xff09;連續存放&#xff08;如一條訂單的…

Seg-Zero:通過認知強化實現的推理鏈引導分割

文章目錄 速覽摘要1. 引言2. 相關工作2.1. 大模型中的推理能力2.2. 結合推理的語義分割2.3. 用于分割任務的 MLLMs 3. 方法3.1. 流程建模&#xff08;Pipeline Formulation&#xff09;3.2. Seg-Zero 模型3.3. 獎勵函數&#xff08;Reward Functions&#xff09;3.4. 訓練&…

win server2022 限制共享文件夾d

點擊配額管理中的配額 然后創建配額 導入要配額的文件即可 然后確定即可

Docker容器部署Java項目(詳細版)

&#x1f91f;致敬讀者 &#x1f7e9;感謝閱讀&#x1f7e6;笑口常開&#x1f7ea;生日快樂?早點睡覺 &#x1f4d8;博主相關 &#x1f7e7;博主信息&#x1f7e8;博客首頁&#x1f7eb;專欄推薦&#x1f7e5;活動信息 文章目錄 Docker容器部署Java項目1. 環境及準備2. 項目…

C語言深度解析:從零到系統級開發的完整指南

一、C語言的核心特性與優勢 1. 高效性與直接硬件控制 C語言通過編譯為機器碼的特性&#xff0c;成為系統級開發的首選語言。例如&#xff0c;Linux內核通過C語言直接操作內存和硬件寄存器&#xff0c;實現高效進程調度。 關鍵點&#xff1a; malloc/free直接管理內存&#…

Pytorch實現之基于GAN+序列后向選擇的情緒識別增強方法

簡介 簡介:在WGAN-GP+CGAN的基礎上利用了序列后向選擇方法來挑選優質樣本補充到訓練集當中,豐富訓練數據集。 論文題目:基于生成對抗網絡的情緒識別數據增強方法 期刊:傳感技術學報 摘要:使用深度學習方法構建高準確率的情緒識別模型需要大量的情緒腦電數據。 生成對抗…

軟件工程面試題(十九)

1、十六進制的216轉換十進制是多少: 216是16進制,轉10進制: =2*16^2+1*16^1+6*16^0 =512+16+6 =536 2、Java中的XML解析方式: dom和jdom解析 Java中處理XML文檔的標準API有兩種,即XML的簡單API(SAX,Simple API for XML)和文檔對象模型(DOM,…

大模型AI Agent的工作原理與安全挑戰

大模型AI Agent的工作原理與安全挑戰 0x00 引言 智能體&#xff08;AI Agent&#xff09;作為大語言模型技術&#xff08;LLM&#xff09;的具體應用形式&#xff0c;突破了傳統語言模型僅限于文字輸入與輸出的局限性。其通過感知環境、規劃決策及執行行動的閉環機制&#xf…

膩子刮的遍數越多越好?刮的越厚墻面越平?

很多業主對刮膩子存在誤區&#xff0c;感覺膩子刮的越厚越好&#xff0c;遍數越多越好。同時認為膩子有找平的作用&#xff0c;感覺墻面不平&#xff0c;就是膩子刮的不行。 有一位業主給我留言&#xff0c;說家里的膩子刮了兩遍&#xff0c;然后油工師傅就開始打磨刷漆了&…

「深入解析 Chromium Message Pump:消息循環的核心驅動」

MessagePump 是 Chromium 中 消息循環&#xff08;Message Loop&#xff09; 的核心組件之一&#xff0c;負責在不同平臺上管理和分發消息、事件&#xff0c;并協調任務調度。 在瀏覽器這樣的 GUI 應用中&#xff0c;事件循環&#xff08;Event Loop&#xff09;是非常重要的&…

3d pose 指標和數據集

目錄 3D姿態估計、3維重建指標: 數據集 EHF數據集 SMPL-X 3D姿態估計、3維重建指標: MVE、PMVE 和 p-MPJPE 都是用于評估3D姿態估計、三維重建等任務中預測結果與真實數據之間誤差的指標。 MVE (Mean Vertex Error):是指模型重建過程中每個頂點的預測位置與真實位置之間…

大智慧大數據面試題及參考答案

目錄 MySQL 的事務隔離級別是什么? MySQL 的覆蓋索引是怎樣的? MySQL 常用的存儲引擎有哪些,它們之間的區別是什么? 在 MySQL 中,如果讀取很大的數據集,同時進行一邊 select 一邊寫入操作,結果會怎樣? 當 ES 出現分詞錯誤的情況時,應該如何處理? Kafka 如何保證…

微服務的簡單認識

目錄 一、微服務架構簡介 二、微服務架構風格和分布式系統架構的關系 三、微服務組成 一、微服務架構簡介 微服務是一種構建分布式系統的架構風格,它將一個大型的應用程序拆分成多個小型的、獨立部署的服務單元,每個服務單元都專注于特定的業務功能,并通過輕量級的通信機…

Spring的 @Conditional @ConditionalOnProperty 注解 筆記250330

Spring的 Conditional ConditionalOnProperty 注解 Spring 的 Conditional 與 ConditionalOnProperty 注解詳解 在 Spring 框架中&#xff0c;Conditional 和 ConditionalOnProperty 是用于動態控制 Bean 注冊的重要注解。雖然它們都服務于條件化配置&#xff0c;但定位和使用…

電路學習——MOS柵極驅動電阻取值(2025.03.30)

參考鏈接1: 驅動芯片的驅動電流的選型和計算 參考鏈接2: NMOS柵極驅動電阻Rg阻值和功率的計算&#xff0c;NMOS柵極驅動電阻Rg的作用&#xff0c;如何防止NMOS誤開通 單片機直接驅動NMOS的方法 RLC諧振電路 智能車BLDC 在此感謝各位前輩大佬的總結&#xff0c;寫這個只是為了記…

mysql JSON_ARRAYAGG聯合JSON_OBJECT使用查詢整合(數組對象)字段

父表數據&#xff08;表名&#xff1a;class&#xff09; idname1一年級2二年級3三年級 子表數據&#xff08;表名&#xff1a;students&#xff09; idnameclassId11張三112李四113小明3 關聯子表sql查詢&#xff08;推薦使用方法一&#xff09; 方法一 (使用IFNull判斷子…

張量-pytroch基礎(2)

張量-pytroch網站-筆記 張量是一種特殊的數據結構&#xff0c;跟數組&#xff08;array&#xff09;和矩陣&#xff08;matrix&#xff09;非常相似。 張量和 NumPy 中的 ndarray 很像&#xff0c;不過張量可以在 GPU 或其他硬件加速器上運行。 事實上&#xff0c;張量和 Nu…