vim 的基礎使用

目錄

  • 一:vim 介紹
  • 二:vim 特點
  • 三:vim 配置
  • 四:vim 使用
    • 1、vim 語法格式
    • 2、vim 普通模式
      • (1)保存退出
      • (2)光標跳轉
      • (3)文本刪除
      • (4)文本查找
      • (5)撤銷操作
      • (6)可視化模式
    • 3、vim 命令模式
      • (1)保存退出
      • (2)set 命令
      • (3)搜索替換
    • 4、vim 編輯模式

一:vim 介紹

vim 是一個跨平臺的交互式文本編輯工具,是vi編輯器的增強版,常用于Linux環境中對文本文件的內容進行增刪查改;

二:vim 特點

  1. 屬于交互式編輯工具,允許用戶實時編輯文件內容

  2. 編輯文件時,會將該文件的內容全部加載到內存,在內存中完成修改后再寫入

  3. 有三種工作模式,末行模式、命令模式和編輯模式,默認進入的是命令模式;

三:vim 配置

vim 有兩種級別的配置文件,分別是用戶級配置文件和系統全局配置文件;vim 配置文件中,使用 " 作為注釋符號,注釋內容不會被執行:

  • 用戶級配置文件:只對當前用戶生效,一般默認不存在,需要手動創建;

  • 系統級配置文件:針對所有用戶生效;

查看配置文件優先級和路徑:

# 例如
$ vim --version | grep vimrcsystem vimrc file: "$VIM/vimrc"user vimrc file: "$HOME/.vimrc"2nd user vimrc file: "~/.vim/vimrc"

四:vim 使用

1、vim 語法格式

vim  [filename]
  • 如果指定的文件 filename 存在,打開文件并顯示其內容。

  • 如果指定的文件不存在,創建一個空白的緩沖區(buffer),將其命名為 filename,如果編輯后保存 (:w),文件將被創建并寫入指定路徑。

  • 直接執行 vim 而不指定文件名:vim 會打開一個空白緩沖區(buffer),沒有關聯的文件。可以進行文本的輸入,但是保存的時候需要在命令行模式下指定文件名 :w filename

2、vim 普通模式

  • 打開某個文件時,默認就處于普通模式;

  • 命令模式下可以通過執行相關命令來對文本進行管理,但是輸入的命令不會在界面有任何顯示;

  • 命令模式下不能直接編輯文本,而是通過按鍵命令操作文件內容;

(1)保存退出

  • ZQ:直接退出vim編輯器,當前更改的內容不會被保存;

  • ZZ:保存當前對文本的修改,然后退出vim編輯器;

(2)光標跳轉

  • ^(脫字符):跳轉到光標所在行的,數字0也可以;

  • $:將光標跳轉到光標所在行的行尾

  • gg:光標移動到文本的第一行

  • G:光標移動到文本的最后一行,前面加數字就是移動到指定行。

  • [num]G:跳轉到指定行。例如 11G,表示將光標跳轉到第11行

(3)文本刪除

  • d0或d$:(刪除到行尾)從光標處開始的內容一直到光標所在行的最后一個字符會被刪除;

  • dd: 刪除光標所在行的整行內容;

  • dG:刪除從光標開始行到最后一行的內容;

(4)文本查找

  • /關鍵字: 向下搜索,

  • ?關鍵字:從當前光標位置向上搜索,n:向上 N:向下

(5)撤銷操作

  • u:撤銷當前操作

  • ctrl+r:取消撤銷操作

(6)可視化模式

可視化模式的作用是用于選擇文本塊,進入可視化模式后,可以批量選擇。

  • v:選擇文本中的單個字符

  • v:選擇整行文本

  • ctrl+v:選擇文本的一個矩形區塊

例如:批量注釋行:

1、先將光標移動到指定行的第一行行首
在這里插入圖片描述

2、輸入ctrl+v 進入可視化模式
在這里插入圖片描述
3、向下移動光標,選中希望操作的每一行的第一個字符
在這里插入圖片描述
4、輸入大寫字母 I切換至插入模式(大寫I 表示在當前光標所在行的行首輸入)
在這里插入圖片描述
5、輸入 #
在這里插入圖片描述
6、按 ESC 鍵返回到普通模式
在這里插入圖片描述

3、vim 命令模式

命令模式也叫做末行模式,于執行文件操作和全局操作命令,例如保存、退出、搜索和替換等。

普通模式下按 : 可以進入末行模式,按 Esc 返回普通模式。

(1)保存退出

  • w:保存

  • q:退出

  • x:保存并退出

  • !:結合w q等命令使用,表示強制的意思

(2)set 命令

  • set nu:顯示行號,set nonu:取消行號顯示

  • set ai:自動縮進,set noai:取消自動縮進

  • set paste:復制文本內容到該文件時候,保留文件格式,set nopaste:取消格式保留

  • set list:顯示不可見的字符。^I:表示tab鍵 $:表示回車

  • set ff=unix|dos:更改文本格式,unix就是linux格式,dos就是windows的格式

  • set fileencodings=utf-8,iso-8859-1:設置當前內容顯示的編碼格式

  • set fileencoding=utf-8:設置使用vim創建新文件時的編碼格式;

(3)搜索替換

說明:分隔符 / 可以換為其它的,例如 s#xx#yy#

  • s/xx/yy/:將文本中光標所在行的第一個xx替換為yy

  • s/xx/yy/g:將文本中光標所在行的所有的xx替換為yy

  • %s/xx/yy/g:將文本中所有的xx都替換為yy,如果不加g,只會搜索

4、vim 編輯模式

編輯模式也叫做插入模式,用于直接對文本內容進行操作。

在普通模式下按 i、a、o 可以進入到編輯模式;

  • i:在當前光標位置前插入文本; I:在當前行的行首插入文本

  • a:在當前光標位置后插入文本;A:在當前行的行首插入文本

  • o:在當前行下方新建一行并插入文本;O:在當前行上方新建一行并插入文本

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

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

相關文章

HP 電腦開機黑屏 | 故障判斷 | BIOS 恢復 | BIOS 升級

注:本文為 “HP 電腦開機黑屏 | 故障判斷 | BIOS 恢復 | BIOS 升級” 相關文章合輯。 引文圖片 csdn 轉儲異常,重傳。 篇 1:Smart-Baby 回復中給出故障現象判斷參考 篇 2、篇3 :HP 官方 BIOS 恢復、升級教程 開機黑屏&#xff0c…

JAVA:利用 Redis 實現每周熱評的技術指南

1、簡述 在現代應用中,尤其是社交媒體和內容平臺,展示熱門評論是常見的功能。我們可以通過 Redis 的高性能和豐富的數據結構,輕松實現每周熱評功能。本文將詳細介紹如何利用 Redis 實現每周熱評,并列出完整的實現代碼。 2、需求分…

VSCode下配置Blazor環境 斷點調試Blazor項目

VSCode下使用Blazor的環境配置和插件推薦 Blazor是一種用于構建交互式Web UI的.NET框架,它可以讓你使用C#、Razor和HTML進行Web開發,而不需要JavaScript。在這篇文章中,我們將介紹如何在VSCode中配置Blazor環境,并推薦一些有用的…

《Rust權威指南》學習筆記(一)

基本介紹 1.Rust使用場景 :需要運行速度、需要內存安全、更好的利用多處理器。程序員無法在安全的Rust代碼中執行任何非法的內存操作。相對于C#等帶有垃圾回收機制的語言來講,Rust遵循了零開銷抽象(Zero-Cost Abstraction)規則&a…

STM32-筆記26-WWDG窗口看門狗

一、簡介 窗口看門狗用于監測單片機程序運行時效是否精準,主要檢測軟件異常,一般用于需要精準檢測程序運行時間的場合。 窗口看門狗的本質是一個能產生系統復位信號和提前喚醒中斷的6位計數器(有的地方說7位。其實都無所謂&#xff0…

ARM CCA機密計算安全模型之固件更新

安全之安全(security)博客目錄導讀 目錄 1、遠程更新 2、本地更新 3、魯棒性 1、遠程更新 Arm歡迎關于CCA固件更新需求的反饋。一般而言,CCA固件更新過程可以描述如下: CCA固件更新客戶端使用固件更新協議與遠程更新服務通信。CCA固件更新客戶端將…

Assimp的ReadFileFromMemory函數踩坑

使用ReadFileFromMemory函數加載模型的問題 使用ReadFileFromMemory函數無法加載obj和md3等模型數據分散在多個文件中的模型。obj模型通常有一部分數據(如紋理數據)在mtl文件中保存,如果只把obj文件加載到內存中,并通過ReadFileF…

機組的概述

計算機系統組成 硬件系統和軟件系統 計算機硬件 1.馮諾依曼機基本思想 特點 1.采用“存儲程序”工作方式 2.硬件系統由運算器,存儲器,控制器,輸入輸出設備組成 3.指令和數據存在存儲器中,形式無區別 4.指令和數據用二進制代…

后端開發入門超完整速成路線(算法篇)

引言 后端開發是軟件開發中不可或缺的一部分,它涉及到服務器、數據庫、API等核心組件的構建和維護。對于初學者來說,掌握算法和數據結構是進入后端開發領域的基礎。本文將為你提供一個超完整的算法學習路線,幫助你快速入門,并在文…

主鍵有多種設計

1. 自增ID id bigint NOT NULL AUTO_INCREMENT COMMENT 主鍵ID 優點: 簡單直觀自動生成遞增有序,對索引友好 缺點: 可能暴露業務信息分布式系統下需要特殊處理合并數據時可能沖突 2. UUID/GUID id char(36) NOT NULL COMMENT 主鍵ID …

【面試】后端開發面試中常見數據結構及應用場景、原理總結

在后端開發面試中,常見的數據結構包括數組、鏈表、棧、隊列、二叉樹、平衡樹、堆、圖和哈希表等。以下是這些數據結構的總結,包括它們的應用場景、優缺點。 常見數據結構及其應用場景 數據結構應用場景數組存儲固定大小的數據集合,如學生成…

TypyScript從入門到精通

TypyScript從入門到精通 TypyScript 是什么?增加了什么環境搭建二、為何需要 TypeScript三、編譯 TypeScript四、類型聲明五、類型推斷基本類型六、類型總覽JavaScript 中的數據類型TypeScript 中的數據類型1. 上述所有 JavaScript 類型2. 六個新類型:3.…

Tableau數據可視化與儀表盤搭建-安裝教程

下載 tableau.com/zh-cn/support/releases 滾動到最下方的下載 在下載的同時 我們點擊登錄,去注冊一個tableau的賬號 下面點擊我們下載好的tableau安裝程序 不要自定義安裝,會有路徑問題 點擊試用14天 點擊激活 激活學生 tableau.com/zh-cn/academic…

049_小馳私房菜_MTK Camera debug,通過adb 命令讀寫Camera sensor寄存器地址的值

一、讀取/寫入 某個寄存器地址的值 設備先adb root 1)讀取寄存器地址的值 /proc/driver # echo "0x0a34" > camsensor && dmesg |grep -i a34 2)往寄存器地址寫值 /proc/driver # echo "0x3304 0x66” > camsensor && dmesg |grep -…

Scala_【4】流程控制

第四章 分支控制if-else單分支雙分支多分支返回值嵌套分支 For循環控制包含邊界不包含邊界循環守衛循環步長嵌套循環循環返回值 While循環Break友情鏈接 分支控制if-else 單分支 雙分支 多分支 返回值 嵌套分支 For循環控制 Scala也為for循環這一常見的控制結構提供了非常多的…

Flink源碼解析之:Flink On Yarn模式任務提交部署過程解析

Flink源碼解析之:Flink On Yarn模式任務提交部署過程解析 一、Flink on Yarn部署模式概述 Apache Hadoop YARN 在許多數據處理框架中都很流行。 Flink 服務提交給 YARN 的 ResourceManager,后者會在 YARN NodeManagers 管理的機器上生成容器。 Flink 將…

Backend - C# 的日志 NLog日志

目錄 一、注入依賴和使用 logger 二、配置記錄文件 1.安裝插件 NLog 2.創建 nlog.config 配置文件 3. Programs配置日志信息 4. 設置 appsettings.json 的 LogLevel 5. 日志設定文件和日志級別的優先級 (1)常見的日志級別優先級 (2&…

ESP32自動下載電路分享

下面是一個ESP32系列或者ESP8266等電路的一個自動下載電路 在ESP32等模塊需要燒寫程序的時候,需要通過將EN引腳更改為低電平并將IO0引腳設置為低電平來切換到燒寫模式。 有時候也會采用先將IO接到一個按鍵上,按住按鍵拉低IO0的同時重新上電的方式進入燒寫…

QML自定義數值編輯框SpinBox樣式

代碼展示 import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.1Window {visible: truewidth: 640height: 480title: qsTr("Hello World")SpinBox {id: controlvalue: 50editable: truecontentItem: TextInput {z: 2text: control.textFromVal…

魅族手機調用tts失敗解決

安裝了閱讀、MultiTTS之后,發現閱讀的時候一直tts初始化失敗,換了多個tts軟件也不行。。。 解決方法:tts軟件設置后臺運行權限 打開“手機管家”權限管理后臺管理找到自己安裝的tts軟件(比如我是MultiTTS)&#xff0c…