vi 基本設定檔

vi 基本設定檔具有預設的按鍵分派,vi 使用者應該瞭解這些按鍵分派。

下列按鍵和滑鼠事件設定並非在執行編輯器的環境(工作站配置、作業系統,Java 支援,含括編輯器應用程式等等)中全都能夠使用。 編輯器應用程式、作用中的文件剖析器和實際上的編輯器延伸也能夠延伸和修改現行編輯器視圖中的整組按鍵和滑鼠設定。

按鍵設定

vi 基本設定檔為作用中時,編輯器不會在文字區域使用按鍵分派的 keyAction 參數。取而代之的是啟動編輯器的 vi 按鍵處理常式。以下是一份編輯器 vi 按鍵處理常式可以辨識的 vi 指令清單。

指令 說明

$ 將游標移至現行行的結尾。
% 將游標移到與現行游標位置上的圓括弧、方括弧或大括弧配對的另一部分。
[n]& 重複上一個替代指令 n 次。
'x 將游標移至有 x 標示行的第一個字元。
'' 將游標移至它在上一個游標跳移指令之前的所在行的第一個字元。
[n]+ 將游標移至下面第 n 行的第一個字元。
[n], 以反方向重複上一個 fFtT 指令 n 次。
[n]- 將游標移至前面第 n 行的第一個字元。
`x 將游標移至 x 標示。
`` 將游標移至它在上一個跳移指令之前的所在位置。
["buffer][n]. 重複上一個變更指令 n 次。如果上一個變更指令使用緩衝區,則使用指定的緩衝區。
/string 搜尋 string
:abbreviate abbreviation string 設定縮寫。
:edit [name] 如果文件沒有包含未儲存的變更,則請重新載入文件。如果指定 name,則文件的名稱將會變更,並載入新檔案。
:edit! [name] 無條件重新載入現行文件。如果指定 name,則文件的名稱將會變更,並載入新檔案。
:lpex command 發出指令作為 LPEX 編輯器指令。
:quit 如果文件沒有包含未儲存的變更,則關閉文件。 如果編輯器應用程式沒有定義 quit 指令,則文件將不會關閉。
:quit! 非條件地關閉文件。如果編輯器應用程式沒有定義 quit 指令,則文件將不會關閉。
:substitute/string1/string2/[g] string1 取代為 string2。如果您要指定選用參數 g,則所有 string1 的實例將會取代為 string2
:unabbreviate abbreviation 移除指定的縮寫。
:w [name] 如果文件包含未儲存的變更,則儲存檔案。如果指定 name,則會使用指定的名稱來儲存文件。
:w! [name] 無條件儲存文件。如果指定 name,則會使用指定的名稱來儲存文件。
:wq 儲存並退出文件。如果編輯器應用程式沒有定義 quit 指令,則文件將不會關閉。
[n]; 重複上一個 fFtT 指令 n 次。
[n]<< 取消縮排 n 行。
[n]>> 縮排 n 行。
?string 向後搜尋文件中是否有 string
@buffer 在指定的緩衝區中發出指令。
@@ 重新發出上一個緩衝區指令。
^ 將游標移至此行的第一個字元。
[n]_ 將游標移至下面第 (n-1) 行的第一個字元。
[n]| 將游標移至 n 所指定的直欄。如果沒有指定 n,則游標會移至第 1 欄。
[n]~ 切換 n 個字元的大小寫。
0 將游標移至現行行的第 1 欄。
[n]a 在現行游標位置之後插入 n 次。
[n]A 在現行行的結尾插入 n 次。
[n]b 將游標移至前面第 n 個字的開頭。
[n]B 將游標移至前面第 n 個字的開頭。
["buffer]c$ 取代從現行游標位置到現行行結尾之間的文字。將刪除的文字儲存在指定的緩衝區中。
["buffer]c^ 取代從現行游標位置到現行行開頭之間的文字。將刪除的文字儲存在指定的緩衝區中。
["buffer][n]cc 取代 n 行。將刪除的文字儲存在指定的緩衝區中。
["buffer][n]cw 取代 n 個字。將刪除的文字儲存在指定的緩衝區中。
["buffer]C 取代從現行游標位置到現行行結尾之間的文字。將刪除的文字儲存在指定的緩衝區中。
["buffer]d$ 刪除從現行游標位置到現行行結尾之間的文字。將刪除的文字儲存在指定的緩衝區中。
["buffer]d^ 刪除從現行游標位置到現行行開頭之間的文字。將刪除的文字儲存在指定的緩衝區中。
["buffer][n]dd 刪除 n 行。將刪除的文字儲存在指定的緩衝區中。
["buffer][n]dw 刪除 n 個字。將刪除的文字儲存在指定的緩衝區中。
["buffer]D 刪除從現行游標位置到現行行結尾之間的文字。將刪除的文字儲存在指定的緩衝區中。
[n]e 將游標移至下面第 n 個字的結尾。
[n]E 將游標移至下面第 n 個字的結尾。
[n]fc 將游標移至右方字元 c 的第 n 個實例。
[n]Fc 將游標移至左方字元 c 的第 n 個實例。
[n]G 將游標移到 n 指示行的第一個字元。如果沒有指定 n,則會假設成文件的最後一行。
[n]h 將游標向左移 n 個字元。
[n]H 將游標移至從視窗頂端算起第 n 行上的第一個字元。
[n]i 在現行游標位置插入 n 次。
[n]I 在現行行的開頭插入 n 次。
[n]j 將游標向下移 n 行。
[n]J 加入 n 行至現行行。
[n]k 將游標向上移 n 行。
[n]l 將游標向右移 n 個字元。
[n]L 將游標移至從視窗底端算起第 n 行上的第一個字元。
mx 在現行游標位置設定標示 x
M 將游標移至視窗中間行上的第一個字元。
[n]n 重複上一個搜尋指令 n 次。
[n]N 以反方向重複上一個搜尋指令 n 次。
[n]o 在現行行之後的新行插入 n 次。
[n]O 在現行行之前的新行插入 n 次。
["buffer]p 貼上 從指定的緩衝區貼到現行游標位置之後。
["buffer]P 貼上 從指定的緩衝區貼到現行游標位置上。
[n]rc n 個字元取代為指定的字元 c
[n]R 在現行游標位置取代 n 次。
[n]s 取代 n 個字元。
["buffer][n]S 取代 n 行。將刪除的文字儲存在指定的緩衝區中。
[n]tc 將游標移至右方字元 c 的第 n 個實例前面的直欄。
[n]Tc 將游標移至左方字元 c 的第 n 個實例後面的直欄。
u 還原上一個變更。如果上一指令為 u,則復置上一個變更。
[n]w 將游標移至下面第 n 個字。
[n]W 將游標移至下面第 n 個字。
["buffer][n]x 刪除 n 個字元,並將刪除的文字儲存在指定的緩衝區中。
["buffer][n]X 刪除現行游標位置前面 n 個字元,並將刪除的文字儲存在指定的緩衝區中。
["buffer]y$ 將現行游標位置到現行行結尾之間的文字,拉入指定的緩衝區中。
["buffer]y^ 將現行游標位置到現行行開頭之間的文字,拉入指定的緩衝區中。
["buffer][n]yy n 行拉入指定的緩衝區中。
["buffer][n]Y n 行拉入指定的緩衝區中。
["buffer]yw 將現行游標位置到字尾之間的文字,拉入指定的緩衝區中。
[n]z^M 將現行行捲動至視窗頂端。如果指定 n,則會將文件第 n 行捲動至視窗頂端。
[n]z- 將現行行捲動至視窗底端。如果指定 n,則會將文件第 n 行捲動至視窗底端。
[n]z. 將現行行捲動至視窗中央。如果指定 n,則會將文件第 n 行捲動至視窗中央。
[n]^B 向後捲動 n 頁。
[n]^D 向前捲動 n 行。如果沒有指定 n,則向前捲動半頁。如果可能,保持游標在同一文字行上。
[n]^E 向前捲動 n 行。如果可能,保持游標在同一文字行上。
[n]^F 向前捲動 n 頁。
[n]^H 將游標向左移 n 個字元。
[n]^J 將游標向下移 n 行。
[n]^M 將游標移至下面第 n 行的第一個字元。
[n]^N 將游標向下移 n 行。
[n]^P 將游標向上移 n 行。
[n]^U 向後捲動 n 行。如果沒有指定 n,則向後捲動半頁。如果可能,保持游標在同一文字行上。
[n]^Y 向後捲動 n 行。如果可能,保持游標在同一文字行上。

請注意,上表中:

下列特殊按鍵在編輯器處於插入取代模式時,vi 按鍵處理常式可辨識它們:
按鍵 說明

^H 倒退到前一字元之前。
^V 不要將下一個按鍵解譯成特殊鍵。
^W 倒退到上一個字之前。
^[ 結束插入取代模式。
Esc 結束插入取代模式。

如果游標不在文字區域中,仍可套用一般的按鍵設定。底下列示的按鍵設定顯示著按鍵定義(例如,"a-d.c")及編輯器動作(例如,"blockDelete")。 如果需要完整參照按鍵的定義方式,請參閱 keyAction 參數。

a-d.c Alt+D blockDelete
a-i.c Alt+I blockLowerCase
a-k.c Alt+K blockUpperCase
a-pageDown.c Alt+Page Down findBlockEnd
a-pageUp.c Alt+Page Up findBlockStart
a-q.c Alt+Q findQuickMark
a-u.c Alt+U blockUnmark
c-a.c Ctrl+A blockMarkAll
c-backSpace.c Ctrl+Backspace deleteLine
c-end.c Ctrl+End bottom
c-enter.c Ctrl+Enter openLine
c-f.c Ctrl+F find
c-home.c Ctrl+Home top
c-j.c Ctrl+J findLastChange
c-l.c Ctrl+L locateLine
c-m.c Ctrl+M match
c-n.c Ctrl+N findNext
c-numpadEnter.c.secondary Ctrl+數字鍵盤上的 Enter 鍵 openLine
c-p.c Ctrl+P print
c-pageDown.c Ctrl+Page Down pageRight
c-pageUp.c Ctrl+Page Up pageLeft
c-s-f.c Ctrl+Shift+F findAndReplace
c-s-l.c Ctrl+Shift+L locateSequenceLine
c-s-m.c Ctrl+Shift+M findMatch
c-s-n.c Ctrl+Shift+N compareNext
c-s-p.c Ctrl+Shift+P comparePrevious
c-s-r.c Ctrl+Shift+R compareRefresh
c-s-u.c.secondary Ctrl+Shift+U comparePrevious
c-s.c Ctrl+S save
c-t.c Ctrl+T scrollTop
c-u.c Ctrl+U findUp
c-w.c Ctrl+W showAll
f1.c F1 help
f7.c F7 blockShiftLeft
f8.c F8 blockShiftRight
pageDown.c Page Down pageDown
pageUp.c Page Up pageUp

滑鼠事件設定值

以下列出的滑鼠事件設定分為滑鼠事件和動作配對。第一個字串(如 "1-a-dragged")指示滑鼠事件, 而第二個字串指示動作(如 "blockMarkToMouse")。如果需要如何定義滑鼠事件的相關資訊,請參閱 mouseAction 參數。

1-a-dragged blockMarkToMouse
1-a-pressed.1 cursorToMouse
1-a-pressed.2 blockMarkRectangleAtMouse
1-c-a-pressed.1 blockUnmark
1-c-a-s-pressed.1 blockUnmark
1-c-dragged blockMarkToMouse
1-c-pressed.1 cursorToMouse
1-c-pressed.2 blockMarkElementAtMouse
1-c-s-pressed.1 expandHideAtMouse
1-dragged blockMarkToMouse
1-pressed.1 cursorToMouse
1-pressed.2 blockMarkWordAtMouse
1-s-dragged blockMarkToMouse
1-s-pressed.1 blockMarkToMouse
2-c-s-pressed.1 expandHideAtMouse
3-c-s-pressed.1 expandHideAtMouse
3-pressed.1 popupAtMouse
a-dragged blockMarkToMouse
a-pressed.1 cursorToMouse
a-pressed.2 blockMarkRectangleAtMouse
c-a-pressed.1 blockUnmark
c-a-s-pressed.1 blockUnmark
c-dragged blockMarkToMouse
c-pressed.1 cursorToMouse
c-pressed.2 blockMarkElementAtMouse
dragged blockMarkToMouse
pressed.1 cursorToMouse
pressed.2 blockMarkWordAtMouse
s-dragged blockMarkToMouse
s-pressed.1 blockMarkToMouse
1-a-dragged.p blockMarkToMouse
1-a-pressed.1.p cursorToMouse
1-a-pressed.2.p blockMarkRectangleAtMouse
1-c-a-pressed.1.p blockUnmark
1-c-a-s-pressed.1.p blockUnmark
1-c-dragged.p blockMarkToMouse
1-c-pressed.1.p cursorToMouse
1-c-pressed.2.p blockMarkElementAtMouse
1-c-s-pressed.1.p expandHideAtMouse
1-dragged.p blockMarkToMouse
1-pressed.1.p cursorToMouse
1-pressed.2.p blockMarkWordAtMouse
1-s-dragged.p blockMarkToMouse
1-s-pressed.1.p blockMarkToMouse
2-c-s-pressed.1.p expandHideAtMouse
3-c-s-pressed.1.p expandHideAtMouse
3-pressed.1.p popupAtMouse
a-dragged.p blockMarkToMouse
a-pressed.1.p cursorToMouse
a-pressed.2.p blockMarkRectangleAtMouse
c-a-pressed.1.p blockUnmark
c-a-s-pressed.1.p blockUnmark
c-dragged.p blockMarkToMouse
c-pressed.1.p cursorToMouse
c-pressed.2.p blockMarkElementAtMouse
dragged.p blockMarkToMouse
pressed.1.p cursorToMouse
pressed.2.p blockMarkWordAtMouse
s-dragged.p blockMarkToMouse
s-pressed.1.p blockMarkToMouse
1-a-dragged.e blockMarkToMouse
1-a-pressed.1.e cursorToMouse
1-a-pressed.2.e blockMarkRectangleAtMouse
1-c-a-pressed.1.e blockUnmark
1-c-a-s-pressed.1.e blockUnmark
1-c-dragged.e blockMarkToMouse
1-c-pressed.1.e cursorToMouse
1-c-pressed.2.e blockMarkElementAtMouse
1-c-s-pressed.1.e expandHideAtMouse
1-dragged.e blockMarkToMouse
1-pressed.1.e expandHideAtMouse
1-pressed.2.e expandHideAtMouse
1-pressed.3.e expandHideAtMouse
1-s-dragged.e blockMarkToMouse
1-s-pressed.1.e blockMarkToMouse
2-c-s-pressed.1.e expandHideAtMouse
3-c-s-pressed.1.e expandHideAtMouse
3-pressed.1.e popupAtMouse
a-dragged.e blockMarkToMouse
a-pressed.1.e cursorToMouse
a-pressed.2.e blockMarkRectangleAtMouse
c-a-pressed.1.e blockUnmark
c-a-s-pressed.1.e blockUnmark
c-dragged.e blockMarkToMouse
c-pressed.1.e cursorToMouse
c-pressed.2.e blockMarkElementAtMouse
dragged.e blockMarkToMouse
pressed.1.e expandHideAtMouse
pressed.2.e expandHideAtMouse
pressed.3.e expandHideAtMouse
s-dragged.e blockMarkToMouse
s-pressed.1.e blockMarkToMouse

相關概念
編輯器指令、動作和參數
編輯器設定檔

相關參照
預設編輯器指令
編輯器參數
keyAction 參數
mouseAction 參數