Ssh
切換 VI 以使用退格鍵而不是 Control+H 作為退格鍵?
我在 Solaris 10 上,預設情況下
vi
是 SVR4.0 版本,安裝的是 Solaris 2.5.0。系統設置為當我 ssh 到它時
Control+H
執行退格和退格輸出^?
我添加
stty erase '^?'
到.profile
,以便在終端中退格鍵現在可以正常工作。但是,當我使用 vi 時,它仍然在輸出^?
字元。通常我會打字
:set nocompatible
來解決這個問題,但它給了我compatible: No such option - 'set all' gives all option values
set all
給我noautoindent nomodelines noshowmode autoprint nonumber noslowopen noautowrite nonovice tabstop=8 nobeautify nooptimize taglength=0 directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpptags=tags /usr/lib/tags noedcompatible prompt tagstack noerrorbells noreadonly term=xterm noexrc redraw noterse flash remap timeout hardtabs=8 report=5 ttytype=xterm noignorecase scroll=33 warn nolisp sections=NHSHH HUuhsh+c window=66 nolist shell=/bin/ksh wrapscan magic shiftwidth=8 wrapmargin=0 mesg noshowmatch nowriteany
我猜這個版本
vi
太舊了,我需要更新版本或者vim
如果我想使用set nocompatible
,但我想知道是否有另一種方法可以vi
使用退格鍵進行退格,而無需載入 vim?
好的。所以我們解決了退格鍵不起作用。
通過增加
:map! ^? ^H
到您的 .exrc 文件。要以類似方式映射箭頭鍵,您可以將以下內容添加到同一個 .exrc 文件中。
:map! ^[OA ^[ka :map! ^[OB ^[ja :map! ^[OC ^[la :map! ^[OD ^[ha
請記住,所有這些“轉義碼”不是通過簡單地為“^”字元輸入
shift
+來創建6
的,而是通過按以下鍵創建的:退格和刪除:
- ^? =
control + v
+delete
- ^H =
control + v
+control + h
向上箭頭:
- ^[OA =
control + v
+up arrow
- ^[ka =
control + v
+esc
+k
+a
向下箭頭:
- ^ [OB =
control + v
+down arrow
- ^ [和 =
control + v
+esc
+j
+a
右箭頭:
- ^[OC =
control + v
+right arrow
- ^[=
control + v
+esc
+l
+a
左箭頭:
- ^ [外徑 =
control + v
+left arrow
- ^[哈 =
control + v
+esc
+h
+a
.exrc 文件中的任何註釋行都必須用 標記
"
,而不是#
。而且你不能在你的 .exrc 文件中留下任何空行,否則第一個空行是你的 .exrc 將停止處理的地方。一旦這些都到位,vi 將開始感覺更像是為人類使用而設計的。:)
有關 .exrc 文件有多強大的範例,請查看Dave Capella 的這個 .exrc 範例。