这虽然有点天壤之别,但是我已经学会了不要对任何东西的能力做出假设,因为我经常被隐藏在UNIX / Linux工具中的隐藏function惊呆了。
我经常发现自己正在运行命令,我需要在系统上find一个文件,然后一旦我把眼光放在了理智的位置上,我就需要做一些事情。
以此工作stream程为例:
$ which foo.sh /path/to/something/foo.sh $ vim `which foo.sh`
第二个命令需要我整整1-2秒才能input。 这是疯狂的。 我经常这样做,开始觉得自己应该能够分解出样板。
我所喜欢的是幻想的贝壳魔法,可以让我做到以下几点:
$ which foo.sh /path/to/something/foo.sh $ which foo.sh |! vim
这第二个例子是远远优于IMO。 我觉得在向上箭头后input“|!vim”要比寻找这一行的开头容易得多,键入vim反向,然后寻找行结束并input最后的反引号。
想象一下,pipe爆炸操作符做了类似于“| xargs,vim”的操作,但是保留了vim的terminal,而且键入的东西更短。 pipe-bang当然是bash中的一个语法错误,它不能被别名,所以我想做的事似乎是不可能的。
还是呢? 我怀疑这是TMTOWTDI的情况,但是我有一个心理障碍。
它不一定是从字面上来看,但是接近的是目标。
这也应该工作:
其中foo.sh | xargs vim
我经常做同样的事情(通常用它来查找二进制文件,然后用rpm -qf来查看哪个软件包提供了它)! 我的路线比你所做的要好,但比你想要的慢; 我把它作为一个中途的房子提供。
$ which foo.sh /path/to/something/foo.sh $ vim `!!`
在大多数键盘上,反向键和1键也非常接近,所以键入的速度相当快。
试试这个(vim p vious):
$ alias vp='vim $(fc -s)' $ which foo.sh $ vp
fc -s用一个replace重新执行前面的命令(在这种情况下为null)。
你可以把别名放在~/.bashrc文件中。 我有我的~/.bashrc来源的aliases文件。