원격 서버에서 vim / nano의 SSH가 블링 문자


18

... 그리고 그것은 나를 미치게합니다.

기본적으로 (이것은 지난 몇 달 동안 발생했습니다), 5.5, 5.7 및 6을 실행하는 몇 가지 다른 CentOS 서버 (하나의 Linode, 다른 VPS 및 셸 액세스 권한이있는 공유 호스트)에 로그인합니다. 터미널을 사용하여 OS X Lion을 실행하는 Mac

원래:

$ ssh username@example.com

[remote-host] $ nano somefile.txt

파일 편집을 시작하면 화살표 키를 사용하여 커서 주위를 이동하거나 삭제를 시작한 다음 다시 입력하면 커서가 약간 이동하고 파일을 저장하고 다시 열면 커서 사실, 명백한 이유없이 한 줄을 뛰어 넘었습니다.

"이것은 멋진 텍스트입니다."와 같은 것을 얻습니다. 내가 커서 미친 편집자에게 입력했을 때 "이것은 한 줄의 텍스트입니다."

구성 파일을 편집 할 때 큰 문제입니다. 한 줄을 편집하고 저장하고 닫은 다음 다시 열어서 줄이 올바른지 확인한 다음 다시 다른 줄을 편집해야하기 때문에 상당히 성가시다. .

나는 Linode Lish Shell Vim과 Nano 렌더링 문제를 발견했습니다. 선이 나타나지 않거나 커서 위치가 잘못 되었지만 그것이 관련이 있는지는 잘 모르겠습니다. 특히 lish를 참조하기 때문입니다.


1
@geerlingguy, 나는 당신의 이름이 나에게 아무 의미가 없었을 때 몇 년 전에이 질문에 대한 답변을 게시했지만 이제는 귀하의 작업을 정기적으로 사용합니다. 귀하의 모든 기부에 감사드립니다!
dbenton

1
@dbenton-도와 드리겠습니다, 도와주세요, 우리는 행복한 공동체입니다 :)
geerlingguy

답변:


14

[ 업데이트 : Mac OS X Mountain Lion 10.8부터 터미널은이 문제를 해결하면서 Backtab 이스케이프 시퀀스를 지원합니다.]

해당 서버의 nano 버전은 커서를 한 문자 씩 왼쪽으로 움직일 때 때때로 Backtab (ESC [Z) 시퀀스를 전송하지만 터미널은이 시퀀스를 지원하지 않으므로 nano는 커서가 움직일 때 커서가 움직 인 것으로 생각합니다. t 커서의 현재 위치에 대한 아이디어가 터미널과 동기화되지 않았습니다.

내가 이해할 수없는 이유로 nano는 왼쪽으로 이동할 때 Backtab을 보내고 커서는 탭 정지의 오른쪽에있는 한 문자입니다. 마찬가지로 IIRC는 오른쪽으로 이동할 때 탭 (Control-I)을 보내고 커서는 탭 정지의 왼쪽에있는 한 문자입니다. 왜 항상 동일한 문자 시퀀스를 사용하여 왼쪽 / 오른쪽으로 이동하는 대신 탭 중지 주위 에서이 작업을 수행하는지 모르겠습니다. Mac OS X Lion 10.7과 함께 제공된 nano 버전은이 작업을 수행하지 않습니다.

terminfo에 cbt기능이 지원 된다고 말한 경우에만 Nano가이를 수행합니다 . 터미널의 기본 terminfo xterm-256color는이 기능을 선언하고이를 Backtab 시퀀스에 매핑합니다. 해결 방법은 TERM환경 변수를이 기능을 선언하지 않는 것으로 설정하는 것입니다. ssh원격 호스트의 쉘 시작 파일 또는 호출하기 전에 로컬 시스템에서이를 수행 할 수 있습니다 . xterm-color다른 중요한 동작 (예 : 256 색, BCE, 대체 화면 내용 보존)을 비활성화하므로 권장하지는 않지만 핀치 로 설정합니다 . 더 무거운 방법은 원격 호스트에서 xterm-256color(또는 xterm) terminfo 파일 을 사용자 정의하여 제거하는 것 cbt입니다.

원격 호스트를 사용자 정의하는 것이 권장되므로 사용자 정의가 로컬 또는 다른 원격 호스트에 적용되지 않지만 가장 간단한 해결 방법은 다음 xterm-color대신 사용하도록 터미널 환경 설정을 변경하는 것입니다 xterm-256color.

터미널> 환경 설정> 설정> [프로필]> 고급> 터미널을 다음과 같이 선언하십시오.

기존 설정 프로파일을 복제하여 사용자 정의하고 해당 원격 호스트에 연결할 때만 사용하는 것이 좋습니다.


xterm-color 설정은 확실히 작동합니다-원격 호스트에서 terminfo 파일을 사용자 정의하는 방법에 대해 자세히 설명해 주시겠습니까? 링크는 할 것이지만, 나는 아마도이 포스트로
돌아와서이

1
@geerlingguy 기존 terminfo 정의 수정 . 소스 파일 cbt=\E[Z에서 항목을 제거하십시오 .ti.
TachyonVortex

이것은 내가 xterm-256color에서 xterm으로 옵션을 설정하고 이전에했던 것처럼 선택, 복사 등을 할 수있게 도와줍니다. (이 옵션을 어떻게 또는 누가 변경했는지 알 수 없습니다). 감사!
spacebiker

8

나는이 같은 문제가 발생했습니다. 다른 솔루션 중에서 원격 서버의 환경 변수를 권장하는 이 스레드 를 찾았습니다 .

export TERM=xterm-color

이것을 ~ / .bash_profile에 추가하면 문제가 해결되었습니다. 이 솔루션은 간단하며 특정 호스트의 특정 사용자에게만 영향을줍니다.


2

MobaXTerm 프로그램에서 같은 문제가 발생했습니다. 문제의 원인은 PuTTY를 사용할 때 Nano에서 숫자 키패드를 활성화하는 데 사용한 -K 키였습니다. 내가 MobaXTerm에서 알았 듯이 -K는 필요하지 않으며 (숫자는 기본적으로 작동합니다) 화살표 키가 없으면 올바르게 작동하고 쓰레기를 무작위로 삽입하지 않습니다.


1

CentOS가 게스트 OS로 실행되는 OSX 10.7.4

OSX 터미널 환경 설정, 설정, 고급

Declare terminal as:xterm-color
Strict VT-100 keypad behaviour - TICKED!

더 이상 문제가 없습니다 :)


“VT-100 키패드 동작”기본 설정은이 Q & A와 전혀 관련이 없으며 결과에 영향을주지 않습니다.
Chris 페이지

1

MobaXterm 사용자 용. -K를 사용하지 않고 여전히 문제가 발생하는 경우 / etc / nanorc 파일에 다음 줄이 주석 처리되어 있는지 확인하십시오.

# rebinddelete를 설정

# 리 바인드 키패드 설정


0

문제는 로컬 컴퓨터와 서버가 모두 나노가있는 유닉스 시스템에 있지만 나노 버전이 다를 수 있다는 것입니다.

export TERM=xterm-color

-1

당신이 얻는 것이 "This is a neof text"이고 입력 한 것이 "This is a line of text"(보고서가 정확하다고 가정해야 함)이면 Mac에있는 것이 무엇이든 색다른 "control"키가 있습니다 (명령 ? 사과?). nano는 control + key를 사용하여 "점프"하고 입력 한 것보다 적은 문자를 가지고 있기 때문에 a) 사라지는 문자 b) a) b)가 논리적 인 것으로 추론하는 것이없는 것으로 보이는 제어 순서가 있습니다.

당신은 또한 독창적 인 핫키 / 매크로 / whatnot 프로그램이있을 수 있습니다. 나는 이것이 serverfault가 아닌 수퍼 유저에 속한다고 생각하지만 누군가가 현실적인 SSH 바인딩 답변을 가지고 있다고 플래그를 붙입니다.


화살표 키를 사용하여 줄을 앞뒤로 움직일 때 발생합니다. 단순히 입력하는 것보다 더 자주 발생합니다. 그러나 그것은 무작위로 보입니다. Chris의 제안을 신속하게 시도하여 작동하는지 확인하려고하지만 답변 해 주셔서 감사합니다!
geerlingguy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.