원격 서버에서 vim / nano의 SSH가 블링 문자 이유없이 한

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

기본적으로 (이것은 지난 몇 달 동안 발생했습니다), 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를 참조하기 때문입니다.



답변

[ 업데이트 : 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.

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

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


답변

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

export TERM=xterm-color

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


답변

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


답변

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

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

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

더 이상 문제가 없습니다 🙂


답변

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

# rebinddelete를 설정

# 리 바인드 키패드 설정


답변

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

export TERM=xterm-color


답변

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

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