博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gtShell - 为你常用的目录建立标签并快速跳转
阅读量:6228 次
发布时间:2019-06-21

本文共 3747 字,大约阅读时间需要 12 分钟。

使用场景: 如果你有很多工作目录,需要每天在这些目录中跳来跳去。那么你就应该试试goShell. 一个使用简单、功能恰到好处的terminal下的小工具。 gtShell支持将常用的一些目录保存为bookmark,提供快速跳转功能。这样你就不需要在使用cd后面跟随一长串的目录名称。 它也支持自动完成,你只需要输入开头的几个字母,然后按tab键就可以自动匹配。 目前源码被我host在上。

下面是主要文件gt.sh的源码。

gt.sh
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
#! /bin/bashDIRS="$HOME/.gtDirs"if test ! -e $DIRSthen  touch $DIRSfigt () {
case $1 in -d) temp=`mktemp -t .gtDirs-XXXXXX` sed "/^$2=/"d $DIRS > $temp mv $temp $DIRS rm -f $temp ;; -a) validate_bookmark_name "$@" if [ -z "$result" ]; then CURDIR=$PWD echo "$2=$CURDIR" >> $DIRS fi ;; -l) cat $DIRS ;; -h) print_usage ;; *) if [ -z $1 ]; then print_usage elif [[ ! -z `awk -F '=' '/^'"$1"'=/ {print $2 }' $DIRS` ]]; then cd `awk -F '=' '/^'"$1"'=/ {print $2 }' $DIRS` else echo 'error: bookmark name not found' fi esac}#validate namesfunction validate_bookmark_name {
result="" if [ -z $2 ]; then result='error: bookmark name required!' echo $result elif [ -z `echo $2 | sed 's/[^A-Za-z0-9_]//g' ` ]; then result='error: bookmark name is invalid!' echo $result fi}function print_usage {
echo 'Usage:' echo '-a
- Saves the current directory as "bookmark_name"' echo '-d
- Deletes the bookmark' echo '-l - Lists all available bookmarks' echo '-h(-help,--help) - Lists usage' echo '
- Jump to the bookmark'}function _l {
awk -F '=' ' {print $1} ' $DIRS}function _comp {
local curw COMPREPLY=() curw=${
COMP_WORDS[COMP_CWORD]} COMPREPLY=($(compgen -W '`_l`' -- $curw)) return 0}# ZSH completion commandfunction _compzsh {
reply=($(_l))}if [ $ZSH_VERSION ]; then compctl -K _compzsh gtelse shopt -s progcomp complete -F _comp gtfi

安装:

  1. git clone git@github.com:huangbowen521/gtShell.git 或者直接拷贝 gt.sh文件内容。

  2. add gt.sh file path to your ~/.bash_profile or ~/.bashrc file

  3. reload your profile or restart your terminal

用例:

  • gt -a <bookmark_name> - 保存当前目录的标签为 给定的bookmark_name

  • gt -d <bookmark_name> - 删除给定的标签

  • gt -l - 列除所有标签

  • gt -h - 帮助信息

  • gt <bookmark_name> - 跳转到指定的标签目录

例子:

123456789
current_user:~$ cd sourcecode/study/current_user:~/sourcecode/study$ gt -a studycurrent_user:~/sourcecode/study$ cd ~current_user:~$ gt studycurrent_user:~/sourcecode/study$ gt -lgoAgent=/Users/twer/sourcecode/goagent/goagent-goagent-9c1edd3/localoctopress=/Users/twer/sourcecode/octopressgoShell=/Users/twer/sourcecode/shell/goShellstudy=/Users/twer/sourcecode/study
12345
current_user:~/sourcecode/study$ gt -d studycurrent_user:~/sourcecode/study$ gt -lgoAgent=/Users/twer/sourcecode/goagent/goagent-goagent-9c1edd3/localoctopress=/Users/twer/sourcecode/octopressgoShell=/Users/twer/sourcecode/shell/goShell
1234567
current_user:~/sourcecode/study$ gt -hUsage:-a 
- Saves the current directory as "bookmark_name"-d
- Deletes the bookmark-l - Lists all available bookmarks-h(-help,--help) - Lists usage
- Jump to the bookmark
123
current_user:~/sourcecode/study$ gt go
goAgent goShellcurrent_user:~/sourcecode/study$ gt goShell

转载地址:http://sunna.baihongyu.com/

你可能感兴趣的文章
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
oracle12C 重做日志
查看>>
awk-sed
查看>>
zookeeper与kafka安装部署及java环境搭建(发布订阅模式)
查看>>
手写Json转换
查看>>
编码规约
查看>>
LeetCode OJ:Min Stack(最小栈问题)
查看>>
JS判断数组方法大全
查看>>
Tftod 的服务器使用下载文件
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
数字电路建模 - jchdl
查看>>
( 转)UVM验证方法学之一验证平台
查看>>
编写每天定时切割Nginx日志的脚本
查看>>
我们一起来聊聊并发吧,one。
查看>>
每日英语:China Pipeline Explosions Kill 52
查看>>
paip.提升性能---jvm java 工具使用.
查看>>
java实现可有括号的android计算器
查看>>
8个免费且实用的C++ GUI库(转载)
查看>>
WGS84 2 GCJ-02
查看>>
RotateAnimation详解
查看>>