cd 用来日常操作太丑陋了, 我要写个书签功能

2012-10-14 20:32:37 +08:00
 jiyinyiyong
自言自语这个节点有点搞不懂,, 不好意思重帖了.. http://v2ex.com/t/49968

----------

用 Node 写了个粗糙的命令, 现在至少能动做了
https://github.com/jiyinyiyong/cd-link
Bash 部分实在太难受了, 和同学一起想办法凑了很多次才成功的..
要强大 Bash 大概真的能很强大, 的对于我这样的用户来说真设计太恶心了
下面是一些演示:

➤➤ g -l
cd-link: /home/chen/code/cd-link
➤➤ pwd
/home/chen/code/cd-link
➤➤ g -l
cd-link: /home/chen/code/cd-link
➤➤ g home /home/chen/
'home' -> '/home/chen/' saved!
➤➤ g -l
cd-link: /home/chen/code/cd-link
home: /home/chen/
➤➤ g home
code/ data/ desk/ dl/ doc/ kit/ music/ pic/ pub/ tmp/ video/ zjut/
∮ 12 /home/chen
➤➤ g nginx /etc/nginx/
'nginx' -> '/etc/nginx/' saved!
➤➤ g code /home/chen/code/
'code' -> '/home/chen/code/' saved!
➤➤ g nginx
fastcgi.conf fastcgi_params koi-utf koi-win mime.types nginx.conf scgi_params uwsgi_params win-utf
∮ 9 /etc/nginx
➤➤ g -l
cd-link: /home/chen/code/cd-link
home: /home/chen/
nginx: /etc/nginx/
code: /home/chen/code/
➤➤ g demo /var/lib/mongodb/
'demo' -> '/var/lib/mongodb/' saved!
➤➤ g dem
link 'dem' not found!
➤➤ g demo
bash: cd: /var/lib/mongodb/: Permission denied
fastcgi.conf fastcgi_params koi-utf koi-win mime.types nginx.conf scgi_params uwsgi_params win-utf
∮ 9 /etc/nginx
➤➤ g -d demo
removed link 'demo'
➤➤ g -l
cd-link: /home/chen/code/cd-link
home: /home/chen/
nginx: /etc/nginx/
code: /home/chen/code/
➤➤

我使用 Node 处理数据书签映射的, 平台兼容性很差吧
但我想这个思路在服务器段可以借鉴..
就是用 Bash 调用外部程序, 然后形成 cd 跳转功能
因为直接在外部程序使用 cd 是无法起效的, 烦了我好久... >_<

代码比较烂, 如果有高人弄个 C 的版本 Patch 下 Bash 就好了
6086 次点击
所在节点    Linux
28 条回复
humiaozuzu
2012-10-15 10:12:07 +08:00
同用z
brew install z 然后解决所有问题了!
jiyinyiyong
2012-10-15 12:03:55 +08:00
@humiaozuzu z 不就 autojump 一样么..
coderoar
2012-10-15 14:39:25 +08:00
在inputrc添加一行:

# history search
"\C-o": history-search-backward
"\C-j": history-search-forward

这样输入“cd xxx”后就能按快捷键搜索命令历史。
xlaok
2012-10-15 14:44:15 +08:00
@SErHo lz苦逼了+1
jiyinyiyong
2012-10-15 15:07:37 +08:00
@coderoar 我的场景里这个用法不方便. 记下了, 能用在别的地方.

@xlaok 的确. 了+1
ekayxu
2012-10-15 15:25:49 +08:00
zhanglistar
2012-10-19 15:18:10 +08:00
bash里alias搞定直接进入目录的需要。

function cd1() {
if [ -n $1 ]; then
cd $1 && ls
else
cd && ls
fi
}
alias cd='cd1'

进入目录自动显示。也是ok的。
jiyinyiyong
2013-03-09 11:14:41 +08:00
现在回头看有了 Bashmarks 真的轻松多了, 感谢诸位
https://github.com/coffee-js/languages/issues/53

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/49973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX