Ssh

切換 VI 以使用退格鍵而不是 Control+H 作為退格鍵?

  • September 12, 2017

我在 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 範例

引用自:https://unix.stackexchange.com/questions/23200