내 문제는 Bash 쉘이 입력 한 문자 표시를 중단한다는 것입니다. 그래도 명령을 읽습니다.
나는이 문제를 꽤 많이 겪었고 그 원인을 이해하지 못합니다. 나는 그것을 해결하는 방법을 알고 있지만, 내가 문제에서 벗어나는 길을 "부두"할 때 그것을 정말로 좋아하지 않는다.
이 문제를 겪은 두 가지 방법을 설명하겠습니다.
특정 프로세스 인 http://pythonpaste.org/script/를 실행 중이며 때로는 중지하거나 제어를 중단하면 셸에 다시 제공됩니다. 그런 다음 쉘에 명령을 입력하면 입력 한 문자가 표시되지 않습니다. Enter 키를 누르면 명령 이 제출됩니다. 예를 들어 :
- "ls"를 입력합니다
- 나는 빈 프롬프트 만 보이고 더 이상 아무것도 보이지 않습니다.
- Enter 키를 누르면 파일 목록이 표시됩니다. 즉, 명령 이 실행됩니다.
- "reset"명령을 주면 쉘이 다시 정상적으로 작동하기 시작합니다
이것이 일어나는 두 번째 방법은 다음과 같은 명령을 내릴 때입니다.
$ grep foo * -l | xargs vim
grep을 사용하여 특정 패턴이있는 파일을 찾은 다음 grep에서 발생하는 모든 파일을 열고 싶습니다. 이것은 매력처럼 작동합니다 (바람직하지는 않지만). 그러나 Vim을 종료하면 쉘에 입력 한 문자가 표시되지 않습니다. 재설정 명령으로 문제가 해결됩니다.
내 생각에 두 문제 모두 근본적인 이유가 있지만 그 이유가 무엇인지 또는 어떤 것인지에 대해서는 다소 혼란스러워합니다.
이 문제에 대한 검색은 설명 자체가 모호하고 어려운 검색어가 없기 때문에 문제가됩니다.
편집하다
주는
stty --all
John S. Gruber의 요청에 따라 다음과 같은 결과를 얻었습니다 (가독성을 위해 편집 된 공백).
speed 0 baud;
rows 53;
columns 186;
line = 0;
intr = <undef>;
quit = <undef>;
erase = <undef>;
kill = <undef>;
eof = <undef>;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = <undef>;
stop = <undef>;
susp = <undef>;
rprnt = <undef>;
werase = <undef>;
lnext = <undef>;
flush = <undef>;
min = 0;
time = 0;
-parenb
-parodd cs8
-hupcl
-cstopb cread
-clocal
-crtscts
-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
stty --all질문에 대한 결과를 추가했습니다 . 미리 감사드립니다!
stty --all귀하의 질문에 결과 를 입력 하고 넣으십시오. 에코는 꺼져있는 tty 특성입니다. Vim은 실행 중에이 작업을 수행하며 터미널도 원시 모드로 설정합니다. 종료되면 터미널 설정 자체를 재설정해야합니다. vim이 실행 중일 때i편집기를 삽입 모드로 만드는 명령 을 에코하지 않으려 고합니다 . 이 설정은 tty 장치에 입력 한 내용을 처리하는 방법을 알려줍니다. vim이 실행되는 동안 무엇이 에코되어야하는지 에코 처리합니다.