最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

【轉(zhuǎn)載】技巧:Vim的縱向編輯模式

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 15:58:59
文檔

【轉(zhuǎn)載】技巧:Vim的縱向編輯模式

【轉(zhuǎn)載】技巧:Vim的縱向編輯模式:如果要我選一個Vim中讓我覺得 Life Changing 功能的話,我一定會選 Vim的塊編輯功能 ,也就是 Ctrl+V ,雖然還有些別的編輯器也有這功能,但目前為止,我從中受益頗大 技巧:Vim 的縱向編輯模式 Vim 的縱向編輯模式功能強大。本文介紹了 Vim 縱向編輯模
推薦度:
導(dǎo)讀【轉(zhuǎn)載】技巧:Vim的縱向編輯模式:如果要我選一個Vim中讓我覺得 Life Changing 功能的話,我一定會選 Vim的塊編輯功能 ,也就是 Ctrl+V ,雖然還有些別的編輯器也有這功能,但目前為止,我從中受益頗大 技巧:Vim 的縱向編輯模式 Vim 的縱向編輯模式功能強大。本文介紹了 Vim 縱向編輯模

如果要我選一個Vim中讓我覺得 Life Changing 功能的話,我一定會選 Vim的塊編輯功能 ,也就是 Ctrl+V ,雖然還有些別的編輯器也有這功能,但目前為止,我從中受益頗大 技巧:Vim 的縱向編輯模式 Vim 的縱向編輯模式功能強大。本文介紹了 Vim 縱向編輯模式并

如果要我選一個Vim中讓我覺得Life Changing功能的話,我一定會選Vim的塊編輯功能,也就是Ctrl+V,雖然還有些別的編輯器也有這功能,但目前為止,我從中受益頗大

技巧:Vim 的縱向編輯模式

Vim 的縱向編輯模式功能強大。本文介紹了 Vim 縱向編輯模式并結(jié)合 VisIncr 這個插件在開發(fā)測試場景中的應(yīng)用,讓讀者更直觀了解 Vim 的縱向編輯模式這一功能。

開始之前

人類大腦對文字的處理是平面式的,所以我們?yōu)g覽文章、查找資料或者重構(gòu)代碼,要么是橫向讀,要么是縱向讀,要么使用搜索功能,將文字作為一個平面整體。而在編輯文字、編寫代碼的時候則不是橫向就是縱向。常規(guī)文本編輯器都是橫向編輯,而縱向編輯也常被作為特色功能。比如 Vim、EditPlus、UltraEdit 這些編輯器都有縱向編輯模式,或者稱為列模式。像日常文字處理工具 MicroSoft Word、OpenOffice Writer 也可以通過按下功能鍵 ALT,實現(xiàn)縱向選中文本,然后對文本進行操作。縱向編輯不僅是編輯器的一種功能,更是人們思考問題的一種方式,項目符號、段落編號,都是縱向編輯的體現(xiàn)。

Vim 的縱向編輯模式啟動方便,使用靈活,還可以配合上插件實現(xiàn)很實用的高級功能。

啟動方法

在 Vim 命令模式下,移動游標(biāo)定位于某一個位置,鍵入 ctrl-v后狀態(tài)欄上出現(xiàn) VISUAL BLOCK 字樣,即進入縱向編輯模式。移動游標(biāo)以按需選擇待編輯的區(qū)域。注意:在 Windows 版本的 Vim 中,鍵組合 ctrl-v通常被映射為文本粘貼,所以 Window 版的 Vim 的縱向編輯模式由 ctrl-q啟動。當(dāng)然靈活的 Vim 也可以由用戶自行定義組合鍵。

示例 1:縱向編輯在批量修改代碼的應(yīng)用演示

將數(shù)列:

 10.1.5.214 
 10.1.5.212 
 10.1.5.210

編輯成序列:

 ping -c 4 10.5.5.214 >> result0 
 ping -c 4 10.5.5.212 >> result0 
 ping -c 4 10.5.5.210 >> result0

這是一個將 IP 數(shù)列修改成可執(zhí)行的 ping 命令序列的過程。

第一步:修改

將 IP 數(shù)列中第二段所有數(shù)字“1” 修改為“5”:

將游標(biāo)定位第一個行 IP 地址第二段的“1”

ctrl-v 進入縱向編輯模式

G 移動游標(biāo)到最后一行,可視塊覆蓋所要修改的列

r 進入修改模式

5 輸入數(shù)字“5”

ESC 退出縱向編輯模式,同時所有被選中的數(shù)字都被改成了“5”,并回到命令模式

結(jié)果如下:

 10.5.5.214 
 10.5.5.212 
 10.5.5.210

第二步:前添加

在所有行之前添加“ping – c 4 ”:

將游標(biāo)定位到第一行第一列

ctrl-v 進入縱向編輯模式

G 移動游標(biāo)到最后一行第一列,可視塊覆蓋了第一列

I 進入行首插入模式

ping -c 4 輸入所要求字符“ping – c 4 ”

ESC 退出縱向編輯模式的同時所有選中的字符前都添加了“ping – c 4 ”,回到命令模式

結(jié)果如下:

 ping -c 4 10.5.5.214 
 ping -c 4 10.5.5.212 
 ping -c 4 10.5.5.210

第三步:后添加

在所有行之后添加“>> result0”:

將游標(biāo)定位到第一行最后一列

ctrl-v 進入縱向編輯模式

G 移動游標(biāo)到最后一行最后一列,VISUAL   BLOCK  覆蓋了最后一列

A 進入行尾插入模式

>> result 輸入所要求字符“>> result0”

ESC 退出縱向編輯模式的同時所有選中的字符后都添加了“ >> result0”,回到命令模式

結(jié)果如下:

 ping -c 4 10.5.5.214 >> result0 
 ping -c 4 10.5.5.212 >> result0 
 ping -c 4 10.5.5.210 >> result0

以上三個步驟有一個共同特點,就是都縱向為編輯方向。以上由三行代碼為例的方法同樣也可以適用于更多的行。

VisIncr 安裝與操作

以上例子中所演示的對代碼的縱向編輯,通過一般的代碼重構(gòu)功能或者結(jié)合正則表達(dá)式的查找替換也可以實現(xiàn)。然而 Vim 的縱向編輯模式還可以通過插件 VisIncr 的擴展,實現(xiàn)更豐富的功能,如縱向的生成數(shù)列。

從 Vim 的官方網(wǎng)站上搜索找到 VisIncr 插件的安裝文件,并下載到 Vim 工作目錄。執(zhí)行以下命令即可安裝該插件:

 vim visincr.vba.gz 
 :so % 
 :q

操作方法以示例 1 的代碼為例:

使用 ctrl-v和移動光標(biāo)選擇最后都為數(shù)字“0”的一列

:鍵入冒號觸發(fā) Vim 進入命令行模式

:I以第一個數(shù)字為出發(fā)點,縱向生成增量數(shù)列,幅度為 1

ENTER 鍵入駕車鍵執(zhí)行命令

結(jié)果如下:

 ping -c 4 10.5.5.214 >> result0 
 ping -c 4 10.5.5.212 >> result1 
 ping -c 4 10.5.5.210 >> result2

示例 2:VisIncr 在生成測試數(shù)據(jù)的應(yīng)用演示

在應(yīng)用程序開發(fā)過程中經(jīng)常要生成一個簡單有規(guī)律的測試數(shù)據(jù)。比如對一張表:

 testTable (”ipaddr” ,”filename”, ”owner”)

生成如下 SQL 語句:

 insert into test values("10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result1”,”testb”); 
 insert into test values(”10.5.5.210”,”result2”,”testc”);

這個縱向有規(guī)律的語句序列,可以借助 VinIncr 應(yīng)用縱向編輯功能來構(gòu)造。

第一步:準(zhǔn)備

打開一個新的 Vim 編輯頁面,在命令模式下先輸入一個“3”,然后鍵入“i”進入編輯模式。數(shù)字“3”代表本次輸入的內(nèi)容會重復(fù)輸 3 遍。

在 VIM 中先輸入第一行:

 insert into test values(”10.5.5.214”,”result0”,”testa”);

以回車結(jié)束行輸入并新開一行,按 ESC 鍵退出編輯模式。

如下:

 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.214”,”result0”,”testa”);

第二步:構(gòu)造遞減數(shù)列

對于 ipaddr 列,使用 ctrl-v和移動光標(biāo)選擇 IP 地址最后一段以 2 為幅度遞減的部分:

: 鍵入冒號觸發(fā) Vim 進入命令行模式\

:I -2 以第一個數(shù)字為出發(fā)點,縱向生成遞減數(shù)列,幅度為 2

ENTER 鍵入駕車鍵執(zhí)行命令

結(jié)果如下:

 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result0”,”testa”); 
 insert into test values(”10.5.5.210”,”result0”,”testa”);

第三步:構(gòu)造遞增數(shù)列

對于 filename 列,使用上一節(jié)介紹的方式,結(jié)果如下:

 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result1”,”testa”); 
 insert into test values(”10.5.5.210”,”result2”,”testa”);

第四步:構(gòu)造字母遞增數(shù)列

對于 owner 列,使用 ctrl-v和移動光標(biāo)選擇英文字母將要遞增的部分。

: 鍵入冒號觸發(fā) Vim 進入命令行模式

:IA 以第一個字母為出發(fā)點,縱向生成按字母表排序的序列

ENTER 鍵入回車鍵執(zhí)行命令

結(jié)果如下:

 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result1”,”testb”); 
 insert into test values(”10.5.5.210”,”result2”,”testc”);

以上步驟即演示了借助 Vim 插件 VisIncr 對代碼的縱向編輯,生成在縱向有邏輯規(guī)律的數(shù)列。

總結(jié)

Vim 不僅是一個編輯工具還是一套思考方法,Vim 有很多引導(dǎo)思維方向的技巧,讓 Vim 在這個各種編輯器層出不窮的時候歷久彌新。本文從縱向編輯為切入點,結(jié)合 VisIncr 演示了開發(fā)、測試過程中可以使用的實例

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

【轉(zhuǎn)載】技巧:Vim的縱向編輯模式

【轉(zhuǎn)載】技巧:Vim的縱向編輯模式:如果要我選一個Vim中讓我覺得 Life Changing 功能的話,我一定會選 Vim的塊編輯功能 ,也就是 Ctrl+V ,雖然還有些別的編輯器也有這功能,但目前為止,我從中受益頗大 技巧:Vim 的縱向編輯模式 Vim 的縱向編輯模式功能強大。本文介紹了 Vim 縱向編輯模
推薦度:
標(biāo)簽: 一個 模式 技巧
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top