插入模式下的退格键不删除字符


10

我是vi的新手,实际上我从今天开始就开始学习vi,并且对退格键的行为有所了解。实际上,当我第一次在Ubuntu 12.04上启动vi时,我的退格键正常工作,但是此后它开始表现异常。每当我在插入模式下按退格键时,它只会向左移动一个位置,而不是擦除字符。如何找回默认的退格功能?请注意,我不想安装vim或设置不兼容。


5
这就是传统的vi行为。如果您可以选择设置不兼容,那么您已经在使用vim
2013年

我不知道vi已安装在Ubuntu上。根据我的经验,vi在Linux世界中只是vim的符号链接。如果要学习真正的vi,请安装nvi或hairloom项目vi。
Predrag Punosevac

Answers:


6

有时,该vi命令是该命令的别名,vim并在被称为as时vi启用其vi模式。

即使在传统模式下,退格键也会删除字符,但不会立即显示为已删除。(按ESC后,字符消失了。)

猜测您必须在使用vi描述的行为附带的选项或使用vim能够按照您期望的方式执行的选项之间进行选择。


9
  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。这可以通过给命令来实现vi,而不是vim从所述命令行,其中vi只有一个对称-链接到vim,在这种情况下Vim是在vi模式打开。您可以使用进行检查:set compatible?

  2. 如前一个答案所述,仅insert modeset compatible启用启用后,退格键的效果才可见。

注意:在vi兼容模式下,您不能在之前输入(在输入之前insert mode)或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上的Afaik中,通常会使用此设置安装系统范围的配置文件。

您可以通过获取当前设置:set bs?


5

如果尚不存在,请在用户主目录中创建一个名为.vimrc的新文件。在这里,我们将使用vi同时创建和编辑

sudo vi ~/.vimrc

添加以下命令,其中包括关闭兼容模式和退格键擦除功能:

set nocp
set backspace=indent,eol,start

使用保存和退出文件

:wq

关闭兼容模式可允许使用旧键盘惯用的箭头键。

由于我们在创建文件时需要sudo'd,因此文件的所有权可能是root。您可以将文件整理给用户。

在我的情况下,这是用于树莓派的,因此用户和组是pi:

chown pi:pi ~/.vimrc

现在再次启动vi并享受!


1
set nocp为我成功了
Louis M



0

在仅包含我的主目录中创建一个.vimrc

设置nocp

修复了我的退格键无法从屏幕Dick S删除字符的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.