八、vim高級文本編輯器

来源:https://www.cnblogs.com/Ju-zhi/archive/2023/12/05/17878085.html
-Advertisement-
Play Games

vim是vi的增強版,由vim-enhanced軟體包提供。vim具有vi不具備的特性eg:命令語法的高亮 vim是一個預設的文本編輯器來進行使用,在眾多的Linux發行版中均被內置,成為Linux主流的文本編輯器。 gvim:vim的圖形化版本 提供在vim-x11包里、 1、vim的工作模式 命 ...


  • vim是vi的增強版,由vim-enhanced軟體包提供。vim具有vi不具備的特性eg:命令語法的高亮

    vim是一個預設的文本編輯器來進行使用,在眾多的Linux發行版中均被內置,成為Linux主流的文本編輯器。

  • gvim:vim的圖形化版本

    提供在vim-x11包里、

1、vim的工作模式
  1. 命令模式:打開文件進入命令模式,執行命令(文本複製,粘貼,刪除等)

  2. 編輯模式(插入模式):編輯文本內容

  3. 退出模式(末行模式):對文件本身進行操作(保存,退出,搜索,替換等)

  • 模式切換:

    • a/A:游標右邊插入內容 / 游標所在行的末尾插入內容

    • i/I:游標左邊插入內容 / 游標所在行的開頭插入內容

    • o/O:游標下一行插入內容 / 游標上一行插入內容

    • Esc:插入模式回退命令模式

    • :進入退出模式

 

  • 運行vim

    • vim filename

    • 如果文件存在則該文件被打開並顯示內容

    • 如果文件不存在,則vim在第一次編輯並保存時創建該文件

    • 如果打開文件提示存在副本,則檢查vim上次打開該文件是否異常關閉

      vim存在副本怎麼修複?

      • vim -r 文件名:此方法不會自動移除副本,但是可以修複文件,需要手動刪除副本

      • vim 文件名:打開文件以後,當其提示副本存在時,按R修複文件,按D自動移除副本

  • 命令模式

    • 游標方向移動

    • 翻頁

      • Page Down 或 Ctrl + F:向下翻動一整頁內容

      • Page Up 或 Ctrl + B:向上翻動一整頁內容

    • 行內快速跳轉

      • Home鍵或” ^ “、數字” 0 “:跳轉至行首

      • End鍵或” $ “ 鍵:跳轉至行尾

    • 行間快速跳轉

      • 1G或者gg:跳轉到文件的首行

      • G:跳轉到文件的末尾行

      • #G:跳轉到文件中的第#行

    • 行號顯示

      • :set nu:在編輯器中顯示行號

      • :set nonu:取消編輯器中的行號顯示

    • 刪除

      • x或Del:刪除游標處的單個字元

      • dd:剪切當前游標所在行

      • Ndd:剪切前游標所在行以及下麵N-1行

      • cc:替換改行,併進入插入模式

      • d^:刪除當前游標之前到行首的所有字元

      • d$:刪除當前游標處到行尾的所有字元

      • dw:刪除當前游標處到詞尾的所有字元

    • 複製:Nyy:複製當前N行整行的內容到剪切板

    • 複製::Start,end copy dest 3,4 copy 6:將start到end行的內容複製到dest行以下

    • 移動::Start,end m dest :將start到end行的內容移動到dest行以下

    • 粘貼

      • P:將緩衝區中的內容粘貼到游標位置處之後

      • P:粘貼到游標位置處之前

    • 文件內容查找

      • /word:從上而下在文件中查找字元串 ”word“

      • ?word:從下而上在文件中查找字元串 ”word“

        • n:定位下一個匹配的被查找字元串

        • N:定位上一個匹配的被查找字元串

      • :nohlsearch :撤銷高亮

    • 撤銷

      • u:按一次取消最近一次操作多次重覆按u鍵,恢復已進行的多步操作

      • U:撤銷游標所在行的更改

      • Ctrl - r:取消最後一次 ”撤銷“

      • .:重覆操作

    • 保存退出

      • :1,5 w /tmp/file.txt :另存為

      • w:保存

      • q:退出

      • wq:保存並退出

      • q!:強制退出

      • wq!:強制保存退出

    • 查找替換

      • :s/root/redhat:將當前行中查找到的第一個字元 “root” 替換為 “redhat”

      • :s/root/redhat/g:將當前行中查找到的所有字元 “root” 替換為 “redhat”

      • :1,5 s/root/redhat/g:在行號 “1,5” 範圍內替換所有字元 “root” 為 “redhat”

      • :% s/root/redhat/gi:在整個文件範圍內替換所有字元 “root” 為 “redhat”(忽略大小寫)

      • : s /root/redhat/c:在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認

    • 可視化模式

      • 允許選擇文本塊

        • v:開始字元高亮選定

        • V:開始行高亮選定

        • Ctrl + v:列方向高亮選定

      • 高亮顯示的文本能被刪除、拷貝、替換、搜索/替換等

    • 多行註釋

      • Ctrl + v ——> I ——> # ——> Esc

    • 多視窗模式

      • 在單個vim屏幕中多個文檔能被查看

        • Ctrl + w再按s:橫向分隔屏幕

        • Ctrl + w再按v:縱向分割屏幕

        • Ctrl + w,方向鍵:再視窗間中移動

      • :sp file 在同一個視窗打開其它文件

 


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

-Advertisement-
Play Games
更多相關文章
  • 在本示例中,我們將使用Autofac和AspectC(Autofac.Extras.DynamicProxy2)來演示如何實現AOP(面向切麵編程)。我們將創建一個簡單的C#控制台應用程式,並應用AOP以解決日誌記錄的問題。首先,讓我們討論AOP的用途和目標。 AOP(面向切麵編程)的用途 AOP是 ...
  • 在我們很多應用系統中,往往都需要根據實際情況生成一些編碼規則,如訂單號、入庫單號、出庫單號、退貨單號等等,我們有時候根據規則自行增加一個函數來生成處理,不過我們仔細觀察後,發現它們的編碼規則有很大的共通性,因此可以考慮使用一些通用的業務編碼規則生成,從而在系統中統一維護即可,本篇隨筆介紹如何在WIn... ...
  • 一:背景 1. 講故事 在高級調試的旅程中,經常會有一些朋友問我什麼是 工作集(記憶體),什麼是 提交大小,什麼是 Virtual Size, 什麼是 Working Set 。。。截圖如下: 既然有很多朋友問,這些用口頭也不怎麼好描述,剛好上午有時間就系統的聊一下吧。 二:記憶體術語解讀 1. Vir ...
  • 推薦演算法是機器學習和數據挖掘領域的重要組成部分,用於為用戶提供個性化推薦內容。在.NET中,可以使用不同的演算法來實現推薦系統。在本文中,我將介紹三種常見的推薦演算法:協同過濾、內容過濾和深度學習推薦系統,並提供相應的.NET源代碼示例。 協同過濾推薦演算法 協同過濾演算法基於用戶行為數據,通過分析用戶之間 ...
  • Autofac 是一個功能豐富的 .NET 依賴註入容器,用於管理對象的生命周期、解決依賴關係以及進行屬性註入。本文將詳細講解 Autofac 的使用方法,包括多種不同的註冊方式,屬性註入,以及如何使用多個 ContainerBuilder 來註冊和合併組件。我們將提供詳細的源代碼示例來說明每個概念 ...
  • 1.查看IP地址 ip add 2.進入網卡配置文件所在目錄 cd /etc/sysconfig/network-scripts/ ll 註: ifcfg-ens33=ifcfg-網卡名 | ifcfg-lo : 網路迴環文件 3.編輯網卡配置文件 vi /etc/sysconfig/network ...
  • 目錄一、fdisk工具創建一個磁碟分區1、虛擬機添加測試硬碟2、創建磁碟分區3、文件系統管理磁碟分區4、掛載二、parted命令使用場景操作命令'help'查看命令列表查看分區情況劃分出主分區"parted1"刪除分區格式化操作設置開機自動掛載方法一:編輯/etc/fstab文件方法二:編輯/etc ...
  • 組管理和許可權管理 一、組管理 Linux組的基本介紹 Linux組: 在Linux中的每個用戶必須屬於一個組,不能獨立於組外。在Linux中每個文件 有所有者、所在組、其它組的概念。 文件/目錄 所有者(User): 一般為文件的創建者,誰創建了該文件,就自然的成為該文件的所有者。 文件/目錄 所在 ...
一周排行
    -Advertisement-
    Play Games
  • 最近做項目過程中,使用到了海康相機,官方只提供了C/C++的SDK,沒有搜尋到一個合適的封裝了的C#庫,故自己動手,簡單的封裝了一下,方便大家也方便自己使用和二次開發 ...
  • 前言 MediatR 是 .NET 下的一個實現消息傳遞的庫,輕量級、簡潔高效,用於實現進程內的消息傳遞機制。它基於中介者設計模式,支持請求/響應、命令、查詢、通知和事件等多種消息傳遞模式。通過泛型支持,MediatR 可以智能地調度不同類型的消息,非常適合用於領域事件處理。 在本文中,將通過一個簡 ...
  • 前言 今天給大家推薦一個超實用的開源項目《.NET 7 + Vue 許可權管理系統 小白快速上手》,DncZeus的願景就是做一個.NET 領域小白也能上手的簡易、通用的後臺許可權管理模板系統基礎框架。 不管你是技術小白還是技術大佬或者是不懂前端Vue 的新手,這個項目可以快速上手讓我們從0到1,搭建自 ...
  • 第1章:WPF概述 本章目標 瞭解Windows圖形演化 瞭解WPF高級API 瞭解解析度無關性概念 瞭解WPF體繫結構 瞭解WPF 4.5 WPF概述 ​ 歡迎使用 Windows Presentation Foundation (WPF) 桌面指南,這是一個與解析度無關的 UI 框架,使用基於矢 ...
  • 在日常開發中,並不是所有的功能都是用戶可見的,還在一些背後默默支持的程式,這些程式通常以服務的形式出現,統稱為輔助角色服務。今天以一個簡單的小例子,簡述基於.NET開發輔助角色服務的相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 第3章:佈局 本章目標 理解佈局的原則 理解佈局的過程 理解佈局的容器 掌握各類佈局容器的運用 理解 WPF 中的佈局 WPF 佈局原則 ​ WPF 視窗只能包含單個元素。為在WPF 視窗中放置多個元素並創建更貼近實用的用戶男面,需要在視窗上放置一個容器,然後在這個容器中添加其他元素。造成這一限制的 ...
  • 前言 在平時項目開發中,定時任務調度是一項重要的功能,廣泛應用於後臺作業、計劃任務和自動化腳本等模塊。 FreeScheduler 是一款輕量級且功能強大的定時任務調度庫,它支持臨時的延時任務和重覆迴圈任務(可持久化),能夠按秒、每天/每周/每月固定時間或自定義間隔執行(CRON 表達式)。 此外 ...
  • 目錄Blazor 組件基礎路由導航參數組件參數路由參數生命周期事件狀態更改組件事件 Blazor 組件 基礎 新建一個項目命名為 MyComponents ,項目模板的交互類型選 Auto ,其它保持預設選項: 客戶端組件 (Auto/WebAssembly): 最終解決方案裡面會有兩個項目:伺服器 ...
  • 先看一下效果吧: isChecked = false 的時候的效果 isChecked = true 的時候的效果 然後我們來實現一下這個效果吧 第一步:創建一個空的wpf項目; 第二步:在項目裡面添加一個checkbox <Grid> <CheckBox HorizontalAlignment=" ...
  • 在編寫上位機軟體時,需要經常處理命令拼接與其他設備進行通信,通常對不同的命令封裝成不同的方法,擴展稍許麻煩。 本次擬以特性方式實現,以兼顧維護性與擴展性。 思想: 一種命令對應一個類,其類中的各個屬性對應各個命令段,通過特性的方式,實現其在這包數據命令中的位置、大端或小端及其轉換為對應的目標類型; ...