Cygwin에서 백 스페이스가 작동하지 않습니다


29

방금 Cygwin을 설치했는데 BACKSPACE 기능이 없습니다. 즉, Backspace 키를 누르면 공간이 생깁니다.

Google 에서이 문제를 조사하려고했지만 결정적인 것을 찾지 못했습니다.


Cygwin을 설치하고 호출 한 방법과 정확히 백 스페이스 키가 작동하지 않는 위치에 대한 자세한 정보를 제공 할 수 있습니까?
ak2

1
나는 이것이 껍질에서 일어나고 있다고 생각합니다. Control-V를 입력하고 백 스페이스를 입력하면 어떻게됩니까? 그리고 stty명령 의 출력은 무엇 입니까?
Keith Thompson

어떤 종류의 키보드가 있습니까? 미국, 영국 등
pjc50

이 문제를 해결 한 적이 있습니까? 이전에 작동했지만 새 Cygwin 설치에서 지금보고 있습니다. "공백"이 표시되지 않는다는 점은 주목할 가치가 있습니다. 커서를 뒤로 이동하여 문자를 지우지 못했습니다. 당신이보고있는 공간은 이전 캐릭터에서 쿵쾅 거리는 공간입니다. ^ L을 누르면 백 스페이스가 작동하는 것을 볼 수 있습니다. 이것이 stty가 문제를 해결하지 않는 이유입니다. Cygwin이 바인딩 된 CMD 셸과 거의 같으며 커서 이동을 해석하지 못합니다.
SomeCallMeTim

답변:


33

필자의 경우 공백 ~ / .vimrc를 만든 후 백 스페이스가 전혀 작동하지 않았습니다. 변화에 따라 작동

놓다:

bs = 2로 설정

.vimrc에서

이것을 http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html 에서 찾았습니다.


고맙습니다.이 기능은 저에게 효과적이었습니다. 이전에는 Vim에서 백 스페이스 키가 줄을 따라 뒤로 이동했지만 입력을 시작할 때까지 문자를 지우지 않았습니다. 이제는 '일반적인'백 스페이스를 수행합니다.
Robert

4
이 답변이 다른 사용자에게 도움이 된 것이 좋지만,이 경우 원래 질문이 vim에 대해 묻지 않기 때문에 질문에 대한 해결책이 아닙니다.
Kelsin

이것은 또한 커서 키와 비슷한 문제를 해결했습니다
Steve Paul

12

나를 위해 일했다 : Windows 명령 프롬프트에서 다음을 입력하십시오.

echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc

이것에 추가 .bashrc되고 모든 것이 잘 작동 할 수 있습니다!


1
나는했다 TERM에 환경 변수 설정 msys제안 윈도우 환경 변수 설정을 통해를 StackOverflow에에 에 도움 gitWindows에서 문제. 간단히로 재설정 cygwin.bashrc도움이되지 못했지만, 제거 TERM윈도우 설정 한에서 항목을. 나를 올바른 방향으로 안내해 주셔서 감사합니다!
Florian Brucker

이는 cygwin64가 줄 바꿈을 포함하는 명령에서 백 스페이스를 무시한다는 사실을 해결했습니다. 감사.
suanik

11

위와 같은 문제에 대한 해결책 을 찾았습니다 .

간단하게 다시 Cygwin에서 설치 프로그램을 실행하고 다시 설치 termcap하고 terminfo. 검색 창을 사용하면 빠르게 찾을 수 있습니다. 각각에 대해 "보관"이라고 말하지 말고 "다시 설치"라고 말하십시오. term검색 창에 "사용되지 않는 항목 숨기기"확인란을 선택해야 할 수도 있습니다 .

내 terminfo 폴더가 완전히 없습니다. 왜 그런지 모르겠다. 이것이 누군가를 돕기를 바랍니다.


1
나는 제거 된 사용자 정의 설치 ncurses를 가지고 있습니다. cygwin setup.exe를 통해 제거하고 다시 설치 한 후이 문제가 발생했습니다. TERM 변수를 내 사고 전에 작동했던 것 이외의 것으로 설정하여 반창고를 적용하고 싶지 않습니다. terminfo를 다시 설치하면 (termcap을 찾을 수 없습니다) 저에게 효과적이었습니다. 감사!
Kelsin

멋지다, 작동하지만 왜?!
Yordan Georgiev

5

c : \ cygwin \ cygwin.bat를 편집하십시오.

이것을 배치하십시오 : SET TERM=cygwin

전에: bash --login -i


1
가장 간단한 수정입니다. 부작용이 없기를 바랍니다.
RomanSt

1

TERM 유형을 설정하면 터미널 창에서 그리는 데 사용할 TERMCAP을 호스트에게 알려줍니다. 대부분의 * NIX 호스트는 'cygwin'용어 유형이 무엇인지 알지 못하므로 삽입, 삭제, 스크롤, 글꼴 변경 등과 같은 화면 문자 조작 방법을 모릅니다.

Telnet 또는 SSH 전에 CYGWIN에서 TERM 변수를 호스트로 변경하면 훨씬 더 나은 결과를 얻을 수 있습니다.

CYGWIN에서 :

d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1

d@suntest1's password:
Sun Microsystems Inc.  SunOS 5.8     Generic patch    October 2001

d   pts/1         test01    Fri   Oct 12  00:15   still logged in
$ echo $TERM
ansi
$_

호스트는 이제 ANSI 터미널 유형을 알고 있으며 ANSI TERMCAP 파일을 사용하여 통신 방법을 알려줄 수 있습니다.

백 스페이스를 제외하고는 모든 것이 제대로 작동하지 않으면 연결하려는 호스트에서 "getty"를 다시 프로그래밍하여 원하는 것을 인식 할 수 있습니다. 백 스페이스 / 삭제 문제 해결 방법) :

호스트에 ssh 또는 telnet을 연결하고 호스트에서 stty 명령을 실행합니다. "BACKSPACE"키를 누르고 뒤로 이동하지 않으면 터미널이 TERM 유형에 따라 다른 문자를 찾고 있기 때문입니다. 모든 것을 파헤 치기보다는 원하는대로 또는 * NIX의 풍미에 따라 CLI 또는 $ HOME 디렉토리의 .profile, .bashrc 또는 .bash-profile 파일에서 백 스페이스 정의를 수동으로 설정할 수 있습니다. 사용.

따라서 ^ H (CONTROL-H)를 누르고 키를 백업했지만 백 스페이스 키를 누르면 다음과 같이 stty를 사용하지 않습니다.

stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]

대부분의 경우 다음과 같습니다.

stty erase \^?[ENTER]

'\'는 다음 문자가 인쇄 할 수없는 제어 문자가되고 "해석"하지 않고 받아 들일 것임을 알려줍니다.

[ENTER]를 누르면 [BACKSPACE] 키를 누르고 입력 한 내용을 백 스페이스 / 삭제할 수 있습니다.

쉘에서 이것을 설정할 수 있습니다.

여전히 VI를 사용한다면 때때로 번역이 작동하지 않고 vi에 ^ H를 실제로 입력해야하지만 괜찮습니다.

당신은 말할 수 있었다 :

stty erase k [ENTER]

문자 그대로 'k'를 지우기 / 삭제 문자로 변환했을 것입니다.

-디


0

좋아, Cygwin 설치를 수동으로 업데이트 할 때이 문제가 발생했습니다. 어쨌든 나는 이 게시물을 발견 하여 설치 솔루션으로 안내했다.

오래된 cygwin은 파일을 가지고 /etc/terminfo/c/cygwin있었지만, 새로운 cygwin에서는 파일이있을 것으로 예상했습니다 /etc/terminfo/63/cygwin.

"cygwin"파일을이 위치로 복사 한 후에는 bash 쉘 백 스페이스 키가 탭 및 기타와 마찬가지로 제대로 작동했습니다.


0

TERM변수를 변경하고 파일에 cygwin추가 SET TERM=cygwin하는 .bat것이 효과가 없었지만 수정했습니다. 내가 한 일 : 패키지 관리자 설치 완료에서 설치하기로 선택하고 설치 xterm: X11 terminal emulator후 파일에 추가 SET TERM=xterm하고 .bat(위에서 제안한 것처럼) 터미널을 시작하고 옵션 -> 터미널 메뉴를 선택한 Type=xterm다음 터미널을 다시 시작했습니다. 백 스페이스가 올바르게 작동하기 시작했습니다!

참고 : cygwin을 이미 설치 한 경우 설치 프로그램을 다시 실행하고 xterm 패키지를 추가하십시오.

나는 뛰고있어:

  • OS = Windows 8 (x64)
  • Cygwin setup.exe 버전 = 2.850 (x64)
  • 미티 버전 = 1.2- 베타 1 (x86_64-pc-cygwin)


0

나를 위해 일했다 : Windows 명령 프롬프트에서 다음을 입력하십시오.

(echo; echo "export TERM=cygwin") >> ~/.bash_profile

이것은 그것을 .bash_profile (나에게 도움이되지 않는 .bashrc가 아니며 선행 줄 바꿈)에 추가합니다.


0

온라인으로 물건을 읽는 데 2 ​​일의 시간을 보낸 후 나는 나를 위해 일한 것을 발견했다. 이 사건이 모든 사건과 일치하는지 모르겠습니다. 그러나 그것은 Yuksel 덕분에 나에게 매력처럼 일했습니다.

문제는 'termInfo'파일과 관련이있었습니다. 그가 제안한 단계

  1. CygWin 터미널에 입력하여 문제가 터미널과 관련이 있는지 확인하십시오. 경고를 무시하십시오.

    less my_session.log

경고 : 터미널이 완전히 작동하지 않습니다

  1. CygWin 터미널에 아래 코드를 입력하여 관련 경로 또는 디렉토리와 관련된 'TermCap'정보를 가져옵니다.

    infocmp -C

당신은 얻을 중 하나

infocmp : terminfo 파일 / usr / share / terminfo / 63 / cygwin을 열 수 없습니다

또는 'infocmp를 통해 재구성 ...'과 같은 텍스트로 시작할 수도 있습니다.

  1. CygWin 터미널에서 아래 코드를 실행하여 진단을 실행하여 파일이 저장된 경로에 대한 추가 정보를 얻습니다.

    cygcheck -s

아래 텍스트와 비슷한 응답을해야합니다

Cygwin 구성 진단

...

C : / cygwin / 시스템 바이너리, noacl

C : / cygwin / bin / usr / bin 시스템 바이너리, noacl

C : / cygwin / lib / usr / lib 시스템 바이너리, noacl

C : \ cygwin \ etc \ terminfo / usr / share / terminfo 시스템 바이너리, noacl

cygdrive 접두사 / cygdrive 사용자 바이너리, noacl, posix = 0, 자동

...

  1. 비슷한 라인을 확인하십시오

C : \ cygwin \ etc \ terminfo / usr / share / terminfo 시스템 바이너리, noacl

출력에서, 당신은 3 단계에서 얻었습니다. / usr / share / terminfo 에있는 모든 파일과 폴더를 C : \ cygwin \ etc \ terminfo 폴더로 복사하십시오. 참고 :이 폴더는 설치에 따라 다를 수 있습니다


0

아래 이미지를 따르십시오 여기에 이미지 설명을 입력하십시오

  1. Cygwin 창의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하십시오
  2. 딸깍 하는 소리 options
  3. Keys탭을 클릭 하십시오
  4. 진드기 Backarrow sends ^H
  5. 적용을 누르십시오.

이것은 나를 위해 일한 유일한 것입니다. 특히 서버에 SSH 해야하는 경우 (모든 수정 사항이 작동하지는 않습니다.) stty erase ^?내 .bashrc 에 추가 하는 데 사용 했지만 시간의 80 % 만 해결했습니다.


-1

문제가 발생하지 않았습니다. 터미널 에뮬레이터 Mintty ( http://code.google.com/p/mintty/ ) 를 설치하십시오 .

Cygwin 설치 프로그램을 통해 사용할 수 있습니다. cygwin을위한 제일 맨끝.


이것은 도움이되지 않았습니다.
user620189

같은 문제가 발생하고 민트에서도 백 스페이스 기능이 작동하지 않습니다. 민트 터미널과 cygwin 터미널 모두에서 백 스페이스를 칠 때 공간이
Rachel

@Rachel이 문제를 해결 한 적이 있습니까? Cygwin을 새로 설치하면 같은 문제가 발생합니다. :(
SomeCallMeTim

@SomeCallMeTim : Minty를 사용하여이 문제를 해결할 수있었습니다. cygwin은 때때로 더 현명하게 행동합니다.
Rachel

@Rachel Thanks, 비록 Cygwin 설치가 / usr / lib / terminfo와 같은 중요한 파일을 놓친다는 것이 내 문제라는 것을 알았습니다. 왜 그들이 빠졌는지 모르겠습니다. 해당 문제가있는 다른 사람을 발견하고 설치 프로그램으로 이동하여 terminfo 및 termcap에 다시 설치하라는 메시지를 표시하면 모든 것이 작동했습니다.
SomeCallMeTim
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.