vi 基本設定檔具有預設的按鍵分派,vi 使用勢應該瞭解這些按鍵分派。
某些按鍵及滑鼠事件設定可能不適用於正在執行編輯器的環境(工作站配置、作業系統、Java 支援、含括應用程式等)。編輯器已在執行中。 在目前編輯器視圖中的按鍵及滑鼠設定也可能由編輯器應用程式、作用中的文件剖析器及編輯器副檔名加以延伸及修改。
當 vi 基本設定檔為作用中時,編輯器不會在文字區域使用按鍵分派的 keyAction 參數。取而代之的是啟動編輯器的 vi 按鍵處理程式。
下列為編輯器的 vi 鍵處理常式所組織的 vi 指令。
指令 | 說明 |
---|---|
|
|
$ | 將游標移至現行行的結尾。 |
% | 將游標移至與現行游標位置上的圓括弧方括弧或大括弧配對的另一部份。 |
[n]& | 重複上一個替代指令 n 次。 |
'x | 將游標移至有 x 標記行的第一個字元。 |
'' | 將游標移至它在上一個游標跳移指令之前的所在行的第一個字元。 |
[n]+ | 將游標移至下面第 n 行的第一個字元。 |
[n], | 以反方向重複上一個 f、F、t 或 T 指令 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]; | 重複上一個 f、F、t 或 T 指令 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-f7.c | Alt+F7 | blockShiftLeft |
a-f8.c | Alt+F8 | blockShiftRight |
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+Numpad Enter | openLine |
c-p.c | Ctrl+P | |
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 |
pageDown.c | Page Down | pageDown |
pageUp.c | Page Up | pageUp |
下列滑鼠事件設定值分為滑鼠事件及動作配對。 第一個字串(例如,"1-a-dragged")指出滑鼠事件,而第二個字串指出動作(例如,"blockMarkToMouse")。 如需滑鼠事件定義方法的相關資訊,請參閱 mouseAction 參數。
預設編輯器指令
編輯器參數
keyAction 參數
mouseAction 參數
Copyright IBM Corporation 1992, 2004. All Rights Reserved.