Linux筆記:vim使用

来源:https://www.cnblogs.com/guyuyun/archive/2020/04/14/12695295.html
-Advertisement-
Play Games

Vim在Linux中是一個簡單卻又強大的文本編輯器,可以用來創建、編輯和查看一個文本。本文只是簡單介紹下,更多用法還得個人多使用練習才行。 Vim通常分為三種模式:命令模式:剛打開Vim時就預設進入命令模式,此時所有的鍵盤敲擊都會被識別為命令而不是字元輸入,而編輯器則處於等待用戶輸入命令的狀態。輸入 ...


Vim在Linux中是一個簡單卻又強大的文本編輯器,可以用來創建、編輯和查看一個文本。本文只是簡單介紹下,更多用法還得個人多使用練習才行。


Vim通常分為三種模式:
命令模式:剛打開Vim時就預設進入命令模式,此時所有的鍵盤敲擊都會被識別為命令而不是字元輸入,而編輯器則處於等待用戶輸入命令的狀態。
輸入模式:即插入模式,通常使用此模式來編輯文本,當按下Esc鍵時自動退出輸入模式,併進入命令模式。
底線命令模式:在命令模式中輸入冒號:就可以進入底線命令模式了,輸入命令後回車即可執行對應的命令並退出底線命令模式,當按下Esc鍵時也會自動退出底線命令模式,併進入命令模式。

 

命令模式中常用的命令有:

  • a/A:a表示在游標所在字元後插入,A表示在游標所在行尾插入,此時進入輸入模式。
  • i/I:i表示在游標所在字元前插入,I表示在游標所在行首插入,此時進入輸入模式。
  • o/O:o表示在游標所在行下插入新行,O表示在游標所在行上插入新行,此時進入輸入模式。
  • gg:定位到第一行。
  • G:定位到最後一行。
  • [n]G:表示定位到第n行,如先按下數字88(並不會在屏幕上顯示出來你的按鍵),再按下G就會跳轉到第88行,效果同底線命令模式的命令“:88”。
  • $:游標移動至行尾。
  • 0:游標移動至行首。
  • x:刪除游標所在處的字元。
  • [n]x:刪除游標所在處後的n個字元。
  • dd:刪除(剪切)游標所在行。
  • [n]dd:刪除(剪切)游標所在行及之後的共n行。
  • dG:刪除游標所在行到文件末尾的所有內容。
  • D:刪除游標所在處到文件末尾。
  • yy:複製當前行。
  • [n]yy:複製當前行及以下n行。
  • p/P:粘貼在游標所在行的下麵或上面。
  • r:替代游標所在處的字元。
  • R:進入替換狀態,從游標所在處開始替換字元,按Esc結束。
  • u:取消上一步操作。
  • /[string]:搜索指定的字元串,然後回車,按n可以查看下一個搜索結果。但預設是區分大小寫的,想要不區分大小寫,需要執行一個底線命令模式的命令“:set ic”,反之,又想區分大小寫了,執行“:set noic”。
  • ZZ:快捷鍵,保存修改並退出。

 

底線命令模式中常用的命令有(省略了冒號:):

  • set nu:設置行號。
  • set nonu:取消行號。
  • [n]:定位到第n行,如“:50”表示定位到50行。
  • [n1],[n2]d:刪除n1到n2行的所有內容。
  • set [ic/noic]:不區分大小寫和區分大小寫。
  • %s/[old]/[new]/[g/c]:在全文中將old字元串替換為指定的new字元串,g表示執行時不詢問,c表示執行時詢問。
  • [n1],[n2]s/[old]/[new]/[g/c]:在指定範圍n1到n2行之間將old字元串替換為指定的new字元串,g表示執行時不詢問,c表示執行時詢問。
  • w:保存修改。
  • w newfilename:另存為指定文件。
  • wq:保存修改並退出。
  • q!:不保存修改並退出。
  • wq!:保存修改並退出(文件所有者和root可使用),當修改了許可權為只讀的文件時,只使用:wq是不能保存的,這時候可以使用:wq!強行保存修改。

 

Vim更多技巧

最前面的冒號表示底線命令模式:

  • :r [filename]:將其他文件的內容從游標所在處導入到本文件中。
  • :![命令]:在不退出Vim的情況下執行命令。
  • :r ![命令]:將一個命令的執行結果導入從游標所在處導入到本文件中。
  • :[n1],[n2]s/^/#/g:連續多行註釋(即將所有行的行首都替換為#,^表示行首,其他語言的註釋同理替換即可)。
  • :[n1],[n2]s/^#//g:取消多行的行首註釋(即將所有行的行首的#替換為空字元,^表示行首,其他語言的註釋同理替換即可)。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 服務提供者 創建一個名為 的服務提供者項目 POM 該項目下有兩個子模塊,分別是 和 ,前者用於定義介面,後者用於實現介面。 服務提供者介面模塊 在服務提供者項目下創建一個名為 的模塊, 該項目模塊只負責 定義介面 POM 定義一個介面 服務提供者介面實現模塊 創建名為 服務提供者介面的實現模塊,用 ...
  • 什麼是 Nacos Config 在分散式系統中,由於服務數量巨多,為了方便服務 配置文件統一管理 , 實時更新 ,所以需要分散式配置中心組件。 是 的替代方案。 的存儲配置功能為分散式系統中的外部化配置提供伺服器端和客戶端支持,可以在 中集中管理 Spring Cloud 應用的外部屬性配置。 引 ...
  • ASP.NET CORE出現之前我們實現的Controller,MVC都繼承自Controller基類,WebApi的話繼承自ApiController。現在ASP.NET CORE把MVC跟WebApi合併了,已經不再區分MVC或者WebApi。ASP.NET CORE的Controller繼承結... ...
  • 上一章介紹的ColorPicker控制項,是控制項設計的最好示例。因為其行為和可視化外觀是精心分離的,所以其他設計人員可開發動態改變其外觀的新模板。 ColorPicker控制項如此簡單的一個原因是不涉及狀態。換句話說,不根據是否具有焦點、滑鼠是否在它上面懸停、是否禁用等狀態區分其可視化外觀。接下來本章介 ...
  • Navicat is a series of graphical database management and development software produced by PremiumSoft CyberTech Ltd. for MySQL, MariaDB, Oracle, SQLit... ...
  • 昨天大致把思路理清楚了,用one hot的方式把關鍵詞按字拆開編碼,今天嘗試可行性。 目前主流的文本向量化方式主要包括one hot、tf (term frequency)和tf idf (term frequency–inverse document frequency)這三種,越往後準確度應該越 ...
  • 前言 在上一篇導出文檔番外篇中,我們已經熟悉了怎樣根據json數據導出word的文檔,生成介面文檔,而在這一篇,將對上一篇進行完善補充,增加多種導出方式,實現更加完善的導出功能。 回顧 1. 獲取Swagger介面文檔的Json文件 2. 解析Json文件數據填充到Html的表格中 3.根據生成的h ...
  • 現如今當你翻看一些開源項目源碼的時候,你會發現現在到處充斥著委托函數,如Func,Action,Predicate,確實現在的C 在函數式編程的路上越來越成為主流,越來越顯示威力,曾經的一些經典設計模式寫法,在函數式下可以稍微優化一下了,這篇我們就來說說模板方法。 一:實際場景 1. 模板方法定義 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...