vim:在正常模式下删除backspace,但在插入模式下什么也不做



初步信息:

  • 问题在终端VIM中,而不是GVIM
  • 我将CMDER(基于CONEMU(用作终端模拟器
  • 我在Windows 10

详细说明:

当我处于插入模式时,我可以按正常键入文本,但是backspace无能为力。在正常模式下,BackSpace键删除文本。这完全是我今天早些时候的行为。我在线阅读了许多其他帖子,描述了VIM的非正统背部行为,但是建议的配置设置(即BS = 2或BS =缩进,EOL,启动(什么也没做。

更不寻常的是,GVIM的行为"正常"即:Backpace以正常模式将光标移动到左侧,并以插入模式删除文本。

我想要的是backspace以插入模式删除文本(就像大多数其他程序一样(,并在正常模式下导航/禁用。我该如何恢复这种行为?

以下是我的_vimrc的副本:(我将其放在github上,但目前我的git弄乱了,我尚未解决。。我不知道它做什么,但省略了以节省空间。如果您想查看我是否可以在答复中发布它。

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

很可能,您的插入模式backspace映射为无需执行的操作(即<nop>(。通过键入:verbose imap <bs>来验证这一点。这将显示是否映射了backspace键以及设置地图的位置。

我想要的是backspace以插入模式删除文本(就像大多数其他程序一样(,并在正常模式下导航/禁用。我该如何恢复这种行为?

您可以做:

iunmap <bs>
nnoremap <bs> <nop>

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

最新更新