나 여기 처음이야육, 사실 오늘부터 vi를 배우기 시작했는데 막혔어요백스페이스 키열쇠. 실제로 Ubuntu 12.04에서 vi를 처음 부팅했을 때 백스페이스 키가 제대로 작동했지만 그 이후부터 이상하게 작동하기 시작했습니다. 삽입 모드에서 백스페이스를 누를 때마다 문자가 삭제되지 않고 한 자리만 왼쪽으로 이동합니다. 기본 백스페이스 기능을 복원하는 방법은 무엇입니까? vim을 설치하거나 비호환성을 설정하고 싶지 않습니다.
답변1
vi
실제로 일반을 통해 사용하고 있는지 확인하십시오.$ vi --version | head -n 1
이것은 내 컴퓨터에 제공됩니다 (Debian 7)
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)
vim은 vi와 더 유사해질 수 있습니다. 이는 vim이 vi 모드에서 열리는 심볼릭 링크만 있는 명령줄
vi
대신 에 명령을 제공하여 수행할 수 있습니다 . 를 사용하여 이를 확인할 수 있습니다 .vim
vi
vim
:set compatible?
이전 답변에서 언급했듯이 백스페이스 키의 효과는
insert mode
활성화된 상태에서 유지되는 경우에만 표시됩니다.set compatible
insert mode
참고: vi 호환 모드에서는 이전에 입력한 텍스트(입력 전)나 eol의 텍스트 또는 의 들여쓰기에서 백스페이스를 사용할 수 없습니다 insert mode
. 바라보다 :help 'bs'
'backspace' 'bs' string (default "")
global
{not in Vi}
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.
When the value is empty, Vi compatible backspacing is used.
For backwards compatibility with version 5.4 and earlier:
value effect
0 same as ":set backspace=" (Vi compatible)
1 same as ":set backspace=indent,eol"
2 same as ":set backspace=indent,eol,start"
이것이 의미하는 바를 알아보려면 다른 설정을 시도해 보십시오. 삽입 모드에서 문자/줄 바꿈 및 들여쓰기를 입력하고 삽입 모드를 종료했다가 다시 입력한 다음 백스페이스를 시도하십시오.
vi 동작에 익숙하지 않고 일반 vi 사용을 고집하지 않는 사용자(어떤 경우에도 권장되지 않음)는 이 작업을 수행해야 합니다 :set backspace=indent,eol,start
. 내가 아는 한, 데비안에서는 이 설정을 사용하여 시스템 전체 구성 파일을 설치하는 것이 일반적입니다.
를 통해 현재 설정을 가져올 수 있습니다 :set bs?
.
답변2
사용자의 홈 디렉터리에 아직 존재하지 않는 경우 .vimrc라는 새 파일을 만듭니다. 여기서는 vi를 사용하여 동시에 생성하고 편집하겠습니다.
sudo vi ~/.vimrc
무엇보다도 호환성 모드와 백스페이스 지우기 기능을 끄는 다음 명령을 추가합니다.
set nocp
set backspace=indent,eol,start
다음을 사용하여 파일을 저장하고 종료하십시오.
:wq
호환 모드를 끄면 오래된 vi 사용자에게 익숙한 화살표 키를 사용할 수 있습니다.
파일을 생성할 때 sudo를 사용했기 때문에 파일의 소유권은 아마도 루트일 것입니다. 사용자에게 파일을 표시할 수 있습니다.
제 경우에는 Raspberry Pi용이므로 사용자와 그룹은 pi였습니다.
chown pi:pi ~/.vimrc
이제 vi를 다시 시작하고 즐겨보세요!
답변3
때때로 vi
명령은 의 별칭 이며 vim
호출 시 vi
해당 vi 모드가 활성화됩니다 .
레거시 모드에서도 백스페이스 키를 누르면 문자가 삭제되지만 삭제된 것으로 즉시 표시되지는 않습니다. (ESC 키를 누르면 문자가 사라집니다.)
vi
설명된 동작이 있는 옵션을 사용하거나 vim
예상한 방식으로 동작하는 옵션을 사용하는 것 중에서 선택해야 한다고 생각합니다 .
답변4
그냥 넣어~/.zshrc
bindkey "^?" backward-delete-char