VIM: Backspace удаляет в обычном режиме, но ничего не делает в режиме вставки. - PullRequest
0 голосов
/ 26 апреля 2018

Предварительная информация:

  • Проблема в терминале Vim, а не в gVim
  • Я использовал CMDER (на основе conemu) в качестве эмулятора терминала
  • Я нахожусь наWindows 10

Подробное описание:

Когда я в режиме вставки, я могу печатать текст как обычно, но backspace ничего не делает.В обычном режиме клавиша Backspace удаляет текст.Это прямо противоположно тому поведению, которое у меня было сегодня ранее.Я прочитал множество других сообщений в Интернете, описывающих неортодоксальное поведение backspace в Vim, но предложенные настройки конфигурации (а именно bs = 2 или bs = indent, eol, start) ничего не сделали.

Более необычным является то, что gVim ведет себя "нормально", а именно: Backspace перемещает курсор влево в обычном режиме и удаляет текст в режиме вставки.

Мне бы хотелось, чтобы backspace удалял текст в режиме вставки (как и большинство других программ) и чтобы навигация / отключение выполнялись в обычном режиме.Как я могу восстановить это поведение?

Ниже приведена копия моего _vimrc: (я бы поставил это на github, но мой git в данный момент испорчен, и я все еще не могу это исправить.) Кроме того, была функция, которая была внутри_vimrc по умолчанию.Я понятия не имею, что он делает, но опустил его, чтобы сэкономить место.Если вы хотите посмотреть, смогу ли я опубликовать это в ответ.

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

1 Ответ

0 голосов
/ 26 апреля 2018

Скорее всего, ваш backspace режима вставки сопоставлен, чтобы ничего не делать (то есть <nop>).Проверьте это, набрав :verbose imap <bs>.Это покажет, отображается ли клавиша Backspace и где была установлена ​​карта.

Мне бы хотелось, чтобы Backspace удалял текст в режиме вставки (как и большинство других программ) и чтобы была навигация / отключенав обычном режиме.Как я могу восстановить это поведение?

Вы можете сделать:

iunmap <bs>
nnoremap <bs> <nop>

Первая строка не отображает <bs> в режиме вставки, таким образом <bs> восстановит ее функциональность по умолчанию.Вторая строка отображает <bs> в обычном режиме, чтобы ничего не делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...