shell goto
goto shell实用程序允许用户导航到别名目录,并且还支持自动完成。
在使用goto之前,您需要注册目录别名。 例如:
goto -r dev / home / iridakos / development
然后转到该目录,例如:
goto dev
goto带有一个不错的自动完成脚本-每当在goto命令后按Tab键时,Bash或Zsh都会提示您有关可用别名的建议:
$ goto
< tab
>
bc
/ etc
/ bash_completion.d
dev
/ home
/ iridakos
/ development
rubies
/ home
/ iridakos
/ .rvm
/ rubies
有几种安装goto的方法。
克隆存储库并以超级用户或root身份运行安装脚本:
git clone https:
// github.com
/ iridakos
/ goto.git
cd goto
sudo .
/
install
在复制文件系统文件goto.sh的地方,并在您的.zshrc中添加一行或.bashrc中源吧。
例如,如果将文件放在主文件夹中,则只需将以下行添加到.zshrc或.bashrc文件中:
source ~ / goto.sh
MacOS中的Bash Shell提供了一个名为goto的公式:
brew install goto
echo -e " \$ include /etc/inputrc \n set colored-completion-prefix on" >> ~ / .inputrc
笔记:
要更改为别名目录,请键入:
goto < alias >
例如:
goto dev
要注册目录别名,请键入:
goto -r < alias > < directory >
要么
goto --register < alias > < directory >
例如:
goto -r blog / mnt / external / projects / html / blog
要么
goto --register blog / mnt / external / projects / html / blog
笔记:
goto -r last_release .
要注销别名,请使用:
goto -u < alias >
要么
goto --unregister < alias >
例如:
goto -u last_release
要么
goto --unregister last_release
注意:在命令( -u或--unregister )后按Tab键,完成脚本将提示您输入已注册别名的列表。
要获取您当前注册的别名的列表,请使用:
goto -l
要么
goto --list
要将别名扩展为其值,请使用:
goto -x < alias >
要么
goto --expand < alias >
例如:
goto -x last_release
要么
goto --expand last_release
要从文件系统中不再可访问的目录中清除别名,请使用:
goto -c
要么
goto --cleanup
要查看该工具的帮助信息,请使用:
goto -h
要么
goto --help
要查看工具的版本,请使用:
goto -v
要么
goto --version
要在更改目录之前将当前目录推送到目录堆栈中,请键入:
goto -p < alias >
要么
goto --push < alias >
要返回推送目录,请输入:
goto -o
要么
goto --pop
注意:此命令等效于popd,但在goto命令中。
如果看到未找到错误命令: Zsh中的compdef ,则意味着您需要加载bashcompinit 。 为此,请将其附加到您的.zshrc文件中:
autoload bashcompinit
bashcompinit
goto工具是根据MIT许可条款开放的源代码,欢迎您提供帮助。 要了解更多信息,请访问goto的GitHub存储库中的Contributing部分。
goto()
{
local target
_goto_resolve_db
if [ -z "$1" ]; then
# display usage and exit when no args
_goto_usage
return
fi
subcommand="$1"
shift
case "$subcommand" in
-c|--cleanup)
_goto_cleanup "$@"
;;
-r|--register) # Register an alias
_goto_register_alias "$@"
;;
-u|--unregister) # Unregister an alias
_goto_unregister_alias "$@"
;;
-p|--push) # Push the current directory onto the pushd stack, then goto
_goto_directory_push "$@"
;;
-o|--pop) # Pop the top directory off of the pushd stack, then change that directory
_goto_directory_pop
;;
-l|--list)
_goto_list_aliases
;;
-x|--expand) # Expand an alias
_goto_expand_alias "$@"
;;
-h|--help)
_goto_usage
;;
-v|--version)
_goto_version
;;
*)
_goto_directory "$subcommand"
;;
esac
return $?
}
_goto_resolve_db()
{
GOTO_DB="${GOTO_DB:-$HOME/.goto}"
touch -a "$GOTO_DB"
}
_goto_usage()
{
cat <<\USAGE
usage: goto [
它最初在转到的GitHub存储库中以自述文件的形式发布,并在获得许可的情况下被重用。
翻译自: https://opensource.com/article/20/1/directories-autocomplete-linux
shell goto