tl; dr : vimrc에 이것을 추가하여 대부분의 다른 프로그램에서와 같이 백 스페이스가 작동하도록하십시오.
set backspace=indent,eol,start
더 긴 답변
기본 동작은 놀랍지 만 백 스페이스 "작동하지 않음"은 기능 으로 간주 될 수 있습니다 . 실수로 들여 쓰기를 제거하거나 현재 줄 및 / 또는 삽입 시작으로 제한하여 너무 많은 텍스트를 제거하지 못하게 할 수 있습니다.
:help 'backspace'
우리에게 말해:
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.
이 값들은 정확히 무엇을 의미합니까?
indent
Vim은 많은 파일 형식에 대해 자동 들여 쓰기를 추가합니다. 기본적
으로이 공간을 백 스페이스 할 수 없습니다 . '자동 들여 쓰기'로 간주되는 규칙은 약간 미묘합니다 (예 : █가 커서 인 경우).
if :; then
█
백 스페이싱이 작동하지 않습니다.
우리는 다음 명령과를 추가한다면 fi
, 다시 가서, 우리가 하는
들여 쓰기를 제거 할 수 :
if :; then
█:
fi
Vim은 첫 번째 예에서 Enter 키를 눌렀을 때 1 단계의 들여 쓰기를 추가해야한다고 결정했기 때문입니다. 그러나 두 번째 예에서 Vim은 아무것도 자동 들여 쓰기하지 않았습니다. 탭 문자 또는 공백입니다.
참조 :help 'autoindent'
eol
백 스페이스를 누르면 EOL 마커 ( \n
또는 \r\n
)가 제거됩니다 . 비활성화 된 경우 EOL 마커를 삭제하려고하면 백 스페이스에서 아무 작업도 수행하지 않습니다.
시작
이 당신이 수 있음을 의미 만을 삽입 모드가 시작된 이후 사용자가 삽입 한 텍스트를 삭제하고 이전에 삽입 된 텍스트를 삭제할 수 없습니다.
기본 설정은 무엇입니까?
Windows에서 GVIM을 사용하는 것으로 나타났습니다. 그러나 대부분의 Linux 시스템에서는 터미널에서 VIM을 사용하는 동안 백 스페이스가 예상대로 작동하는 것 같습니다.
그 이유는 많은 Linux 배포판에 미리 만들어진 vimrc 파일이 포함되어 있기 때문에 일반적인 옵션을 설정하기 때문입니다. 예를 들어 내 아치 리눅스 시스템에서 나는 /usr/share/vim/vimfiles/archlinux.vim
:
set nocompatible
set backspace=indent,eol,start
" ... and a few more...
Windows에 Vim을 설치하는 경우 기본적으로 Vim과 함께 제공되는 기본 vimrc 및 gvimrc를 사용합니다.
빔의 기본에 대해 빈 값입니다 backspace
. 아치 리눅스, 데비안, CentOS 또는 $other_distro
기본값은 다를 수 있습니다.
일반 모드
이 질문은 삽입 모드의 백 스페이스에 관한 것이지만 일반 모드의 백 스페이스에 대한 간단한 설명도 추가하겠습니다.
일반 모드에서 백 스페이스는의 역할 h
을하며 왼쪽으로 이동합니다.
(있는 경우 기본적으로 백 스페이스는 경우 행의 시작 부분에서 이전 행으로 이동됩니다 eol
에 있었다 backspace
) 플래그를 'whichwrap'
통해 옵션 으로이 동작을 제어 할 수 있습니다 b
(기본적으로 활성화되어 있음).
백 스페이스가 문자를 X
명령 에 맵핑하여 문자를 삭제하도록 만들 수도 있습니다 .
nnoremap <BS> X
X
(와 함께 삭제x
)로 수행되지만 실제로 실제로 원하는 것은db
예를 들어 단어가 시작될 때까지daw
삭제하거나 전체 단어를 삭제하는 것입니다. 필요한 경우보다 많은 경우 차선책 키.