命令行快速跳转/编辑神器fasd
天下武功唯快不破,命令行虽然很多时候很快,但是整体的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进目录
除了z
和zz
带有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相关推荐
- linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客
今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...
- linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...
Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...
- linux 权限提示信息,命令行快速提示:权限进阶 | Linux 中国
原标题:命令行快速提示:权限进阶 | Linux 中国 本部分介绍使用权限管理文件访问和共享的其他方法. -- Paul W. Frields 前一篇文章.本部分介绍使用权限管理文件访问和共享的其他方 ...
- 命令行快速删除当前行_在命令行中快速有效地工作
命令行快速删除当前行 There are a lot of command line tips and trics in the internet. Most of them discribe the ...
- 给右键菜单加入CMD命令行快速通道(适合win7)
给右键菜单加入CMD命令行快速通道(适合win7) 博客分类: Windows知识 PHPWindows 原文地址:http://www.unxmail.com/read.php?51 很多人都 ...
- 命令行快速开启应用程序
命令行快速开启应用程序 #前言,如果想快速看完这篇文章可以只关注粗体的文字 背景: 在工作的时候,每天上班第一件事就是打开昨日的各种应用.一趟下来光是打开各种应用,Redis数据库(windows ...
- [TIP]命令行快速查看图片(Ubuntu)
<?xml version="1.0" encoding="utf-8"?> [TIP]命令行快速查看图片(Ubuntu) [TIP]命令行快速查看 ...
- linux输入过的命令行,LINUX中命令行的历史记录和编辑
前的Linux发行版默认使用Bash Shell,它已成为Linux系统的实际标准.Bash Shell命令行具有非常强大的功能.Bash Shell提供了一些特性使输入命令变得容易. 1.命令行的历 ...
- 用Linux命令行修图——缩放、编辑、转换格式——一切皆有可能
本文由 极客范 - 八卦爱好者 翻译自 How-To Geek.欢迎加入极客翻译小组,同我们一道翻译与分享.转载请参见文章末尾处的要求. ImageMagick是一系列的用于修改.加工图像的命令行工具 ...
最新文章
- AD上删除了Exchange容器,再重装时报'找不到企业组织容器
- Java并发编程:线程封闭和ThreadLocal详解
- centos7怎么安装中文环境支持包
- lnmp搭建的常见错误
- dbscan论文_论文分享 :Linkage Based Face Clustering via GCN
- mybatis嵌套查询和嵌套结果有什么区别_Java面试专题之九:Mybatis面试5个大概率被问到的问题...
- 【Spring】使用Spring和AMQP发送接收消息(下)
- 【转】SharePoint 术语表
- Linux 五种IO模型
- 关于spring的事务管理(单数据库):纯属猜测。
- GO SMS Pro App 被曝0day,泄露数百万条媒体消息
- python测试系列教程——python+Selenium+chrome自动化测试框架
- 推荐系统-Task04前后端基础及交互
- 2016 Google中国开发者大会游记
- Linux开放mysql权限给任意主机远程登陆
- springmvc源码-我们自定义的参数解析器是如何放入到spring容器中的
- 2016年最新J2EE基础入门教程目录(完结版)
- jQuery distpicker省市区三级联动
- 无锡工艺技术计算机信息管理论文,无锡工艺职业技术学院05/06学年第一学期.doc...
- Matlab中神经网络工具箱性能指标(R系数、均方误差、误差直方图)图的含义
热门文章
- “双碳政策”下关于数据中心网络可视化管理的一些思考
- 趣头条发行区间7至9美元 预计9月14日美国上市
- 高龄白菜java学习第103天(java数据结构和算法(21))
- unity 优化大全
- 嵌入式实践——烟雾产生器
- 错误解决:process_begin: CreateProcess 系统找不到指定的文件
- 阿里巴巴开发手册总结
- ubuntu环境下U盘的挂载和卸载
- 融资融券”(securitiesnbsp;margi…
- python自动化测试的意义_自动化测试的成本高效果差,那么自动化测试的意义在哪呢...