태그 보관물: autojump

디렉토리 이동을 쉽게 autojump

autojump는 말 그대로 디렉토리 간 점프를 자동으로는 아니고 쉽게 해 주는 도구다. 쉘에서 디렉토리를 자주 이동하게 되는데 이 이동을 쉽게 또 빠르게 해 주는 것이다. 경로가 길어지는 경우에 매우 유용하다.

설치

우분투에서는 다음 명령으로 autojump를 설치할 수 있다.

sangkle@nohyung:$ sudo apt-get install autojump

물론 소스 파일을 받아서 설치 할 수도 있다. 소스 파일을 다운 받아서 설치하는 방법은 autojump 홈페이지에 자세히 나와있다. 이렇게 설치 하면 autojump명령을 사용 할 수 있는데, 쉘에서 autojum를 더 쉽게 사용하기 위한 코드들이 있다. 우분투에서 패키지 메니저로 autojump를 설치하면 /usr/share/autojump에 bash와 zsh를 위한 별칭 코드를 제공한다. 이 코드를 복사해서 자신의 .bashrc 또는 .zshrc에 추가 해도 되고, 이 코드를 다음과 같이 로드 해도 된다.

bash를 사용하고 있으면 다음을 .bashrc에 추가한다.
[snippet]source /usr/share/autojump/autojump.bash[/snippet]
zsh를 사용하고 있으면 다음을 .zshrc에 추가한다.
[snippet]source /usr/share/autojump/autojump.zsh[/snippet]
참고로 oh my zsh를 사용하고 있으면 이미 플러그인으로 제공하고 있으므로 .zshrc파일의 plugin 변수에 다음과 같이 autojump를 추가해 주면 된다.
[snippet]plugin=(git ruby rake autojump)[/snippet]
 

사용법

autojump는 cd를 이용해서 디렉토리를 변경하면 변경된 디렉토리를 데이타베이스에 저장하고 있다가 명령을 내리면 이 디렉토리 경로에 포함된 문자가 있는 경로로 이동시켜 준다. 이동한 디렉토리의 목록은 jumpstat 또는 autojump –stat 명령을 통해 확일 할 수 있다. 사용법을 알려주기 위해서 여기 저기 디렉토리로 이동을 했다. jumpstat 명령을 수행한 결과가 다음과 같다.
[snippet]1.0: /etc/X11
1.0: /home/sangkle/Dropbox/emacs.d/vendor/auto-complete
1.0: /usr/share/icons
1.0: /home/sangkle/Dropbox/emacs.d/vendor
2.0: /var/log/mpd
4.0: /tmp
5.0: /home/sangkle.local/share/autojump
9.0: /usr/share/autojump
11.0: /home/sangkle/Dropbox/emacs.d/modules
17.0: /home/sangkle/Dropbox/emacs.d/bin
23.0: /home/sangkle/Dropbox/emacs.d
Total key weight: 75. Number of stored paths: 11[/snippet]
앞의 숫자는 가중치(weight)를 말한다. 이 가중치는 자주 이동하면 올라간다.

이동은 j를 사용하면 된다.
[snippet]j 디렉토리에 포함된 문자[/snippet]
예를들어 j autojump를 수행하면 /usr/share/autojump로 이동한다. 위 jumpstat명령의 결과를 보면 autojump를 포함 하는 경로가 두개가 있는데 각각 가중치가 5.0과 9.0이기 때문에 가중치가 높은 곳인 /usr/share/autojump로 이동하는 것이다. /home/sangkle/.local/share/autojump로 이동하려면 j sh auto과 같이 사용하면 된다. 다른 예를 들어보자. j comp를 수행하면 /home/sangkle/Dropbox/emacs.d/vendor/auto-complete로 이동한다.

j뒤에 스페이스를 입력하고 탭키를 누르면 __가 나타나는데 이 때 한번 더 탭키를 누르면 jumpstat의 결과 중 가중치가 높은 8개를 보여준다. 이 중에서 원하는 디렉토리의 숫자를 누르고 리턴을 누르면 해당 디렉토리로 이동한다. 또는 탭을 다시 눌러서 원하는 디렉토리를 옮길 수 있다.

 

기타 등등

위에서 autojump가 이동한 경로를 데이터베이스에 저장한다고 했는데 사실은 파일로 저장하고 있다. 이 파일은 다음 중 하나에 위치하고 있다.

  1. AUTOJUMP_DATA_DIR 환경 변수
  2. XDG_DATA_HOME 환경 변수 또는 $HOME/.local/share/autojump

위 디렉토리로 이동해서 보면 autojump.txt 파일과 autojump.txt.bak 파일이 있다. 확장자가 bak인 것은 백업파일이고 실제로 autojump.txt 파일이 사용된다. autojump.txt 파일은 24시간 마다 백업된다.