Autojump: zsh์˜ ์ž๋™ ์™„์„ฑ(oh-my-zsh ์‚ฌ์šฉ)์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2015๋…„ 02์›” 18์ผ  ยท  20์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: wting/autojump

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ช…๋ฐฑํ•œ ๊ฒƒ์„ ๋†“์น˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๋งํ•ด ์ค„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

zsh (๋ฒ„์ „ 5.0.7) ๋ฐ oh-my-zsh ์„ค์ •์— brew autojump ๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ ํƒญ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž๋™ ์™„์„ฑ ๋Œ€์‹  ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ๊ณผ ํด๋”๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh ๋ผ์ธ์„ .zshrc ์— ์ถ”๊ฐ€ํ–ˆ๊ณ  $# oh-my-zsh #$์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” autojump ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?). ์–ด์จŒ๋“  ํƒญ ์™„์„ฑ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”!

๋ชจ๋“  20 ๋Œ“๊ธ€

๋‚˜์—๊ฒŒ๋„. autojump์—์„œ TABbing์€ ์•„๋ฌด ๊ฒƒ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

autojump์˜ ํƒญ ์ด๋™์€ ์—ฌ์ „ํžˆ โ€‹โ€‹โ€‹โ€‹์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

+1, ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ๊ณผ ํด๋”๋„ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ??? brew์™€ ํ•จ๊ป˜ autojump๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Mac์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ถ„ํˆฌ์—์„œ๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‚ด ์ˆ˜์ • ์‚ฌํ•ญ์€ -
1) ๋จผ์ € bash์—์„œ zshrc๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ SHELL์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
$~/.zshrc
$ZSH

์—ฌ๊ธฐ์— ์ œ๊ณต๋œ ์„ค์น˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ž๋‹ค๋ฉด - https://github.com/robbyrussell/oh-my-zsh/blob/master/README.markdown

์ถ”์‹  : ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด mac์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

FWIW, ์ €๋„ Mac์— ์žˆ์Šต๋‹ˆ๋‹ค(zsh ์‚ฌ์šฉ). ์–ผ๋งˆ ์ „์— ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ž ์‹œ ๋™์•ˆ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

image

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

oh-my-zsh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™ ์ ํ”„ ์™„์„ฑ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
oh-my-zsh๊ฐ€ ์—†์œผ๋ฉด ์™„์„ฑ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ €๋Š” homebrew๋ฅผ ํ†ตํ•ด autojump๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ™•์ธํ–ˆ๋‹ค
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh
๋‚ด ~/.zshrc์— ์žˆ์Šต๋‹ˆ๋‹ค

์ž๋™ ์ ํ”„ v22.5.3
zsh 5.7.1(x86_64-apple-darwin19.0)

zsh๋กœ ์ด๋™์„ ์ฝ๋Š” ๋™์•ˆ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
on-my-zsh ์—†์ด ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
autoload -Uz compinit && compinit
~/.oh-my-zsh/oh-my-zsh.sh์—์„œ๋„ ๋น„์Šทํ•œ ๋ช…๋ น์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
autoload -U compaudit compinit
ํ•ต์‹ฌ์€ compinit ์ž…๋‹ˆ๋‹ค.

(์ œ ์†”๋ฃจ์…˜๋„ ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด ์—„์ง€์ฒ™ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ˜ƒ)

@boyoungzheng ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์€ ์ž…๋ ฅ๋œ ํ…์ŠคํŠธ ๋’ค์— ์„ฑ๊ฐ€์‹  ์ด์ค‘ ๋ฐ‘์ค„("__")์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ:
$ j tmp<tab><tab>

๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค:

$ j tmp__

tmp__1__/bla/tmp-something
tmp__2__/bla/another-tmp
...

๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋™์ผํ•œ ์ œ์•ˆ๋„ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค :)

@boyoungzheng ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์€ ์ž…๋ ฅ๋œ ํ…์ŠคํŠธ ๋’ค์— ์„ฑ๊ฐ€์‹  ์ด์ค‘ ๋ฐ‘์ค„("__")์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ:
$ j tmp<tab><tab>

๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค:

$ j tmp__

tmp__1__/bla/tmp-something
tmp__2__/bla/another-tmp
...

๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋™์ผํ•œ ์ œ์•ˆ๋„ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค :)

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๊นŒ? ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋™ ์™„์„ฑ์€ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‘ ๊ฐœ์˜ ๋ฐ‘์ค„๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

@MauritDecamps ์•„๋‹ˆ์š”, ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„์ง ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋˜ํ•œ Maurits์˜ ๋ฌธ์ œ ์— ๋ถ™์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„ ๋ถ„๋ช…ํžˆ ๊ทธ๊ฒƒ์€ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค :

ZSH ํƒญ ์™„์„ฑ์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ZSH ๋™์ž‘์€ ์ด์ œ Bash ๋™์ž‘๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ compinit ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ~/.zshrc์— ๋‹ค์Œ ์ค„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ ๋กœ๋“œ -U compinit; ์ปดํ”ผ๋‹›

์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด:

์ œ์ด

์ƒ์œ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•ญ๋ชฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฉ”๋‰ด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์•„๋ฌด ์ˆซ์ž๋‚˜ ์ž…๋ ฅํ•˜๊ณ  ์ž…๋ ฅ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

@shaungrady ์žฌ๋ฏธ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์•„, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹คํ–‰ํ–ˆ๊ณ  ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. compaudit ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜์—ด๋œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์˜ ๋งˆํฌ์—…์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด README์˜ RAW ํ˜•์‹์„ ์ฝ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. j ๋‹ค์Œ์— space ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  tab 2๊ฐœ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ด๋™ํ•˜๋ ค๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ผ๊ณ  ํ–ˆ์ง€๋งŒ ๋ฐ‘์ค„ ๋‘ ๊ฐœ๋งŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ j xTABTAB x__1_foo x__2_bar 2 ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ bar $ ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ตœ๊ณ ๋ผ๋ฉด ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ญ”๊ฐ€ ์—ฌ์ „ํžˆ ๋‚˜์—๊ฒŒ๋Š” ์•ฝ๊ฐ„ ๋–จ์–ด์ ธ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

์•ˆ๋…•ํ•˜์„ธ์š”, ํ”Œ๋Ÿฌ๊ทธ์ธ autojump un .zshrc ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
MacOS ์นดํƒˆ๋ฆฌ๋‚˜ V10.15.7
์ž๋™ ์ ํ”„ v22.5.3

plugins=(git autojump)

์•ˆ๋…•ํ•˜์„ธ์š”, ํ”Œ๋Ÿฌ๊ทธ์ธ autojump un .zshrc ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
MacOS ์นดํƒˆ๋ฆฌ๋‚˜ V10.15.7
์ž๋™ ์ ํ”„ v22.5.3

plugins=(git autojump)

๊ทธ๋ฆฌ๊ณ  source $ZSH/oh-my-zsh.sh ํ–‰์„ ๊ฐ™์€ ํŒŒ์ผ ๋์˜ .zshrc ์—์„œ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

@shaungrady ๊ฐ€ autoload -U compinit; compinit ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์™„๋ฃŒ๋ฅผ ์ž‘๋™์‹œํ‚ค๋ผ๊ณ  ๋งํ•จ์œผ๋กœ์จ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ( man zshcontrib ). plugins=(autojump) ํ•ญ๋ชฉ์€ oh-my-zsh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•˜์ง€๋งŒ ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์€ autojump ํ”„๋กœํ•„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ(autojump.plugin.zsh)์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ oh-my-zsh๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์†Œ์‹ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๋Š” ์–ด๋–ค OS ๋ฐ/๋˜๋Š” ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์œ„์น˜์— ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ €๋ฅผ ์œ„ํ•ด Homebrew๋กœ autojump๋ฅผ ์„ค์น˜ํ•˜๋Š” MacOS, /usr/local/etc/profile.d/autojump.sh์— ์žˆ์Œ).

์š”์•ฝํ•˜๋ฉด oh-my-zsh๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ผ๋ฐ˜ zsh๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
1) .zshrc์—์„œ autojump ํ”„๋กœํ•„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
2) .zshrc์—์„œ autoload -U compinit; compinit -y ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์™„์„ฑ ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค.
3) j foo[tab][tab] ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์™„๋ฃŒ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋ฉ”๋‰ด๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ๋””๋ ‰ํ† ๋ฆฌ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

@rkulla Ubuntu 18.04, oh-my-zsh์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆํ•œ ๋Œ€๋กœ zshrc์— autoload -U compinit; compinit -y ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ณ  ์ด์ œ ํƒญ ์™„์„ฑ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค !

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰