命令行快速跳转/编辑神器fasd

命令行快速跳转/编辑神器fasd天下武功唯快不破 命令行虽然很多时候很快 但是 整体的 cd ls cd ls 也是让人心烦 之前使用了 autojump 可以通过关键字跳转到最频繁操作的目录中 快 今天介绍的 fasd 除了可以像 autojump 一样在目录中跳转 还可以通过关键字打开最频繁操作的文件 更快 安装 CentOS 的默认软件仓库中没有 fasd 需要添加 opensuse 的软件仓库才可以 cd etc yum repos d

天下武功唯快不破,命令行虽然很多时候很快,但是整体的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 ]; then fasd "\$@" else local _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 ]; then fasd "$@"; else local _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'

参考连接:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204405.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午8:22
下一篇 2026年3月19日 下午8:22


相关推荐

  • js中map遍历数组对象_js遍历数组

    js中map遍历数组对象_js遍历数组forEach()和map()都是遍历数组的方法,用法类似,但是还是有很大区别:相同点:      1.都是循环遍历数组中的每一项;      2.在遍历中执行匿名函数都可以接收三个参数,分别为:遍历过程的每一项、遍历序号(索引值)、原数组;      3.执行的匿名函数中的this都指向window。  不同点:      map():      根据遍历执行的匿名函数,对于原数…

    2025年11月10日
    8
  • 加密Excel解密

    加密Excel解密excel文件进行加密,能够保护excel文件的内容,但是有时候我们自己设置的密码,时间久了可能会忘记,或者在网上下载的excel文件或者同事之间转发的excel文件也有加密,这对于我们来说都不是很方便了。想要解密excel文件的加密,需要用到奥凯丰EXCEL解密大师excel加密有两种,它们的解密方法也是不一样的。激活成功教程打开密码,激活成功教程它的方法目前只有通过软件找到正确密码才能进行解密,所以点击进入【找回密码】,选择一种找回方法进行激活成功教程(如果对自己设置的密码还有一些印象,可以使用组合破击..

    2022年6月28日
    45
  • Idea激活码最新教程2023.2.3版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2023.2.3版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2023 2 3 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2023 2 3 成功激活

    2025年5月27日
    5
  • 安卓强制恢复出厂recovery无命令_在recovery模式下无法恢复出厂设置

    安卓强制恢复出厂recovery无命令_在recovery模式下无法恢复出厂设置有时候我们在系统正常运行的时候,突然跑到recovery里面了,并且停在了如下界面:Can'tloadAndroidsystem.Yourdatamaybecorrupt.

    2022年8月5日
    80
  • Hue搭建

    Hue搭建Hue 概述 Hue 是开源的 ApacheHadoop 系统 HUE HadoopUserEx 最早是由 ClouderaDesk 演化而来 由 Cloudera 贡献给开源社区 它是基于 PythonWeb 框架 Django 实现的 通过使用 Hue 我们可以在浏览器端的 Web 控制台上与 Hadoop 集群进行交互来分析处理数据 例如操作 HDFS 上的数据 运行 MapReduceJob 等等 Hue 所支持的功能特性集合 1 认基于轻量级 sqlite 数据库管理会话数据 用户认证和授权 可以自定义更改

    2026年3月19日
    2
  • pycharm不支持32位系统怎么办_pycharm不支持32位系统吗

    pycharm不支持32位系统怎么办_pycharm不支持32位系统吗在32位操作系统中安装pycharm过程中发现的一些问题首先是下载了最新版本的pycharm安装后打开,弹出未发现可执行的文件,然后想到了其他的办法1、下载最新版本的pycharm不能直接运行,因此可以下载之前版本的pycharm,这里选择了2017.3版本的window版本下载并安装到自定义的目录,需要注意的是在安装的过程中,有一项需要勾选,添加到桌面32位安装好之后,双…

    2022年8月25日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号