首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VIM: Backspace在普通模式下删除,但在插入模式下不执行任何操作。

VIM: Backspace在普通模式下删除,但在插入模式下不执行任何操作。
EN

Stack Overflow用户
提问于 2018-04-26 01:25:43
回答 1查看 1K关注 0票数 1

初步信息:

  • 问题在终端Vim,而不是gVim
  • 我使用CMDER (基于conemu)作为我的终端模拟器。
  • 我在Windows 10上

详细说明:

当我处于插入模式时,我可以正常地键入文本,但是backspace什么也不做。在正常模式下,backspace键删除文本。这与我今天早些时候的行为完全相反。我在网上读过许多描述Vim非正统的后台行为的文章,但是建议的配置设置(即bs=2或bs=indent、eol、start)什么也没做。

更不寻常的是,gVim的行为“正常”,即:在正常模式下,后退空间将光标移动到左侧,并在插入模式下删除文本。

我希望backspace在插入模式下删除文本(就像大多数其他程序一样),并在正常模式下进行导航/禁用。我怎样才能恢复这种行为?

下面是我的_vimrc的一个副本:(我会把这个放在github上,但是我的git现在搞砸了,我还没有修复它)。此外,默认情况下,_vimrc中有一个函数。我不知道它做了什么,但为了节省空间,我省略了它。如果你想看看我能不能把它贴在回复里。

代码语言:javascript
复制
source $VIMRUNTIME/vimrc_example.vim

source $VIMRUNTIME/mswin.vim

behave mswin

" Pathogen - Plugin manager
execute pathogen#infect()

set nocompatible " Turns off Vi compatability gubbinz

" Color Theme
if !has("gui_running") " Allows some 256 color themes to work in Terminal
    set term=xterm
    set t_Co=256
    let &t_AB="\e[48;5;%dm"
    let &t_AF="\e[38;5;%dm"
    colorscheme gruvbox
endif

let g:gruvbox_dark_contrast = 'hard' " Both of these are just visual gruvbox tweaks

let g:gruvbox_light_contrast = 'hard'
set guifont=Consolas:h10:cANSI:qDRAFT " Changes font
set bs=indent,eol,start  " Makes backspace be normal
set filetype=ON     " Has vim check for filetype
set showcmd         " Displays incomplete commands
set ruler           " Shows position of cursor in document
set syntax=ON       " Turns on syntax highlighting
set number          " Show line numbers
set linebreak       " Break lines at word (requires Wrap lines)
set showbreak=+++   " Wrap-broken line prefix
set textwidth=100   " Line wrap (number of cols)
set showmatch       " Highlight matching brace

set hlsearch        " Highlight all search results
set smartcase       " Enable smart-case search
set incsearch       " Searches for strings incrementally

set autoindent      " Auto-indent new lines
set shiftwidth=4    " Number of auto-indent spaces
set smartindent     " Enable smart-indent
set smarttab        " Enable smart-tabs
set softtabstop=4   " Number of spaces per Tab
set undolevels=1000     " Number of undo levels
set backspace=indent,eol,start  " Backspace behaviour
set go=egrLTm           " Changes flags that specify how the GUI loads
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 07:20:45

最有可能的是,插入模式的备份空间被映射为什么都不做(即<nop>)。通过键入:verbose imap <bs>来验证这一点。这将显示是否映射了backspace键以及在何处设置了映射。

我希望backspace在插入模式下删除文本(就像大多数其他程序一样),并在正常模式下进行导航/禁用。我怎样才能恢复这种行为?

你可以:

代码语言:javascript
复制
iunmap <bs>
nnoremap <bs> <nop>

第一行在插入模式下取消映射<bs>,因此<bs>将恢复其默认功能。第二行将正常模式下的<bs>映射为什么都不做。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50033493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档