vim 高階功能
本文章原創首發於公眾號:程式設計三分鐘 ,文末二維碼。
文字編輯、跳轉、刪除、複製、替換這些操作用vim確實是快;但是好像僅僅是這樣根本不能說服我vim
超過滑鼠的地方。
花點時間弄熟這些,除了炫技意外,主要為了防止深夜被拉起來救火,機房還不能遠端,連夜打車到了地方,卻發現伺服器沒有圖形化介面,這個時候要是指令碼寫的熟,vim
操作6
幾下修復完了,能儘量降低損失,也能睡個好覺了。
高階功能入門
常用操作在之間的文章我們已經已經掌握了,接下來就要搞一點高階操作,基本誰看見都要感嘆一聲“你vim
怎麼這麼6!。
- 同時修改多個檔案、快速在檔案之間切換
- 編輯多個文件時分屏操作
- 批量註釋多行程式碼、修改配置、區域複製刪除
多檔案的編輯
同時編輯兩個檔案1.txt
,2.txt
vim 1.txt 2.txt
檢視同時打開了哪些檔案 :ls
,其中%a
表示正在編輯的檔案。
在檔案之間切換 :n
, :N
直接切換到想要編輯的檔案 :b 1.txt
當然了我們為什麼跳來跳去,因為這可以完成多個檔案之間複製貼上等組合操作。
分屏
建立分屏
:sp 2.txt
開啟新的水平分屏(上下)視窗來編輯2.txt
:vsp 2.txt
開啟新的垂直分屏(左右)視窗來編輯2.txt
分屏跳轉與移動分屏
我先打開了三個檔案,1.txt
2.txt
3.txt
現在我分別跳轉到各個檔案中,刪除檔案內容。
普通模式下Ctrl+w j
普通模式下Ctrl+w k
移至上面視窗
普通模式下Ctrl+w h
移至左邊視窗
普通模式下Ctrl+w l
移至右邊視窗
現在我垂直打開了三個檔案,使用以下命令移動視窗,先把檔案3
從最左邊移動到最右邊,再移動下最下邊
普通模式下Ctrl+w J
將當前視窗移至下面
普通模式下Ctrl+w K
將當前視窗移至上面
普通模式下Ctrl+w H
將當前視窗移至左邊
普通模式下Ctrl+w L
將當前視窗移至右邊
只要位於相應視窗,:q
:wq
q!
退出就可以;wqa
或qa!
全部退出
可視模式
可視模式分為三種,也是vim
的精髓。分別是行,矩形區域選擇,字元段落選擇。
和滑鼠選擇類似,進入可視模式加定位符號就可以快速跳轉到想選擇的範圍,選中以後再進行復制,刪除等操作。
行選擇
行選擇 Shift+v(小寫)
, 整行選取,可以上下移動游標選更多的行,再按一次 Shift+v
就可以取消選取。
如下,進入行選擇模式,輸入4G
,跳轉到第四行,d
刪除所選區域。
矩形區域選擇
矩形區域選擇Ctrl+v(小寫)
,按區域選取,可以上下左右移動游標選更多的區域,再按一次 Ctrl+v
就可以取消選取。
如下:選擇所有的行和第一列所在在區域,shift+i
進入插入模式,插入#
,雙擊兩次esc
,批量註釋。然後重複選擇動作,輸入x
刪除所選區域。
字元選擇(段落選擇)
字元選擇 v(小寫)
,可以移動游標,游標走過的地方就會選取。再次按下v
後就會取消選取。
如下:v$
選中192.168.1.2
退一格為了不選中換行符,到第一行貼上ip
再選中不需要的ip刪除掉。
視覺化模式和定位符結合使用效果最佳!
小結
同時編輯多個檔案: vim 1.txt 2.txt
, 切換檔案 :n
、:N
、:b 1.txt
分屏 :sp 2.txt
:vsp 2.txt
,跳轉Ctrl+w h|j|k|l
移動分屏位
置Ctrl+w H|J|K|L
可視模式 Shift+v
、Ctrl+v
、v
vim
命令比較多,這裡只列舉最有用的,足以應對全部的場景了,記的越多速度越快!
相關推薦
vim 高階功能
本文章原創首發於公眾號:程式設計三分鐘 ,文末二維碼。 文字編輯、跳轉、刪除、複製、替換這些操作用vim確實是快;但是好像僅僅是這
Chrome 調試工具的一些高階功能
riak 版本 tools 自動 內容 form cm5 -i mri Chrome 內置抓包工具 Block requests 截取長圖 代碼的覆蓋率分析 Make site better Chrome 內置抓包工具 在瀏覽器地址欄輸入chrome://net-int
【原創】Redis高階功能之 慢查詢
一、何為慢查詢? 慢查詢功能可以有效地幫助我們找到 Redis 可能存在的瓶頸 要想理解慢查詢的定義是什麼,我們可以參見下圖。當我們在客戶端傳送命令給 Redis之後,Redis 需要對這些查詢進行排隊處理。如果這條查詢命令在內部執行的時間超過了已經配置好的時限,那麼這條命令(查詢)
postgreSQL高階功能_02
-- 測試表CREATE TABLE employees ( employee_id serial PRIMARY KEY, employee_name VARCHAR (255) NOT NULL); CREATE TABLE keys ( employee_id INT PRIMARY KEY, effe
HDFS(七)—— HDFS 的高階功能
HDFS 的高階功能主要包括: 回收站:便於找到誤刪的資料。 快照:對資料的備份。 配額:限制目錄中檔案的數量和大小。 一、回收站(trash) 預設回收站是關閉的,可以通過在 core-site.xml 中新增 fs.trash.inte
PCIe Switch高階功能及應用
PCI-E Switch晶片,估計不少人已經聽說過這個東西了。但是估計多數人對其基本功能知之甚少。PCI-E Switch作為最先進的生產力,已經被廣泛應用在了傳統儲存系統,以及少量品牌/型號的伺服器平臺。 筆者作為擁有全球最領先PCI-E Switch產品的PMC-Sierra公司的系統架構師,想
建立自己的ERC20加密貨幣(可管理、增發、兌換、凍結等高階功能的代幣)
(注:本文是在原文的基礎上,根據個人的理解,修改部分內容並添加了一些註釋) pragma solidity ^0.4.16; interface tokenRecipient { function receiveApproval(address _from, uint
組合使用QT的資源管理高階功能簡化開發過程
#include "AppHelper.h" // http://qt-project.org/doc/qt-5/qdir.html#setSearchPaths // http://qt-project.org/doc/qt-5/resources.html
友盟(三)高階功能
一、自定義事件 自定義事件可以實現在應用程式中埋點來統計使用者的點選行為,比如:統計使用者的點選事件,統計使用者都點選了什麼;統計使用者搜尋的關鍵字,看使用者都偏好什麼產品等等。自定義事件目前包括:計數事件和計算事件。 計數事件:計數事件統計事件的發生
比特幣錢包高階功能使用命令
31 getreceivedbyaddress 取得地址收款金額 ★★★ 地址 <bitcoinaddress> [minconf=1] 返回指定地址<bitcoinaddress>上收到至少[minconf]個確認的收款交易總金額。雖然有些人可能會認為這很明顯,返回值只統計該地址的收
transwarp Slipstream 簡介之高階功能
1. 監控告警 Slipstream整合監控告警工具Alert4J,用於在流應用出問題的時候報錯,支援郵件推送,也可以與微信、其 他監控工具整合。 Alert4J當前版本沒有專門的配置介面,將在下個版本時支援。當前版本可以通過增加alert4j.proper
Altium Designer高階功能初探之:匹配線長
Matched Length design in Altium Designer Altium Designer中的線長匹配設計 Along with high speed signal existing in the PCB Board, so we need
阿里雲Aliplayer高階功能介紹(一):視訊截圖
基本介紹 H5 Video是不提供截圖的API的, 視訊截圖需要藉助Canvas,通過Canvas提供的drawImage方法,把Video的當前畫面渲染到畫布上, 最終通過toDataURL方法可以匯出圖片的base64編碼,基本就完成了圖片截圖的功能。 功能實現 Canvas介面介紹 drawIm
阿里雲 Aliplayer高階功能介紹(三):多字幕
基本介紹 國際化場景下面,播放器支援多字幕,可以有效解決視訊的傳播障礙難題,該功能適用於視訊內容在全球範圍內推廣,阿里雲的媒體處理服務提供介面可以生成多字幕,現在先看一下具體的效果: WebVTT格式介紹 多字幕現在支援HLS的格式,後期會去實現Dash格式的支援。 字幕檔案 字幕的內容使用
阿里雲 Aliplayer高階功能介紹(二):縮圖
基本介紹 Aliplayer提供了縮圖的功能,讓使用者在拖動進度條之前知道視訊的內容,使用者能夠得到很好的播放體驗,縮圖是顯示在Controlbar的上面,並且包含當前的時間,阿里雲的媒體處理服務提供介面可以生成縮圖的功能, 先看一下基本的效果: 縮圖的格式 WebVTT介紹 縮圖採用了web
阿里雲 Aliplayer高階功能介紹
Aliplayer除了一些基本功能,還有一些高階的功能,可能需要雲端配合才可以使用,或者播放器本身需要做更多的配置,希望寫一些檔案介紹如何使用和介紹一下簡單的實現原來,讓使用者瞭解這些功能,更好的使用播放器,文章不僅介紹內建的功能,還會包含通過外掛寫的其他功能。 官方文件線上配置功能展示視訊播放診斷工具
阿里雲 Aliplayer高階功能介紹(六):進度條標記
基本介紹 Aliplayer在進度條上提示時間和縮圖功能外,還可以進行視訊內容的提示打點,當然不止是進度條上顯示打點的內容,還提供一組介面,方便使用者進行打點時間和內容的獲取, 基本UI如下圖所示: 介面和屬性介紹 播放器提供了progressMakers屬性,是一個數組型別,每一條記錄包含off
Mybatis學習筆記(3)之高階功能
高階功能 對映關係 一對一對映 SQL語句:使用者訂單查詢 SELECT orders.*, USER.username, USER.sex, USER.address FROM orders, USER WHERE orders.user_id = u
Spring MVC入門第4天--springmvc高階功能
文件版本 開發工具 測試平臺 工程名字 日期 作者 備註 V1.0 2016.07.05 lutianfei none
vim 游標快速移動技巧總結(vim高階操作的基礎)
以下說法,僅個人觀點。 vim移動方式,並非只有hjkl這樣簡單粗暴的方式。熟悉更多移動游標的方式,對其它類似複製、change、delete等操作都有意想不到的用處。比如d/abc表示刪除至abc字元之前,解釋一下就是/abc表示查詢關鍵詞abc,d表