挿入モードのバックスペースキーは文字を削除しません。

挿入モードのバックスペースキーは文字を削除しません。

私はここで初めてです。、実は今日からviを学び始めましたが詰まっていますバックスペースキーキー。実際、Ubuntu 12.04でviを初めて起動したとき、バックスペースキーは正しく機能しましたが、それ以降は奇妙に動作し始めました。挿入モードでバックスペースを押すたびに文字は削除されず、1桁だけ左に移動します。デフォルトのバックスペース機能を復元する方法は? vimをインストールしたり、非互換性を設定したくありません。

答え1

  1. vi実際に一般を通じて使用していることを確認してください。

    $ vi --version | head -n 1

    これは私のコンピュータに提供されています(Debian 7)

    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)

    vimはviに似ています。これは、vimがviモードで開くシンボリックリンクのみを持つコマンドラインのvi代わりにコマンドを提供することによって行うことができます。を使用してこれを確認できます。vimvivim:set compatible?

  2. 前の回答で述べたように、バックスペースキーの効果は有効なinsert modeままである場合にのみ表示されます。set compatible

insert mode注:vi互換モードでは、以前に入力したテキスト(入力前)またはeolのテキストまたはインデントでバックスペースを使用することはできませんinsert mode。バラより :help 'bs'

    'backspace' 'bs'        string  (default "")
                            global
                            {not in Vi}
    Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
    mode.  This is a list of items, separated by commas.  Each item allows
    a way to backspace over something:
    value   effect
    indent  allow backspacing over autoindent
    eol     allow backspacing over line breaks (join lines)
    start   allow backspacing over the start of insert; CTRL-W and CTRL-U
            stop once at the start of insert.

    When the value is empty, Vi compatible backspacing is used.
    For backwards compatibility with version 5.4 and earlier:
    value   effect
      0     same as ":set backspace=" (Vi compatible)
      1     same as ":set backspace=indent,eol"
      2     same as ":set backspace=indent,eol,start"

これが何を意味するのかを知るには、別の設定を試してください。挿入モードで文字/改行とインデントを入力し、挿入モードを終了して再入力して、バックスペースを試してください。

viの動作に慣れておらず、一般的なviの使用に固執していないユーザー(いかなる場合もお勧めできません)は、これを行う必要があります:set backspace=indent,eol,start。私が知っている限り、Debianではこの設定を使用してシステム全体の設定ファイルをインストールするのが一般的です。

で現在の設定をインポートできます:set bs?

答え2

ユーザーのホームディレクトリにまだ存在しない場合は、.vimrcという新しいファイルを作成します。ここではviを使って同時に作成して編集します。

sudo vi ~/.vimrc

まず、互換モードとバックスペース消去機能をオフにする次のコマンドを追加します。

set nocp
set backspace=indent,eol,start

以下を使用してファイルを保存して終了します。

:wq

互換モードをオフにすると、古いviユーザーになじみのある矢印キーを使用できます。

ファイルを作成するときにsudoを使用したため、ファイルの所有権はおそらくrootです。ユーザーにファイルを表示できます。

私の場合はRaspberry Pi用なので、ユーザーとグループはpiでした。

chown pi:pi ~/.vimrc

今viを再起動してお楽しみください!

答え3

時々、viコマンドはのエイリアスであり、vim呼び出し時に対応するviviモードがアクティブになります。

レガシーモードでもバックスペースキーを押すと文字は削除されますが、削除されたとすぐには表示されません。 (ESCキーを押すと文字が消えます。)

vi説明されている動作を持つオプションを使用するか、vim予想される方法で動作するオプションを使用するかを選択する必要があると思います。

答え4

ただ入れる~/.zshrc

bindkey "^?" backward-delete-char

関連情報