web-dev-qa-db-ja.com

バックスペースにControl + Hではなくバックスペースキーを使用するようにVIを切り替えますか?

私は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は古すぎて、set nocompatibleを使用する場合は、新しいバージョンまたはvimが必要だと思いますが、疑問に思っています- vimをロードせずにバックスペースをバックスペースに使用するためにviを取得する別の方法はありますか?

7
cwd

oK。そこで、バックスペースキーが機能しないことを解決しました。

追加することにより

: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
  • ^ [ja = control + v+esc+j+a

右矢印:

  • ^ [OC = control + v+right arrow
  • ^ [la = control + v+esc+l+a

左矢印:

  • ^ [OD = control + v+left arrow
  • ^ [ha = control + v+esc+h+a

.exrcファイルのコメント行は、"ではなく#でマークする必要があります。また、.exrcファイルに空白行を残すことはできません。空白にしないと、最初の空白行が.exrcの処理を停止します。

これらが配置されると、viは人間が使用するために設計されたように少し感じ始めます。 :)

.exrcファイルの強力さの例については、Dave Capellaによる この.exrcの例 を確認してください。

6
Tim Kennedy