技巧需求描述
命令控的我,发现越来越多的项目目录需要我cd来cd去,思考着能不能tab快捷键快速呼出呢?
答案是肯定的,自己动手丰衣足食哈。
方案
采用fish shell和python满足需求。
开始前
需要安装fish shell,mac和linux都支持安装,python默认已经安装。
步骤
第一步
编辑fihs shell的配置文件
vim ~/.config/fish/config.fish
添加
complete -c ycd -x -a '( cat /opt/dir/yulove/yuinit/src/shell/mbin/bin_yucd.py |grep "\": print" | cut -d \" -f 2 )'
function ycd
cd (python /opt/dir/yulove/yuinit/src/shell/mbin/bin_yucd.py $argv)
end
文件bin_yucd.py 内容 : (文件路径可修改,但是需要是python代码,要python执行)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
if sys.argv[1] == "yulove": print('/opt/dir/yulove')
elif sys.argv[1] == "YuCode": print('/opt/dir/YuCode')
elif sys.argv[1] == "yuinit": print('/opt/dir/yulove/yuinit')
elif sys.argv[1] == "YuKnowApp": print('/opt/dir/YuCode/open_app/YuKnowApp')
elif sys.argv[1] == "yudata": print('/opt/dir/yulove/yudata')
有新的目录都可以按上面的格式添加。
最后执行看下效果
输入ycd,再按tab键呼出
如图:
最后
脚本很简单,有意思的地方是组合起来满足自己的需求,支持输入字符后再tab键补全。