Vim系列 選擇多行

2021-07-29 08:41:36 字數 2350 閱讀 5239

在視覺化模式下,可以對乙個文字塊的整體進行操作。例如,首先高亮選中一部分文字,然後用d命令刪除這個文字塊。視覺化模式的好處在於,你可以在做改動之前,就看到操作將影響的文字。視覺化模式可以分為以下三種:

v命令進入的字元視覺化模式(characterwise visual mode)。文字選擇是以字元為單位的。

v命令進入的行視覺化模式(linewise visual mode)。文字選擇是以行為單位的。

ctrl-v進入的塊視覺化模式(blockwise visual mode)。可以選擇乙個矩形內的文字。(注意:在windows中,ctrl-v可能已經被影射為貼上操作,可以使用ctrl-q進入塊視覺化模式。)

切換視覺化模式

通過輸入相應的視覺化命令,就可以切換到不同的視覺化模式。例如現在字元視覺化模式下,如果想要切換到塊視覺化模式,那麼只需要輸入ctrl-v即可。當然,我們也可以先用esc關閉當前的視覺化模式,然後再進入其它視覺化模式。

在視覺化模式下選擇

使用命令v進入字元視覺化模式。在此模式下,用命令移動游標,游標起始位置和當前位置之間的文字將會以高亮顯示。這時就可以對這些高亮顯示的文字進行整體的操作。例如:在字元視覺化模式中,首先用6l命令選中游標右側的6個字元,然後輸入d命令刪除高亮顯示的文字。

使用命令v進入行視覺化模式。在此模式下,我們使用2j命令,就可以選中當前行及其隨後2行。

使用命令ctrl-q進入塊視覺化模式。在此模式下,我們使用2l命令向右移動,然後使用3j命令向下移動,就可以選中4行2列的文字塊。

命令gv可以重複前一次視覺化模式時選中的文字。如果已經在視覺化模式下,執行該命令會選中前一次選擇的文字。如果重複行執gv命令,就會在當前選中的文字和前一次選中的文字之間進行切換。

在視覺化模式下移動

如果你已經在視覺化模式下選擇了若干文字,並且希望移動到已選擇文字的另一結尾處,那麼可以使用o命令。

如果你使用的是塊視覺化模式,那麼已選擇的區域將有四個角落。o命令只能移動到對面的乙個角落,這時你可以使用o命令移動到同一行的另乙個角落。

在視覺化模式下編輯

在視覺化模式下,我們可以進行各種編輯操作。如d命令可以刪除高亮顯示的文字,而d命令則會刪除一行,即使這一行中只有部分文字是高亮顯示的。類似的,y命令將複製高亮顯示的文字,而y命令會複製整行。c命令可以將高亮顯示的文字刪除並進入編輯模式,而c命令會刪除一行文字並進入編輯狀態。

針對高亮顯示的文字塊,我們可以用命令~進行大小寫轉換。

用命令>增加縮排,或用命令<減少縮排。

我們還可以利用視覺化模式,來合併多行文字。j命令可以將高亮顯示的文字內容合併為一行,同時以空格來分隔各行。如果不希望在行間插入空格,那麼可以使用gj命令。

使用g?命令,可以使用rot 13演算法來加密高亮顯示的文字。針對同乙個文字再次執行加密命令,就可以進行文字解密。

在視覺化模式下,按下:鍵就可以對選定範圍進行操作。例如:我們先在視覺化模式下選中文字,然後執行:write block.txt命令,就可以將文字塊寫入另一檔案中。選擇多行,然後執行:sort命令,則可以對選中的文字進行排序。

如果想要檢視視覺化相關的幫助資訊,可以在所希望幫助的名稱前加v_字首。例如使用:help v_d命令,可以得到關於在可視模式下進行刪除操作的幫助資訊。

退出視覺化模式

當我們想要退出視覺化模式時,可以按esc鍵或ctrl+c鍵。

命令小結

v進入字元視覺化模式   (移動一次選擇乙個字元)

v進入行視覺化模式

ctrl-v進入塊視覺化模式

ctrl-q

gv選中前一次視覺化模式時選擇的文字

o游標移動到選中文字的另一結尾

o游標移動到選中文字的另一角落

vim多行注釋

vim中多行注釋和多行刪除命令,這些命令也是經常用到的一些小技巧,可以大大提高工作效率。多行注釋 首先按esc進入命令列模式下,按下ctrl v,進入列 也叫區塊 模式 在行首使用上下鍵選擇需要注釋的多行 按下鍵盤 大寫 i 鍵,進入插入模式 然後輸入注釋符 等 最後按下 esc 鍵。注 在按下es...

GRIDVIEW多行選擇

1 頁面 給gridview新增templatefield 在templatefield 下新增 checkboxlist 選他的原因是他有 autopostback回送事件,當選擇的時候可以發出回送,從而改變背景顏色,或者其它自定義函式,在次的函式是checkboxlist1 textchange...

DBGrid多行選擇

dbgrid多行選擇 1 屬性設定 options dgmulitselect 設定為 true 2 void fastcall tform1 button1click tobject sender listbox1 items add s s 3 全選 dbgrid1 columns items ...