대화형 명령 모드에서는 공백을 입력할 수 없습니다

대화형 명령 모드에서는 공백을 입력할 수 없습니다

매우 이상한 상황입니다. 대화형 명령을 입력하면 이 경우 공백을 입력 taskshnslookup수 없습니다. 예를 들어:

tasksh> add "my new task"

~이 되다

tasksh> add"mynewtask"

물론 작동하지 않습니다. 나는 그것이 이것과 관련이 있을 것이라고 생각했지만 대화형 모드에서 확인 tasksh했습니다. nslookup그것은 같은 것입니다. 이는 Linux에서는 발생 4.6.7-1-MANJARO하지만 OpenSUSE Leap 42.1에서는 발생하지 않습니다.

이 짜증나는 일을 어떻게 해결해야 할까요?

다른 터미널(gnome-terminal, xfce4-terminal, xterm)을 실행해 보았지만 동일한 결과가 나왔습니다.

답변1

가장 그럴듯한 설명은 Space구성 파일 중 하나에 눈에 보이는 효과가 없는 명령을 실수로 바인딩했다는 것입니다.

명령 에 대한 쉘 초기화 파일을 확인하십시오 stty. 이는 적어도 터미널의 기본 줄 편집기에 의존하는 프로그램에 직접적인 영향을 미치며, stty 설정과의 호환성을 유지하려고 노력하는 괜찮은 줄 편집기가 있는 프로그램에 간접적으로 영향을 미칠 수 있습니다.

특정 프로그램에서만 문제가 발생하는 경우 문제가 있는 구성이독서선도서관. 이 라이브러리는 bash 및 기타 여러 프로그램에서 사용됩니다. 키가 bash에서는 작동하지만 readline을 사용하는 다른 프로그램에서는 작동하지 않는다면, bash가 키를 덮어썼을 가능성이 있습니다. readline의 구성 파일은 다음과 같습니다..inputrc.

bash에서만 문제가 있는 경우에는 .bashrc터미널 관련 구성이 있어야 하는 위치와 다른 bash 구성 파일(구성이 잘못된 위치에 있는 경우)을 확인하세요.


~/.inputrc당신이 언급 한 댓글에서

Space: magic-space

magic-spacebash 명령입니다. 다른 프로그램은 이것을 이해하지 못합니다. bash에서 이것을 조건으로 설정하십시오:

$if Bash
Space: magic-space
$endif

또는 다음에서 이 설정을 제거 .inputrc하고 정의하세요 .bashrc.

bind 'Space: magic-space'

관련 정보