天下武功唯快不破,命令行虽然很多时候很快,但是整体的cd,ls,cd,ls也是让人心烦。之前使用了autojump,可以通过关键字跳转到最频繁操作的目录中,快!今天介绍的fasd,除了可以像autojump一样在目录中跳转,还可以通过关键字打开最频繁操作的文件,更快!!

安装

CentOS的默认软件仓库中没有fasd,需要添加opensuse的软件仓库才可以

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/utilities/CentOS_6/utilities.repo
yum install fasd

mac中直接使用brew安装即可:

brew install fasd

也可以通过源码安装:

git clone https://github.com/clvv/fasd.git
make install

安装后,需要在shell的rc文件中添加fasd的初始化命令

echo 'eval "$(fasd --init auto)"' >> ~/.bashrc
source ~/.bashrc

基本使用

fasd的基本原理和autojump一样,在内部维护一个表,记录着最近操作的每个文件/目录的路径,以及他们的权重。这个权重会随着你操作这个目录的次数而增加,所以在使用关键字匹配路径时,最常用的路径就会被选中。

fasd初始化命令会定义一些默认别名

alias a='fasd -a'        # any
alias s='fasd -si'       # show / search / select
alias d='fasd -d'        # directory
alias f='fasd -f'        # file
alias sd='fasd -sid'     # interactive directory selection
alias sf='fasd -sif'     # interactive file selection
alias z='fasd_cd -d'     # cd, same functionality as j in autojump
alias zz='fasd_cd -d -i' # cd with interactive selection

这些别名可以这样使用

a foo 列出最近操作的路径匹配'foo'的文件与目录
f foo 列出最近操作的路径匹配'foo'的文件
d foo 列出最近操作的路径匹配'foo'的目录
s foo 列出最近操作的路径匹配'foo'的文件与目录,并可以通过序号选择
sf foo 列出最近操作的路径匹配'foo'的文件,并可以通过序号选择
sd foo 列出最近操作的路径匹配'foo'的目录,并可以通过序号选择
z foo cd到最近操作的匹配'foo'并且得分最高的目录
zz foo 列出最近操作的路径匹配'foo'的目录,通过序号选择,然后cd进目录

除了zzz带有cd的效果,其他的命令都是列出对应的目录而已,需要配合其他命令使用,比如像这样:

vim `sf vimrc`  => vim ~/.vimrc

对于这种场景,fasd提供了-e参数可以指定使用什么编辑器操作选定的路径

$ sf -e vim rc
2   12         /home/vagrant/.bashrc
1   23.0068    /home/vagrant/.vimrc
> 按1即可用vim打开vimrc

所以可以添加一个别名用于快速使用vim打开文件:

alias v='f -e vim'

定制

我以前使用的是autojump,习惯使用j来跳转目录,j也的确比z好按得多。所以:

alias j='z'
alias jj='zz'

autojump会在跳转前显示要跳转目录的全路径,我觉得这个很有用,可以用来确定是否跳转正确了,而fasd不会显示,所以需要修改一下他的脚本,找到fasd_cd的定义:

fasd_cd() {if [ \$# -le 1 ]; thenfasd "\$@"elselocal _fasd_ret="\$(fasd -e 'printf %s' "\$@")"[ -z "\$_fasd_ret" ] && return[ -d "\$_fasd_ret" ] && cd "\$_fasd_ret" || printf %s\\n "\$_fasd_ret"fi}

[ -d "\$_fasd_ret" ] && cd "\$_fasd_ret" || printf %s\\n "\$_fasd_ret"

修改为

[ -d "\$_fasd_ret" ] && printf %s\\\\n "\$_fasd_ret" && cd "\$_fasd_ret"

不过修改源文件不太好,所以我们可以在自己的rc文件中覆盖这个函数,最后我的rc文件中对应的配置为:

eval "$(fasd --init auto)"fasd_cd (){if [ $# -le 1 ]; thenfasd "$@";elselocal _fasd_ret="$(fasd -e 'printf %s' "$@")";[ -z "$_fasd_ret" ] && return;[ -d "$_fasd_ret" ] && printf %s\\n "$_fasd_ret" && cd "$_fasd_ret";fi}alias j='z'alias jj='zz'alias v='f -e vim'

参考连接:

  • clvv/fasd
  • software.opensuse.org: 安装软件包 utilities / fasd
  • Installing via Package Managers · clvv/fasd Wiki

命令行快速跳转/编辑神器fasd相关推荐

  1. linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客

    今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...

  2. linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...

    Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...

  3. linux 权限提示信息,命令行快速提示:权限进阶 | Linux 中国

    原标题:命令行快速提示:权限进阶 | Linux 中国 本部分介绍使用权限管理文件访问和共享的其他方法. -- Paul W. Frields 前一篇文章.本部分介绍使用权限管理文件访问和共享的其他方 ...

  4. 命令行快速删除当前行_在命令行中快速有效地工作

    命令行快速删除当前行 There are a lot of command line tips and trics in the internet. Most of them discribe the ...

  5. 给右键菜单加入CMD命令行快速通道(适合win7)

    给右键菜单加入CMD命令行快速通道(适合win7) 博客分类: Windows知识 PHPWindows  原文地址:http://www.unxmail.com/read.php?51   很多人都 ...

  6. 命令行快速开启应用程序

    命令行快速开启应用程序 #前言,如果想快速看完这篇文章可以只关注粗体的文字 背景: ​ 在工作的时候,每天上班第一件事就是打开昨日的各种应用.一趟下来光是打开各种应用,Redis数据库(windows ...

  7. [TIP]命令行快速查看图片(Ubuntu)

    <?xml version="1.0" encoding="utf-8"?> [TIP]命令行快速查看图片(Ubuntu) [TIP]命令行快速查看 ...

  8. linux输入过的命令行,LINUX中命令行的历史记录和编辑

    前的Linux发行版默认使用Bash Shell,它已成为Linux系统的实际标准.Bash Shell命令行具有非常强大的功能.Bash Shell提供了一些特性使输入命令变得容易. 1.命令行的历 ...

  9. 用Linux命令行修图——缩放、编辑、转换格式——一切皆有可能

    本文由 极客范 - 八卦爱好者 翻译自 How-To Geek.欢迎加入极客翻译小组,同我们一道翻译与分享.转载请参见文章末尾处的要求. ImageMagick是一系列的用于修改.加工图像的命令行工具 ...

最新文章

  1. AD上删除了Exchange容器,再重装时报'找不到企业组织容器
  2. Java并发编程:线程封闭和ThreadLocal详解
  3. centos7怎么安装中文环境支持包
  4. lnmp搭建的常见错误
  5. dbscan论文_论文分享 :Linkage Based Face Clustering via GCN
  6. mybatis嵌套查询和嵌套结果有什么区别_Java面试专题之九:Mybatis面试5个大概率被问到的问题...
  7. 【Spring】使用Spring和AMQP发送接收消息(下)
  8. 【转】SharePoint 术语表
  9. Linux 五种IO模型
  10. 关于spring的事务管理(单数据库):纯属猜测。
  11. GO SMS Pro App 被曝0day,泄露数百万条媒体消息
  12. python测试系列教程——python+Selenium+chrome自动化测试框架
  13. 推荐系统-Task04前后端基础及交互
  14. 2016 Google中国开发者大会游记
  15. Linux开放mysql权限给任意主机远程登陆
  16. springmvc源码-我们自定义的参数解析器是如何放入到spring容器中的
  17. 2016年最新J2EE基础入门教程目录(完结版)
  18. jQuery distpicker省市区三级联动
  19. 无锡工艺技术计算机信息管理论文,无锡工艺职业技术学院05/06学年第一学期.doc...
  20. Matlab中神经网络工具箱性能指标(R系数、均方误差、误差直方图)图的含义

热门文章

  1. “双碳政策”下关于数据中心网络可视化管理的一些思考
  2. 趣头条发行区间7至9美元 预计9月14日美国上市
  3. 高龄白菜java学习第103天(java数据结构和算法(21))
  4. unity 优化大全
  5. 嵌入式实践——烟雾产生器
  6. 错误解决:process_begin: CreateProcess 系统找不到指定的文件
  7. 阿里巴巴开发手册总结
  8. ubuntu环境下U盘的挂载和卸载
  9. 融资融券”(securitiesnbsp;margi…
  10. python自动化测试的意义_自动化测试的成本高效果差,那么自动化测试的意义在哪呢...