开发工具 在 Github 上 发布了两个小工具. 希望对大家有帮助.

zw963 · 2012年09月10日 · 最后由 aptx4869 回复于 2012年09月18日 · 3833 次阅读

平常为了工作方便,经常会写一些小脚本,对于个人的帮助是非常大的。

在 Github 上 尝试着发布了两个小命令,累呀!E文读还行,写起来,太不给力了。

不常使用 CLI 或者 MAC 下的用户可能帮助不大,因为肯定有大量的图形界面工具干类似的事情,但是如果像我一样是个 CLI 控 的话,就觉得很有用了。


https://github.com/zw963/gsub

是个命令行下的文件内容实时替换命令。实现比较简单,但是具有很大的灵活性,还配套了几个非常有用的管道命令。详细说明,看文件内 README.既然是在 CLI 下直接用,那就是常常用来替换一些简单的字符,很是方便,如果打算替换大段的,或者复杂的,还是用编辑器自带的批量替换功能吧。

gsub "*.txt" "god" "dog"

https://github.com/zw963/filename-finder

是一个方便的文件查找`引擎' (汗颜,请容许我用引擎这个字眼,其实都没超过 20 行代码). 我大量使用这个引擎,包括我的编辑器,cp 命令,mv 命令,ln 命令,等等。当然你需要自己做一些简单的修改 (如果你懂简单的 shell script 的话), 使用这个小命令就是为了方便,不用打一长串名字。

典型的:201223230343034043034_new_project.rb, 只需要 e proj , 就可以使用 e 打开它. 而这个 e , 你就可以用 这个引擎 + 具体的命令 来实现。

有空,我会再整理整理,发布一些。希望大家多多支持。

为啥自己写个 gsub 而不用 sed ?

#1 楼 @bhuztez

啊?sed 可以实时替换么?

我以为 sed 只可以将替换后结果输出到标准输出 ?

正好给讲下,怎么实时替换 ??

#3 楼 @doitian

哈。说了半天,Ruby 是模仿 sed , 刚刚看了下 man, 连使用方式都一样...

#4 楼 @zw963 错了,是模仿 perl。 man perlrun能看到perloptions

find -name '*.txt' | perl -i -p -e 's/dog/cat/ig'

#5 楼 @doitian

嗯,很明显 perl 是模仿 sed. 哈哈

刚刚看了半天,觉得还是不改了,改成 sed 实现,要么就得自己写 s#...#...#g, 要么就只能用正则表达式,不方便,还是 Ruby 比较爽。

选了 awk,学 sed 没动力了。 sed 和 vim 好像师出同门。。

#7 楼 @feitian124 vim 的 ex 源自 ed, sed 看名字就知道了

话说,第二个功能,你肯定没在用 zsh 吧……

#9 楼 @aptx4869

当然没用了。

請指教。不妨介绍下,长长见识。

#10 楼 @zw963 比如你这个例子 要我编辑 201223230343034043034_new_project.rb 只要输入 v n_p<tab> 就能自动补全了

oh-my-zsh 作为一个配置文件类项目,能够在 GitHub 的配置类项目中受欢迎程度排名第一(6,728stargazers,甚至超过了 linux kenel 的 6,294 stargazers,where as Django,4,145 stargazers),显然有人们喜欢他的理由……

话说俺刚从 bash 转过去用 zsh,玩了半个小时之后只有一个想法:白活了……

#11 楼 @aptx4869

哦。有趣。不过实在没心思折腾了。因为我觉得 bash 已经够方便了。基本上常用的小工具,我自己已经折腾了很多了,如果换 zsh, 不是还得重新折腾。(如果有些小细节不符合自己的习惯的话)

#12 楼 @zw963 那啥,我看了你.bashrc 里面的东西好像也没折腾多少啊……

#13 楼 @aptx4869

那个.bashrc 是以前的。我现在没用 github, 用的 bitbucket.

现在那些脚本我都单独提取出来做成小文件了。彼此之间管道非常方便。

不过我折腾的肯定没有 my-zsh 那么多了。而且我折腾的比较初级,大部分都是方便的 wrapper. 或者对于一堆工具的堆切。目的就是为了达到好用,符合自己的习惯,解决特定的需求。并且熟悉这些工具。

#13 楼 @aptx4869

你看这个就是一个例子,我并没有写死,而是通过几个命令实现,然后彼此管道。我现在基本上命令都是这么玩的。以前一堆全放倒 .bashrc 里面,现在想想非常难用,因为你没办法彼此之间建立关联,就像代码之中的重构一样,只有提取成小方法,才有可能精简代码,现在我每个小命令基本上都是一两行。但是很有用。而且因为彼此调用,挺 DRY 的。哈~

#14 楼 @zw963 这样就更没理由不试一试了,脚本开头有 shebang 的话根本不会改变功能,不会影响脚本使用,管道组合什么的,原来怎么用就怎么用, .bash_alias 的话还是一样直接
source ~/.bash_aliases 转换几乎是 0 成本的 然后 zsh 光一个智能补全功能就能秒杀 bash 了 v g<Tab> 就能编辑 Gemfile, v g.l<Tab>就是 Gemfile.lock bash 就得 v <shift>g<Tab>v <shift>g<Tab>.<Tab> 这还是没其他文件名冲突的,否则更烦,zsh 只要一直选就可以了 键击次数拼均下来真得省一半左右

需要 登录 后方可回复, 如果你还没有账号请 注册新账号