VI 같은 편집기를 사용하다보면, 무심결에 Ctrl+z를 눌러 편집 중이던 내용을 되돌리려고 하는 경우가 있습니다. 이런 경우, 의도와는 다르게 shell로 빠져 나오게 됩니다. (단축키를 변경하지 않았다면)
이때, VI는 백그라운드로 실행이 되고 있고, shell 명령을 실행할 수 있는 상태가 됩니다.
이때 프로세스가 종료된 것으로 알고, 편집 중이던 파일을 다시 열게 되면 이미 파일을 편집 중이라는 경고가 뜨게됩니다.
shell이 실행된 경우, 당황하지 말고 fg 명령으로 다시 편집 중이던 vim으로 돌아올 수 있습니다. (정확하게 말하면 프로세스 번호를 파라미터로 입력해야 하지만, 생략하면 가장 마지막 프로세스로 돌아갑니다. )
만약 중지된 프로세스가 있는 상태에서 다시 파일을 편집 중에 shell로 나왔다면, jobs 명령으로 현재 중지된 프로세스를 확인할 수 있습니다.
여기서 + 로 표시된 것이 가장 최근에 중지된 프로세스이고 fg 명령 입력시 아무런 인자를 입력하지 않으면 2 번 프로세스가 실행됩니다. (1번으로 돌아가고 싶다면 fg 1 이라고 입력 )
Ctrl+z는 VI로 편집 중에 잠시 나와서 명령을 실행하고 다시 편집기로 돌아가려고 할때 사용하시면 좋습니다.
그리고 shell을 실행하는 다른 방법은 명령행에 :shell 또는 :sh를 입력하는 방법도 있습니다. 한가지 다른 점이 있는데, 돌아 올때 fg가 아니라 exit를 입력해야 합니다.
그리고 마지막으로 VI에서 내용을 되돌리면 명령은 u 입니다.