Vim 命令常用功能詳解

来源:https://www.cnblogs.com/thelovelybugfly/archive/2019/05/09/10841618.html
-Advertisement-
Play Games

Vim編輯器 文本編輯器 , 字處理器ASCIIvi:Visual Interface vim :VI iMproved 全屏編輯器,模式化編輯器vim 模式:編輯模式(命令模式)輸入模式末行模式 模式轉換:編輯模式-->輸入模式: i : 在當前游標所在的字元的前面,轉為輸入模式 a : 在當前光 ...


Vim編輯器

文本編輯器 , 字處理器
ASCII
vi:Visual Interface
vim :VI iMproved

全屏編輯器,模式化編輯器
vim 模式:
編輯模式(命令模式)
輸入模式
末行模式


模式轉換:
編輯模式-->輸入模式:
i : 在當前游標所在的字元的前面,轉為輸入模式
a : 在當前游標所在的字元的後面,轉為輸入模式
o :在當前游標所在行的下方,新建一行,並轉為輸入模式

I : 在當前游標所在行的行首,轉為輸入模式
A : 在當前游標所在行的行尾,轉為輸入模式
O : 在當前游標所在行的上方,新建一行,並轉為輸入模式

輸入模式--> 編輯模式
ESC

末行模式-->編輯:
ESC,ESC

一 : 打開文件
#vim /path/to/somefile
vim +#: 打開文件,並定位於第#行
vim + :打開文件,定位於最後一行
vim + /PATTERN : 打開文件,定位至第一次被PATTERN匹配到的行首

預設處於編輯模式

二: 關閉文件 `
1 末行模式關閉文件
:q 退出
:wq 保存並退出
:q! 不保存退出
:w 保存
:w! 強行保存
:wq -->x

2 編輯模式下退出
ZZ:保存並退出

三 移動游標
1 逐字元移動:
h:左
l:右
j:下
k:上
#h:移動#個字元:
2 逐單詞移動
w: 移至下一個單詞的詞首
e: 移至當前或下一個單詞的詞尾
b: 跳至當前或前一個單詞的詞首
#w
3 行內跳轉:
0:跳至絕對行首
^: 跳至行首的第一個非空白字元
$: 跳至絕對行尾
4 行間跳轉
#G: 跳轉至第#行
G:最後一行
末行模式下,直接給出行號即可

四 翻屏
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏

五 刪除單個字元
X: 刪除游標所在處的單個字元
#X:刪除游標所在處及向後的共#個字元

六 刪除命令:d
d 命令跟跳轉命令組合使用:
#dw.#de,#db

dd: 刪除當前游標所在行
#dd 刪除包括當前游標所在行內的#行

末行模式下:
startadd,endadd 刪除第start行到第end行中間的行
.: 表示當前行
$: 表示當前行
+$:向下的#行

七 粘貼命令:p
p:如果刪除或複製的為整行內容,則粘貼至游標所在行的下方,如果複製或刪除的內容為非整行,則粘貼至游標所在的字元的後面;
P:如果刪除或複製的為整行內容,則粘貼至游標所在行的上方,如果複製或刪除的內容為非整行,則粘貼至游標所在的字元的前面;

八 複製命令 y
用法同d

九 修改: 先刪除內容,再轉換為輸入模式
c:用法同d命令

十 替換 :r
R 替換模式

十一 撤銷編輯操作
u:撤銷前一次的編輯操作
連續u命令 可撤銷此前的n次操作
#u : 直接側小最近#次編輯操作
Ctrl + r :撤銷最近一次測消操作

十二 重覆前一次編輯操作
.

十三 可視化模式
v:按字元選取
V:按矩形塊選取

十四 查找
/PATTERN
?PATTERN
n
N

十五 查找並替換
在末行模式下使用s命令(用法同sed命令)
ADDR1,ADDR2s@PATTERN@string@gi
1,$ :表示第一行到行尾(表示全文)
%: 表示全文

十六 使用vim 編輯多個文件
vim file,file2,file3
:next 切換至下一個文件
:prev 切換至前一個文件
:last 切換至最後一個文件
:first 切換至第一個文件

十七 分屏顯示一個文件
Ctrl +w,s:分屏拆分視窗
Ctrl +w,v:垂直拆分視窗

在視窗間切換游標
Ctrl+w,ARROW(箭頭)
:qa 關閉所有視窗

十八 分視窗編輯多個文件
vim -o : 水平分割顯示
vim -O :垂直分割顯示


十九 將當前文件的部分內容,另存為另一個文件
末行模式下使用W命令
:w
:ADDR1,ADDR2w/path/to/somewhere

二十 將另一個文件的內容填充在當前文件中
:r /path/to/somewhere

二十一 跟shell交互
:! COMMAND

二十二 高級應用
1 顯示或取消取消顯示行號
:set number -->set nu
:set nonu

2 顯示忽略或區分字元大小寫
:set ignorecase --> set ic
:set noignorecare --> set noic

3 設置自動縮進
:set autoindent --> set ai
:setnoai

4 查找到的文本高亮顯示或取消
:set hlsearch
:set nohlsearch

5 語法高亮
:syntax on
:syntax off

二十三 配置文件
/etc/vimc
~/.vimrc

 


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

-Advertisement-
Play Games
更多相關文章
  • 上一章快速使用SqlSugar搭建了netcore api項目,我的第一個netcore2.2 api項目搭建(一) 這一章實現目標二:api使用Swagger,實現api文檔管理 效果圖:第一張收縮,第二張展開,共有2個控制器:values和Account;控制器有註釋,api有註釋,實體有註釋 ...
  • 遷移的時候發現,ef6 不能添加 到 .NET Standard2 的類庫,因為不相容, 6 以上的版本只能用於 .net 4.5 以上 只能用別的 ...
  • 可以做冪運算,根號運算,十進位與二進位互轉,16進位與十進位互轉 namespace WindowsFormsApplication15{ public partial class 祥哥計算器 : Form { public 祥哥計算器() { InitializeComponent(); } #r ...
  • 早早就想入門netcore,一直沒下定決心,這次正好碰上項目服務變更,便想著入坑試試,邊學邊用。 目標: 一.api使用core版的SqlSugar,集成orm,實現快速開發 二.api使用Swagger,實現api文檔管理 三.api添加身份驗證功能 開發環境: Win10、VS2017、orac ...
  • Abp計劃在今年6月發佈v1.0. 但可能被標記為Beta版本, 因為.Net Core 3.0將帶來很多重大變化. Abp團隊希望基於.Net Core 3.0推出1.0的穩定版本. .NET Core 3.0 RC版定於2019年7月發佈 GA版定於2019年9月發佈 綜上所述Abp vNext ...
  • 1.401錯誤,通常是指向訪問文件授權問題導致的,利於系統採用域賬號登錄,windows身份認證開啟,例如在做一些不需要登錄的介面的時候,通常會報401錯誤;解決方式如下: 找到身份驗證,雙擊打開 打開匿名訪問即可;由於不可能所有的文件都匿名訪問,可以設置個別文件為匿名訪問,401錯誤,解決 2.5 ...
  • 昨天有練習對數字陣列進行排序,《C#陣列Array排序》https://www.cnblogs.com/insus/p/10825174.html 其實一切都弄得很複雜,array已經有2個方法OrderBy和OrderByDescending: 參考下麵代碼演示: int[] ints = { 1 ...
  • 第1節:安裝screen1.載入系統鏡像文件,因為screen的安裝包在系統鏡像文件中圖001 2.列出系統上所有的磁碟[root@centos6 ~]# lsblk圖002 3.安裝screen應用命令過程圖003 圖004 第2節:應用screen1.發起名為help的會話 [root@cent ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...