命令列快速跳轉 編輯神器fasd

2021-07-08 10:50:27 字數 2586 閱讀 3918

天下武功唯快不破,命令列雖然很多時候很快,但是整體的cd,ls,cd,ls也是讓人心煩。之前使用了autojump,可以通過關鍵字跳轉到最頻繁操作的目錄中,快!今天介紹的fasd,除了可以像autojump一樣在目錄中跳轉,還可以通過關鍵字開啟最頻繁操作的檔案,更快!!

centos的預設軟體倉庫中沒有fasd,需要新增opensuse的軟體倉庫才可以

cd /etc/yum.repos.d/

wget

yum install fasd

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

brew install fasd
也可以通過原始碼安裝:

git clone 

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()

[ -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

() alias j='z'

alias jj='zz'

alias v='f -e vim'

快速編輯shell命令列

四 游標跳轉快捷鍵 為了方便大家記憶,加點英語助記語在後面 ctrl a 跳轉至命令列首 ahead of line ctrl e 跳轉至命令行尾 end of line ctrl f 向前跳轉乙個字元 jump forward one character ctrl b 向後跳轉乙個字元 jump ...

快速編輯 Shell 命令列

前言 快速編輯 shell 命令列 想起聽得最多的就是 nux 的初學者說最煩就是 linux unix 的命令列,所以就有了這個題目。如果你是個性急的人可以先嘗試下文章結尾的綜合練習體會一下 shell 的快捷鍵,也許這樣再看全文會更有趣。其實,命令列適應了,可能比圖形介面更有效率。至少對我來說是...

快速編輯 Shell 命令列

快速編輯 shell 命令列 前言快速編輯 shell 命令列 想起聽得最多的就是 nux 的初學者說最煩就是 linux unix 的命令列,所以就有了這個題目。如果你是個性急的人可以先嘗試下文章結尾的綜合練習體會一下 shell 的快捷鍵,也許這樣再看全文會更有趣。其實,命令列適應了,可能比圖形...