如何在 vim 中配置退格键以使用 ts、sw、sts 和 et 删除 1 个字符

如何在 vim 中配置退格键以使用 ts、sw、sts 和 et 删除 1 个字符

我的 vimrc 中有以下内容:

set tabstop=8
set shiftwidth=4
set softtabstop=4
set expandtab

set backspace=indent,eol,start

set autoindent

这就是我想要的:仅插入空格,从不插入制表符;按制表符插入 4 个空格;自动缩进是 4 个空格。

如果我缩进 n 级并在插入模式下按下退格键,我会返回 1 个缩进级别 (1 sts) 到级别 n-1。

我该如何配置退格键,使它返回一个空格?

答案1

这似乎有效:

imap <BS> <Left><Del>

更新: 这会使退格键在左边距表现得很奇怪。此方法可修复该问题:

set whichwrap+=[

答案2

删除“set softtabstop=4”也将为您提供所需的退格行为,尽管它可能会破坏您习惯的其他行为。

答案3

你可以使用

set tabstop=4 shiftwidth=4 expandtab

并删除

set softtabstop=4

并忘记标签。

根据我的经验,用于构造文本的标签迟早会变成一种麻烦。

相关内容