vim 백 스페이스가 ^?
Vim에서는 모드 에서 backspace
키를 눌렀을 때 캐릭터를 insert
남기고 ^?
삭제하려는 캐릭터는 삭제하지 않습니다.
내 안에 다음이 있습니다. .vimrc
syntax on
set number
set expandtab
set incsearch
set nocompatible
set backspace=indent,eol,start
fixdel
이것은 명령 모드에서도 발생합니다. 저장하는 W
대신 잘못 입력하면 키를 w
누르면 backspace
다음과 같은 메시지가 표시됩니다.
:W^?
무엇이 잘못되었고 그것을 고치는 방법에 대한 아이디어가 있습니까?!
업데이트 :이 질문을 게시하기 전에 기본 Google 검색을 수행하고 검색 결과의 첫 페이지에서 모든 제안을 시도했지만 실패했습니다.
@strcat 저는 vim 버전 7.0.237, KDE 콘솔 1.6.4, Linux 2.6.18 x86_64 시스템을 사용하고 있습니다.
@graywh wrt cat -v, 삭제의 경우 ^[[3~
백 스페이스의 경우 ^?
.
의 출력은 stty -a
다음과 같습니다.
speed 38400 baud; rows 38; columns 194; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
^?
삭제 문자입니다. 백 스페이스 문자는 ^H
입니다. 이 중 하나만 터미널에서 "삭제"로 인식되며 이는 터미널 설정에 의해 결정됩니다 stty
. (bash 및 기타 쉘은 이것을 문제로 이해하고 둘 다 인식하기 위해 특별한 작업을 수행합니다)
터미널 에뮬레이터 (ssh, putty, xterm 등)가 터미널 설정과 일치하지 않으면이 동작이 표시됩니다. 일반적으로 기본적으로 옳지 만 매우 자주 사람들은 stty
.bashrc 에 명령을 넣어 작업을 중단합니다.
stty erase ^H
bashrc에 비슷한 것이있을 것입니다 . 그렇게한다면 제거하거나 ^H
DEL ( ^?
) 대신 백 스페이스를 보내도록 터미널 설정을 변경하십시오.
vim 매핑으로이 문제를 해결할 수도 있지만 기본 문제는 무시됩니다.
로부터 정력 위키 Backspace_and_delete_problems , 내가 읽기에 갔다 :help :fixdel
는이 제안 :
if &term == "termname"
set t_kb=^V<BS>
fixdel
endif
여기서 "^ V"는 CTRL-V이고 ""는 백 스페이스 키입니다
(4 개의 문자를 입력하지 마십시오!). "termname"
을 터미널 이름으로 바꿉니다 .
나를 위해 fixdel
백 스페이스는 삭제처럼 작동합니다. 내 첫 번째 실수는 gvim에서 CTRL-V 백 스페이스를 수행하는 것입니다. 시스템에서 키가 제대로 작동하지 않도록하여 문제가있는 세션이 보는 백 스페이스 키를 붙여 넣습니다.
나는 지금 내 .vimrc
:
if &term == "xterm-256color"
set t_kb=^?
endif
추가해보십시오 :
noremap! <C-?> <C-h>
귀하의 ~/.vimrc
.
이것은 C-? 백 스페이스로, 나를 위해 일했습니다.
ctrl+ del/ ctrl+ backspace또는 alt+ del/ alt+를 시도해보십시오. backspace어느 것이 기억 나지 않지만 그것이 당신을 위해 트릭을 할 것이라고 생각합니다.
그래도 작동하지 않으면 shift+ backspace/를 시도하십시오 del. 이전에이 문제가 발생했습니다. 콤보 키를 눌러 올바른 문자 코드를 보내 삭제를 수행 할 수 있습니다.
Ctrl + H가 나를 위해 작동하지 않는다는 점을 제외하면 똑같은 문제가있었습니다. stty
설정도 괜찮습니다. 누군가 같은 문제가 생기면 내 환경을 언급하고 싶습니다.
- X ofcourse 아래에서 xterm과 함께 cygwin 사용 :)
- RHEL6.4-> bash-> tmux-> vim으로 Ssh'ed
추가 한 후 fixdel
에 .vimrc
작동! 위의 모든 수정 사항이 작동하지 않았습니다.
I had the same issue where vim backspace leaves ^?
, while in command line it worked properly.
This is what worked for me, using vim mapping:
In .vimrc, type: imap ^? ^H
This will map CTRL-H (which is the default backspace in vim) to the backspace key. Hope that helps.
A good fix for this problem is to set the "Terminal > Keyboard" settings to map the Backspace key to "Control-H" in PuTTY; This is if you are using PuTTY and experiencing the "^?" problem when pressing the Backspace key.
I've created an article on this here:
https://alvinbunk.wordpress.com/2017/08/23/vi-or-vim-using-backspace-inserts/
Thanks to @j03m for the suggestion!
This answer worked for me: http://vim.wikia.com/wiki/Backspace_and_delete_problems
Basically, putting set backspace=2
in .vimrc works.
put stty erase ^? in your .bashrc
Run your .bashrc
run command: stty -a
speed 38400 baud; rows 48; columns 157; line = 0;
intr = ^C; quit = ^\; ***erase = ^?***; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
Erase will be changed by now with new value ^?
and your backspace shall work now.
On Mac, if you are using Terminal, go to Preferences -> Profiles -> Advanced, then select "Delete Sends Control-H"
If you are using KDE, I know that pain. This is the most comprehensive solution I have found so far http://www.yalla.nu/blog/post/86
I had this problem and found the following setting in my .vimrc:
:set t_kb=^H
Removing that line solved the problem.
Under FreeBSD with CSH you should replace this in your .cshrc:
bindkey "^W" backward-delete-word
With this :
bindkey "^?" backward-delete-word
For me, it was a stty problem, I had a similar stty -a
output as yours.
It got fixed for me by running stty sane
.
Not only did this fix the backspace/del problem, but also fixed the arrow keys.
ReferenceURL : https://stackoverflow.com/questions/9701366/vim-backspace-leaves
'programing' 카테고리의 다른 글
XML의 따옴표. (0) | 2021.01.14 |
---|---|
Android AudioRecord 예 (0) | 2021.01.14 |
Android BroadcastReceiver 또는 간단한 콜백 방법? (0) | 2021.01.14 |
import httplib ImportError : httplib라는 모듈이 없습니다. (0) | 2021.01.14 |
드롭 다운 목록의 너비는 어떻게 변경합니까? (0) | 2021.01.14 |