vim 관련 질문드립니다.

chyusa1223의 이미지

 
#include <stdio.h>
 int main() 
{ 
   int a=3,b=0;
   scanf("%d",&a); 
   scanf("%d",&b); 
   printf("answer = %d\n",a+b); 
   return 0;
}

위 예제를 컴파일 후 터미널에서 ./hello로 실행시킬때는 아무런 문제가 없이 실행이 됩니다.

그런데 vim에서 :!./hello로 쉘로 빠져나가지 않고 실행할 경우에는 scanf가 동작하지 않습니다.

그냥 바로 answer=3과 같이 바로 결과값이 나와버립니다.

터미널에서 동작하는걸 봐서는 소스코드나 실행상의 문제는 아닌것 같은데 도대체 무엇이 문제인지 모르겠네요.

제가 지금 사용하고 있는 에디터가 neovim인데 이 자체에 문제가 있는 걸까요?

이유가 무엇인지 , 어떻게 하면 수정할 수 있을지 궁금합니다.

가능하시면 답변 부탁드립니다. 감사합니다.

Prentice의 이미지

https://github.com/neovim/neovim/issues/1496

neovim 특성상 stdin <-> tty 연결이 되지 않아서 그런 듯합니다.

터미널에서 그냥 ./hello, 아니면 false | ./hello 실행하셨을 때 결과랑 비교해보세요.