IDL Graphics 창 모두 닫기

IDL에서 대화형(Interacive mode)으로 그래픽 작업을 하다 보면, 그래픽 창 열 몇 개 열리는 건 흔한 일입니다. 이 창들 닫을 때, 몇 개 안되면 창의 닫기 버튼으로 하나씩 닫으면 되는데, 뭔가 프로그램을 잘못 만들었거나 할 때 수십개 창이 열려 버리면 하나씩 닫기는 좀 번거롭습니다.

그래픽 창은 계속 열립니다.

.reset 은 모든 걸 초기화하는 강력한 도구입니다. 그런데 이 방식은 다른 변수들도 모두 삭제해 버리기 때문에, 대화형 작업에서 사용하기가 좀 껄끄럽습니다.

IDL> .reset

잘 알려진 방법은 getwindows() 함수를 사용하는 것입니다.

IDL> w=getwindows()
IDL> foreach, i, w do i.close

이 방식은 타이핑도 많이 해야 하고(물론 이를 프로시저로 만들 수는 있겠죠), 뭔가 비법 같지 않은 안타까움이 있습니다. 그렇지만, 실제 실행해 보면, 카드게임에서 카드를 정리하듯이 촤르르르 하나씩 창을 닫아나가는 모습이 멋질 때가 있습니다.

미국의 기술지원팀이 ireset 이라는 명령을 쓰는 것을 보았습니다.

“뭐야, 이거 오타 아닌가?”

라고 처음에는 생각했습니다. 이것은 원래 iTools 를 정리하기 위한 명령어였거든요. 지금은 iTools를 쓰시는 분은 거의 없다고 봐야 되겠죠. iTools는 이제 New Graphics의 뒤편으로 거의 물러나 있다고 보아야 합니다. 그럼에도 없애지는 않았으니 쓸 수는 있습니다. (IDL> ivolume, /test)

어쨌든, ireset을 이용하면 New Graphics의 창도 모두 닫을 수 있습니다. 한번 해 보세요.

IDL> ireset

iTools 시스템 모두 닫는다는 별로 무섭지도 않은 경고

ireset을 실행해도 앞의 getwindows() 함수를 이용했을 때처럼 하나씩 창을 닫아 나갑니다. ireset이 New Graphics에도 작동을 한다는 것이 신기하군요.