autojump

autojump is a faster way to navigate your filesystem. It works by maintaining a database of the directories you use the most from the command line.

Posted by kunnan on June 28, 2018

I、autojump

A cd command that learns - easily navigate directories from the command line

  • 允许你可以直接跳转到你喜爱的目录,而不用管你现在身在何处。
通过history命令就能找到近期执行的命令,autojump 就是通过记录你在 history 中的行为把你访问过的文件夹路径都 cache 下来。
  • autojump的工作方式很简单:
它会在你每次启动命令时记录你当前位置,并把它添加进它自身的数据库中。这样,某些目录比其它一些目录添加的次数多,这些目录一般就代表你最重要的目录,而它们的“权重”也会增大。

1.1 USAGE

  • autojump –help
  • 你不需要输入完整的名称,因为autojump会检索它的数据库,并返回最可能的结果:Sometimes it’s convenient to jump to a child directory (sub-directory of current directory) rather than typing out the full name.
autojump [目录的名字或名字的一部分]
  • autojump默认的别名:j is a convenience wrapper function around autojump
    $ j [目录的名字或名字的一部分]
    
  • autojump支持zsh和自动补完
  • Using Multiple Arguments:
j w in would then change directory to /home/user/work/inbox

1.2 可以访问目录数据库,并修改它的内容

  • 添加一个目录
    $ autojump -a [目录]
    
  • 手工增加权重
    $ autojump -i [权重]
    
  • 减少权重:
$ autojump -d [权重]
  • 跟踪所有改变:显示数据库中的统计数
$ autojump -s
  • 不再存在的目录从数据库中移除
>$ autojump --purge

II、INSTALLATION

2.1 REQUIREMENTS

  • 升级mac bash到4.3版本,太麻烦了,还是直接使用zsh devzkndeMacBook-Pro:2018wxrobot devzkn$ bash -v bash-3.2$
  • Supported shells:
bash v4.0+ 
zsh
fish
tcsh (experimental)
clink (Windows, experimental)

2.2 AUTOMATIC

2.2.3 OS X
brew install autojump
  • MacPorts also available:
port install autojump

2.3 autojump 以插件的形式在zsh 中的使用

  • 在 .zshrc 中找到 plugins=,在后面添加
    plugins=(git autojump)
    
  • 然后继续在上述文件中添加
    [[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
    
  • source ~/.zshrc
2.3.1 ~/.zshrc 加载执行~/.bash_profile
  • ~/.zshrc 默认情况下没有执行 ~/.bash_profile,需要手动添加:
# zsh 默认没有执行这个,导致我的配置无法生效
# 所以这里要加上
source ~/.bash_profile
  • If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# zsh 不认识 PATH 中的 ~ 符号
# 所以这里使用 $HOME 代替 ~
export PATH="$HOME/bin:$PATH"

III、KNOWN ISSUES

  • autojump does not support directories that begin with -.

For bash users

  • For bash users, autojump keeps track of directories by modifying $PROMPT_COMMAND. Do not overwrite $PROMPT_COMMAND:
export PROMPT_COMMAND="history -a"
  • Instead append to the end of the existing $PROMPT_COMMAND:
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND ;} history -a"

See Also

zsh

  • devzkndeMacBook-Pro:2018wxrobot devzkn$ ` sh -c “$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”`
Please look over the ~/.zshrc file to select plugins, themes, and options.
  • .zshrc bash shell默认读取的是当前用户下的.bash_profile文件,而zsh shell默认读取的是当前用户下的.zshrc文件
  • 2.Mac OSX默认使用的是bash shell,我们需要切换到zsh ,使用右侧命令来进行切换 chsh -s /bin/zsh
配置Oh My Zsh
  • 1.使用右侧命令来打开Oh My Zsh的配置文件 vi ~/.zshrc
  • 2.搜索ZSH_THEME找到主题配置
ZSH_THEME="robbyrussell"
avit
ZSH_THEME="agnoster" # (this is one of the fancy ones)
# see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
  • random theme
    ZSH_THEME="random" # (...please let it be pie... please be some pie..)
    
    ZSH_THEME_RANDOM_CANDIDATES=(
    "robbyrussell"
    "agnoster"
    )
    

In case you did not find a suitable theme for your needs, please have a look at the wiki for more of them.

plugins

自定义主题、git 显示、tab 补全

plugins=(
  git
)

other

/Users/devzkn/bin/knpost autojump autojump is a faster way to navigate your filesystem. It works by maintaining a database of the directories you use the most from the command line. -t Efficiency
#原来""的参数,需要自己加上""

转载请注明: > autojump