常用vim命令行-linux008

Vim 是一款功能強大的文本編輯器,廣泛應用于編程、配置文件編輯以及日常文本處理。Vim 在其命令行模式下提供了豐富的操作命令,這些命令能夠大幅提升編輯效率。以下是 Vim 中常用的命令及操作的總結,覆蓋了 Vim 中的基本操作、查找、替換、文件操作、窗口管理、宏操作等多個方面。

一、Vim 模式

Vim 的操作方式基于多種模式,最常見的包括:

  • 普通模式(Normal Mode):用于瀏覽、刪除、復制和粘貼等操作。

  • 插入模式(Insert Mode):用于文本的輸入。

  • 命令模式(Command-line Mode):用于輸入執行命令,如保存、退出等。

  • 可視模式(Visual Mode):用于文本選擇和操作。

二、基本操作命令

1. 啟動和退出

  • 啟動 Vim:vim filenamevi filename

  • 退出 Vim:

    • :q:退出當前文件(如果文件已保存)。

    • :q!:強制退出當前文件,不保存更改。

    • :wqZZ:保存并退出。

    • :x:保存并退出(類似 :wq)。

    • :w filename:保存文件為新名稱。

2. 模式切換

  • 從普通模式切換到插入模式:i(當前光標位置),I(行首),a(光標后),A(行尾)。

  • 從插入模式切換到普通模式:Esc

  • 從普通模式切換到可視模式:v(字符選擇),V(行選擇),Ctrl+v(塊選擇)。

3. 移動光標

1. 按字符、單詞、行和頁面移動
  • 左、右、上、下移動:hjkl

  • 移動單詞:w(跳到下一個單詞的開頭),b(跳到上一個單詞的開頭),e(跳到單詞的結尾)。

  • 移動到行首或行尾:0(行首),$(行尾)。

  • 移動到特定行:<number>G(跳轉到第 number 行),gg(跳到文件開頭),G(跳到文件末尾)。

2. 頁面操作
  • 向上/向下滾動頁面:Ctrl+u(向上),Ctrl+d(向下)。

  • 跳轉到屏幕頂部/底部:H(頂部),M(中部),L(底部)。

4. 文本插入和刪除

  • 刪除單個字符:x(刪除光標處字符)。

  • 刪除單詞:dw(刪除光標所在單詞),daw(刪除光標所在單詞及前后的空格)。

  • 刪除行:dd(刪除當前行)。

  • 刪除直到行尾:D(刪除光標到行尾的內容)。

  • 刪除到指定字符:d<char>(刪除到指定字符 <char> 為止)。

  • 刪除到指定位置:d<number>G(刪除到指定行)。

5. 剪切、復制和粘貼

  • 剪切:d + 移動命令(例如 dwdd)。

  • 復制:y(復制) + 移動命令(例如 ywyy)。

  • 粘貼:p(光標后粘貼),P(光標前粘貼)。

6. 撤銷與重做

  • 撤銷:u(撤銷上一個操作),Ctrl+r(重做)。

三、查找和替換

1. 查找

  • 查找字符串:/pattern(查找下一個匹配 pattern 的字符串),?pattern(向上查找)。

  • 查找下一個:n(查找下一個匹配的字符串)。

  • 查找上一個:N(查找上一個匹配的字符串)。

2. 替換

  • 替換當前行的第一個匹配項::s/old/new/

  • 替換當前行所有匹配項::s/old/new/g

  • 替換全文件范圍::%s/old/new/g

  • 在替換時確認::%s/old/new/gcc 表示每次替換時詢問確認)。

3. 高級查找和替換

  • 使用正則表達式:/pattern:s/old/new/g 支持基本的正則表達式,可以使用如 \d\w 等。

  • 查找并替換區間::'<,'>s/old/new/g(區間替換)。

四、文件操作

1. 打開和切換文件

  • 打開新文件::e filename

  • 保存文件::w

  • 保存并退出::wq

  • 切換到最近編輯的文件::e #

  • 切換文件標簽::bnext(下一個文件),:bprev(上一個文件)。

2. 文件瀏覽

  • 查看文件信息::ls(列出緩沖區中的所有文件),:file(顯示當前文件的路徑和狀態)。

  • 切換文件::b <buffer number>(切換到指定編號的緩沖區)。

五、窗口和標簽頁管理

1. 分屏顯示

  • 垂直分屏::vsp filename(垂直分屏打開文件)。

  • 水平分屏::sp filename(水平分屏打開文件)。

  • 切換分屏:Ctrl+w + h(左側分屏),Ctrl+w + j(下側分屏),Ctrl+w + k(上側分屏),Ctrl+w + l(右側分屏)。

  • 關閉分屏::q(關閉當前分屏)。

2. 標簽頁管理

  • 新建標簽頁::tabnew

  • 切換標簽頁::tabnext(下一個標簽頁),:tabprev(上一個標簽頁)。

  • 關閉標簽頁::tabclose

六、宏操作

1. 錄制宏

  • 開始錄制宏:q<char>(開始錄制到寄存器 char)。

  • 執行宏:@char(執行寄存器 char 中的宏命令)。

  • 以指定次數重復執行宏:<number>@char

2. 退出宏錄制

  • 停止錄制宏:q(停止錄制并退出)。

七、文本操作和格式化

1. 縮進

  • 增加縮進:>>(增加當前行縮進),3>>(增加接下來的三行縮進)。

  • 減少縮進:<<(減少當前行縮進),3<<(減少接下來的三行縮進)。

2. 復制與移動

  • 復制到系統剪貼板:"+y(復制),"+p(粘貼)。

  • 剪切到系統剪貼板:"+d(剪切)。

  • 從剪貼板粘貼:"+p(粘貼內容)。

3. 自動縮進

  • 啟用自動縮進::set autoindent:set smartindent:set tabstop=4(設置制表符寬度為4)。

  • 禁用自動縮進::set noautoindent

八、Vim 高級操作

1. 跳轉和標記

  • 設置標記:m<char>(設置標記 char,例如 ma)。

  • 跳轉到標記:'<char>(跳轉到標記位置)。

2. 自定義快捷鍵

  • 映射快捷鍵::map(映射一個快捷鍵),nmap(普通模式映射),imap(插入模式映射)。

  • 示例::nmap <F5> :w<CR>(將 F5 鍵映射為保存文件)。

九、Vim 插件管理

1. 使用插件管理器

  • 使用 Vundle 安裝插件:

    • 安裝插件管理器:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    • 配置插件:在 .vimrc 文件中添加插件,例如:Plugin 'tpope/vim-fugitive'

    • 安裝插件::PluginInstall

2. 使用其他插件管理器

  • vim-plugPlug 'junegunn/fzf.vim'

  • 安裝插件:PlugInstall

總結

Vim 提供了非常豐富的命令和操作方式,掌握這些命令可以極大地提高編輯效率。對于日常的編輯任務,了解基本的移動、復制、粘貼、查找和替換命令是必不可少的;而對于高級用戶,掌握窗口管理、宏錄制以及插件管理等功能,將能更好地發揮 Vim 的強大功能。

當然也可傳輸到本地用typora或者其他txt工具

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

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

相關文章

xshell連接虛擬機,更換網絡模式:NAT->橋接模式

NAT模式&#xff1a;虛擬機通過宿主機的網絡訪問外網。優點在于不需要手動配置IP地址和子網掩碼&#xff0c;只要宿主機能夠訪問網絡&#xff0c;虛擬機也能夠訪問。對外部網絡而言&#xff0c;它看到的是宿主機的IP地址&#xff0c;而不是虛擬機的IP。但是&#xff0c;宿主機可…

【Spring Boot集成Shiro指南】

Spring Boot集成Shiro指南 一、添加Maven依賴 首先&#xff0c;需要在Spring Boot項目的pom.xml文件中添加Shiro相關的依賴。例如&#xff1a; <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><ve…

SpringBoot使用Nacos進行application.yml配置管理

Nacos是阿里巴巴開源的一個微服務配置管理和服務發現的解決方案。它提供了動態服務發現、配置管理和 服務管理平臺。Nacos的核心功能包括服務發現、配置管理和動態服務管理&#xff0c;使得微服務架構下的服務治理 變得簡單高效。 Nacos的設計基于服務注冊與發現、配置管理、動…

Electron-Vite 項目搭建(Vue)

前提條件 Node.js: 確保已安裝 Node.js 版本 18 或更高版本 (推薦使用最新穩定版)。Vite: 確保 Vite 版本為 4.0 或以上。包管理工具: 推薦使用 pnpm&#xff0c;但也可以使用 npm 或 yarn。 安裝 Electron-Vite 首先&#xff0c;在項目中安裝 electron-vite 作為開發依賴&a…

STM32F103單片機HAL庫串口通信卡死問題解決方法

在上篇文章 STM32F103單片機使用STM32CubeMX創建IAR串口工程 中分享了使用cubeMX直接生成串口代碼的方法&#xff0c;在測試的過程中無意間發現&#xff0c;串口會出現卡死的問題。 當串口一次性發送十幾個數據的時候&#xff0c;串口感覺像卡死了一樣&#xff0c;不再接收數據…

【Neo4J】neo4j docker容器下的備份與恢復

文章目錄 一. 官網說明1. 操作說明2. 注意事項 二. docker 容器化操作1. 導出&#xff08;備份&#xff09;停止容器執行備份 2. 導入&#xff08;恢復&#xff09;停止容器(如果未停止)執行導入 3. 啟動容器 一. 官網說明 https://neo4j.com/docs/operations-manual/current/…

selenium自動爬蟲工具

一、介紹selenium爬蟲工具 selenium 是一個自動化測試工具&#xff0c;可以用來進行 web 自動化測試、爬蟲 selenium 本質是通過驅動瀏覽器&#xff0c;完全模擬瀏覽器的操作&#xff0c;比如跳轉、輸入、點擊、下拉等&#xff0c;來拿到網頁渲染之后的結果&#xff0c;可支持…

Unity開發數字孿生項目

前言&#xff1a;記錄下自己用Unity開發數字孿生項目&#xff0c;所用到的知識點、功能點以及對項目認知總結&#xff0c;當然還有開發過程中所遇到的坑。此篇博客也是會隨時進行更新。 &#x1f60a;屏幕前看到此片文章的開發者們在此類項目開發過程中少走些彎路&#xff0c;希…

node利用路由搭建web實例

npm init npm i express body-parser cookie-parser 封裝web實例 搭建路由 導出web 應用實例注冊

量化交易系統開發-實時行情自動化交易-8.25.真格(澎博財經旗下)平臺

19年創業做過一年的量化交易但沒有成功&#xff0c;作為交易系統的開發人員積累了一些經驗&#xff0c;最近想重新研究交易系統&#xff0c;一邊整理一邊寫出來一些思考供大家參考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下來會對于真格&#xff08;澎博財經…

QT JSON文件解析

參考博客 https://blog.csdn.net/cpp_learner/article/details/118421096 1 打開文件&#xff0c;讀取全部內容 QFile file("../Json/js.json"); if (!file.open(QFile::ReadOnly | QFile::Text)) {qDebug() << "cant open error!";return; }// 讀…

面試常見-Java 原生實現常見數據結構

Java 原生實現常見數據結構 文章目錄 Java 原生實現常見數據結構一、引言二、數組&#xff08;Array&#xff09;&#xff08;一&#xff09;概念&#xff08;二&#xff09;代碼實現 三、鏈表&#xff08;Linked List&#xff09;&#xff08;一&#xff09;概念&#xff08;二…

1. 機器學習基本知識(5)——練習題(參考答案)

20.&#x1f517;本章代碼筆記&#x1f4d3;鏈接&#xff08;需要&#x1fa9c;&#xff09;&#xff1a;&#xff08;01_the_machine_learning_landscape.ipynb - Colab (google.com)&#xff09; 如果你不想通過上面的官方網址下載本章的筆記&#xff0c;還可以在本篇博文的…

通常一個 Xml 映射文件,都會寫一個 Dao 接口與之對應, 請問,這個 Dao 接口的工作原理是什么?Dao 接口里的方法, 參數不同時,方法能重載嗎?

Dao 接口 即 Mapper 接口 。接口 的 全 限 名 &#xff0c;就是 映 射 文 件 中 的 namespace 的值 &#xff1b; 接口 的 方 法 名 &#xff0c; 就 是 映 射 文 件 中 Mapper 的 Statement 的 id 值&#xff1b; 接 口 方 法 內 的 參數 &#xff0c; 就 是 傳 遞 給 sql 的參…

硬件設計 | Altium Designer軟件PCB規則設置

基于Altium Designer&#xff08;24.9.1&#xff09;版本 嘉立創PCB工藝加工能力范圍說明-嘉立創PCB打樣專業工廠-線路板打樣 規則參考-嘉立創 注意事項 1.每次設置完規則參數都要點擊應用保存 2.每次創建PCB&#xff0c;都要設置好參數 3.可以設置默認規則&#xff0c;將…

WebDAV服務不能上傳大文件,文件超過50M報錯[0x800700DF]怎么辦?

這個問題需要分別從服務端和客戶端解決。 1.Windows客戶端 解除50M文件限制&#xff0c;Windows訪問Webdav服務時&#xff0c;大于50M文件提示錯誤[錯誤:0x800700DF] 部署了webdav&#xff0c;Windows10映射網絡磁盤&#xff0c;傳輸文件超過大約50MB的文件會彈出“0x800700…

安全基礎學習-keil調試匯編代碼

初始目的是為了通過匯編編寫CRC功能。 但是基礎為0&#xff0c;所以目前從搭建工程開始記錄。 大佬繞路。 &#xff08;一&#xff09;創建項目 1. 新建項目 打開 Keil uVision。選擇 Project -> New uVision Project 創建一個新項目。選擇你的目標設備&#xff08;如 AR…

安裝qt 5.15.2筆記

撰文是2024年12月 最終實現了 1、用梯子下載了離線包5.14.2&#xff0c;最后沒用 2、用內地鏡像在線安裝5.15.2&#xff0c;3分鐘裝完 正文開始&#xff0c;qt官方簡稱官方。 官方包官方自5.15.X起&#xff0c;不再提供的exe/run安裝包https://download.qt.io/archive/qt/ …

Redis Java 集成到 Spring Boot

Hi~&#xff01;這里是奮斗的明志&#xff0c;很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~~ &#x1f331;&#x1f331;個人主頁&#xff1a;奮斗的明志 &#x1f331;&#x1f331;所屬專欄&#xff1a;Redis &#x1f4da;本系列文章為個人學習筆…

【Syncfusion系列】Diagram 雜談 第三篇 序列化和反序列化

目錄 序列化保存C# 代碼示例&#xff0c; 方式1 &#xff1a;C# 代碼示例&#xff0c; 方式2 &#xff1a; 反序列化加載C# 代碼示例, 方式1&#xff1a;C# 代碼示例, 方式2&#xff1a; **如何序列化自定義屬性**序列化和反序列化都存在的一個問題解決方式 圖表是否已修改&…