🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# YHP ![](https://img.kancloud.cn/2c/95/2c955df30daf67706f29e0cb5d22b60a_301x426.png) ## 1 使用linux有时候会经常进入到某些文件夹,用cd比较影响效率,我使用的shell是fish shell,于是使用fish 写了一个直接进入文件夹的函数,并且这是一个模板,之后比如要做直接打开网页,直接打开问价夹都可以使用这个模板修改很快实现,并且不存在什么移植困难的问题! <br/> fish自定义函数放置在`~/.config/fish/functions/`下面,这个下面以.fish结尾的文件是在fish初始化时会自定加载的,类似与bash的bashrc文件。 <br/> 写的这个fish函数命名为`cdd.fish`,在fish shell下加载后,对应的命令就是`cdd`,源码如下: ```sh #!/usr/bin/env fish #UFUNCTION=第二代cdd function cdd #+++++++++++++++ 参数设置 +++++++++++++++++++ set dir "/home/yhp/.config/fish/functions" set cmd_name "cdd" #本函数的外部调用指令,需保持文件名为 cmd_name.fish 函数名为 cmd_name set insert_cmd "cd" #函数实际的执行主要指令 -进入指定文件夹 #++++++++++++ end 参数设置 ++++++++++++++++++ set fd "/tmp/$cmd_name.db" if not test -f $fd set file "$dir/$cmd_name.fish" set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1) set db (math $db + 1) cat $file | tail -n +$db >$fd end #cat $fd if test -z $argv[1] #空参数 echo "使用 $cmd_name -help查看支持的参数" else if test $argv[1] = "-help" sed -i "s/#//g" $fd #删除文本中的 "#" echo "Usage: $cmd_name [option]" echo cat $fd | awk '{print $1,$2}' | column -s \ -t echo else if test $argv[1] = "-refresh" set file "$dir/$cmd_name.fish" set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1) set db (math $db + 1) cat $file | tail -n +$db >$fd echo "指令刷新完成,请使用 $cmd_name -help 查看最新指令" echo else set cmd "awk '/#$argv[1]/{print $1}' $fd" set st (eval $cmd) if test -z $st echo "使用 $cmd_name -help查看支持的参数" else #echo $st set ur (echo $st | cut -d' ' -f3) set cmd "$insert_cmd $ur" eval $cmd # >/dev/null ^/dev/null & pwd end end return end ###### 按照下面的格式,将会自动读取下面的内容,方便添加内容 ######## #~~~~~~# #-help 显示帮助 #-refresh 刷新指令缓存(每次添加指令后执行一次) #该行以下可修改 #tmp 进入个人tmp文件夹 /media/yhp/_dde_data/temp #data 进入个人data文件夹 /media/yhp/_dde_data #iverilog 进入iverilog_module项目路径 /media/yhp/_dde_data/FPGA_PRJ/iverilog_module #go 进入golang项目路径 /media/yhp/_dde_data/go #linux_config 进入linux_config项目路径 /media/yhp/_dde_data/linux_config #python 进入python项目路径 /media/yhp/_dde_data/mpython/src #shell 进入shell项目路径 /media/yhp/_dde_data/shell #sverilog 进入system-verilog项目路径 /media/yhp/_dde_data/sverilog #fpga 进入fpga-ide项目路径 /media/yhp/_dde_data/FPGA_PRJ/ #ftir 进入ftir光谱仪项目路径 /media/yhp/_dde_data/FTIR/ #note 进入看云个人笔记路径 /home/yhp/Documents/kancloud/note2020 #paper 进入个人论文路径 /media/yhp/_dde_data/论文 ``` ## 2 使用linux有时候会经常进入到某些文件夹,用cd比较影响效率,我使用的shell是fish shell,于是使用fish 写了一个直接进入文件夹的函数,并且这是一个模板,之后比如要做直接打开网页,直接打开问价夹都可以使用这个模板修改很快实现,并且不存在什么移植困难的问题! <br/> fish自定义函数放置在`~/.config/fish/functions/`下面,这个下面以.fish结尾的文件是在fish初始化时会自定加载的,类似与bash的bashrc文件。 <br/> 写的这个fish函数命名为`cdd.fish`,在fish shell下加载后,对应的命令就是`cdd`,源码如下: ```sh #!/usr/bin/env fish #UFUNCTION=第二代cdd function cdd #+++++++++++++++ 参数设置 +++++++++++++++++++ set dir "/home/yhp/.config/fish/functions" set cmd_name "cdd" #本函数的外部调用指令,需保持文件名为 cmd_name.fish 函数名为 cmd_name set insert_cmd "cd" #函数实际的执行主要指令 -进入指定文件夹 #++++++++++++ end 参数设置 ++++++++++++++++++ set fd "/tmp/$cmd_name.db" if not test -f $fd set file "$dir/$cmd_name.fish" set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1) set db (math $db + 1) cat $file | tail -n +$db >$fd end #cat $fd if test -z $argv[1] #空参数 echo "使用 $cmd_name -help查看支持的参数" else if test $argv[1] = "-help" sed -i "s/#//g" $fd #删除文本中的 "#" echo "Usage: $cmd_name [option]" echo cat $fd | awk '{print $1,$2}' | column -s \ -t echo else if test $argv[1] = "-refresh" set file "$dir/$cmd_name.fish" set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1) set db (math $db + 1) cat $file | tail -n +$db >$fd echo "指令刷新完成,请使用 $cmd_name -help 查看最新指令" echo else set cmd "awk '/#$argv[1]/{print $1}' $fd" set st (eval $cmd) if test -z $st echo "使用 $cmd_name -help查看支持的参数" else #echo $st set ur (echo $st | cut -d' ' -f3) set cmd "$insert_cmd $ur" eval $cmd # >/dev/null ^/dev/null & pwd end end return end ###### 按照下面的格式,将会自动读取下面的内容,方便添加内容 ######## #~~~~~~# #-help 显示帮助 #-refresh 刷新指令缓存(每次添加指令后执行一次) #该行以下可修改 #tmp 进入个人tmp文件夹 /media/yhp/_dde_data/temp #data 进入个人data文件夹 /media/yhp/_dde_data #iverilog 进入iverilog_module项目路径 /media/yhp/_dde_data/FPGA_PRJ/iverilog_module #go 进入golang项目路径 /media/yhp/_dde_data/go #linux_config 进入linux_config项目路径 /media/yhp/_dde_data/linux_config #python 进入python项目路径 /media/yhp/_dde_data/mpython/src #shell 进入shell项目路径 /media/yhp/_dde_data/shell #sverilog 进入system-verilog项目路径 /media/yhp/_dde_data/sverilog #fpga 进入fpga-ide项目路径 /media/yhp/_dde_data/FPGA_PRJ/ #ftir 进入ftir光谱仪项目路径 /media/yhp/_dde_data/FTIR/ #note 进入看云个人笔记路径 /home/yhp/Documents/kancloud/note2020 #paper 进入个人论文路径 /media/yhp/_dde_data/论文 ``` # YX ## KY 使用linux有时候会经常进入到某些文件夹,用cd比较影响效率,我使用的shell是fish shell,于是使用fish 写了一个直接进入文件夹的函数,并且这是一个模板,之后比如要做直接打开网页,直接打开问价夹都可以使用这个模板修改很快实现,并且不存在什么移植困难的问题! <br/> fish自定义函数放置在`~/.config/fish/functions/`下面,这个下面以.fish结尾的文件是在fish初始化时会自定加载的,类似与bash的bashrc文件。 <br/> 写的这个fish函数命名为`cdd.fish`,在fish shell下加载后,对应的命令就是`cdd`,源码如下: ```sh #!/usr/bin/env fish #UFUNCTION=第二代cdd function cdd #+++++++++++++++ 参数设置 +++++++++++++++++++ set dir "/home/yhp/.config/fish/functions" set cmd_name "cdd" #本函数的外部调用指令,需保持文件名为 cmd_name.fish 函数名为 cmd_name set insert_cmd "cd" #函数实际的执行主要指令 -进入指定文件夹 #++++++++++++ end 参数设置 ++++++++++++++++++ set fd "/tmp/$cmd_name.db" if not test -f $fd set file "$dir/$cmd_name.fish" set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1) set db (math $db + 1) cat $file | tail -n +$db >$fd end #cat $fd if test -z $argv[1] #空参数 echo "使用 $cmd_name -help查看支持的参数" else if test $argv[1] = "-help" sed -i "s/#//g" $fd #删除文本中的 "#" echo "Usage: $cmd_name [option]" echo cat $fd | awk '{print $1,$2}' | column -s \ -t echo else if test $argv[1] = "-refresh" set file "$dir/$cmd_name.fish" set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1) set db (math $db + 1) cat $file | tail -n +$db >$fd echo "指令刷新完成,请使用 $cmd_name -help 查看最新指令" echo else set cmd "awk '/#$argv[1]/{print $1}' $fd" set st (eval $cmd) if test -z $st echo "使用 $cmd_name -help查看支持的参数" else #echo $st set ur (echo $st | cut -d' ' -f3) set cmd "$insert_cmd $ur" eval $cmd # >/dev/null ^/dev/null & pwd end end return end ###### 按照下面的格式,将会自动读取下面的内容,方便添加内容 ######## #~~~~~~# #-help 显示帮助 #-refresh 刷新指令缓存(每次添加指令后执行一次) #该行以下可修改 #tmp 进入个人tmp文件夹 /media/yhp/_dde_data/temp #data 进入个人data文件夹 /media/yhp/_dde_data #iverilog 进入iverilog_module项目路径 /media/yhp/_dde_data/FPGA_PRJ/iverilog_module #go 进入golang项目路径 /media/yhp/_dde_data/go #linux_config 进入linux_config项目路径 /media/yhp/_dde_data/linux_config #python 进入python项目路径 /media/yhp/_dde_data/mpython/src #shell 进入shell项目路径 /media/yhp/_dde_data/shell #sverilog 进入system-verilog项目路径 /media/yhp/_dde_data/sverilog #fpga 进入fpga-ide项目路径 /media/yhp/_dde_data/FPGA_PRJ/ #ftir 进入ftir光谱仪项目路径 /media/yhp/_dde_data/FTIR/ #note 进入看云个人笔记路径 /home/yhp/Documents/kancloud/note2020 #paper 进入个人论文路径 /media/yhp/_dde_data/论文 ```