1. 程式人生 > >vim 高階功能

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!退出就可以;wqaqa!全部退出

可視模式

可視模式分為三種,也是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+vCtrl+vv

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表