koodev

Create a new file in ido mode

Emacs

예전에 다른 곳에 썼던 글을 가져온다. 글이 쓰여진 시점은 2017년 1월 이다.

Emacs를 사용하기 시작한지 4년 가까이 되었지만 최근에서야 ido mode를 사용하려고 하고있다. 익숙해지려고 하던 도중 파일 생성에 대해 문제점이 있어서 관련 내용을 정리해 본다.

상황은 다음과 같다. 파일을 생성하려고 C-x C-f 를 누르고 해당 파일 이름을 입력했다. ido-create-new-buffer 변수가 ‘alway로 잡혀 있기 때문에 매칭되는 파일이 없으면 자동으로 새 버퍼를 연다. 그런데 ido mode가 이전에 다루었던 path들을 캐시하고 있기 때문에 이전 path에 매칭되는 파일이 있을 경우 새 버퍼를 여는 대신에 해당 파일의 이름으로 버퍼를 열게된다. 파일 생성을 하고 싶은데 이전 경로의 파일을 열게 되는 것이다. 이런 상황이 많지는 않을 것 같기도 하지만 소스코드에 따라서 Makefile이나 CMakeList.txt 같은 파일들은 디렉토리마다 존재할 수가 있고, 새로 만드려고 할 경우 문제가 될 수도 있다.

ido 모드를 빠져나가기

C-x C-f C-f 이걸 누르면 ido 모드를 종료하고 일반적인 find file 모드로 진입하게 된다. 그리고 생성할 파일 이름을 입력하면 (지나치게) 스마트하게 이전 path를 뒤져서 파일을 열지 않고 입력한 해당 경로의 버퍼를 열게 된다. 가장 적당한 방법이라고 생각한다.

C-j

또 다른 방법은 ido-find-file 에서 생성할 파일 이름을 입력하고 재빨리 C-j 를 누르면 해당 파일이 생성된다. 하지만 너무 늦을 경우 이전 path를 뒤지게 되니 바짝 서둘러서 진행해야 한다.

ido-auto-merge-work-directories-length

ido-auto-merge-work-directories-length 변수를 -1로 설정할 경우 이전 path를 뒤지는 짓을 하지 않도록 막는다. 이전 path를 뒤지는 기능이 아쉽겠지만 작업환경에 따라서는 유용할 수도 있을 것 같다.

References

'Emacs' 카테고리의 다른 글

Emacs - Python 문서 열람시 멈춤현상  (0) 2019.09.18
Emacs Wdired 모드  (0) 2019.06.29
macOS 에서 Emacs 데몬이 종료되지 않는 문제  (0) 2019.06.07
Emacs Server setting  (0) 2019.05.15
EIN and virtualenvwrapper  (0) 2018.07.22