亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 不要讓 cd 命令浪費(fèi)你的時(shí)間 [打印本頁(yè)]

作者: skywind3000    時(shí)間: 2019-02-09 00:16
標(biāo)題: 不要讓 cd 命令浪費(fèi)你的時(shí)間
本帖最后由 skywind3000 于 2019-02-09 00:23 編輯

終端下工作最煩躁的就是路徑切換,沒有自動(dòng)路徑切換的幫助,就像在泥里走路,于是大家發(fā)明了各種 autojump / z / fasd 等工具來(lái)提升路徑切換的效率,今天向大家介紹一個(gè)更好用的工具:z.lua,用熟練了以后就像終端里溜冰,路勁切換從此指哪打哪。

z.lua 是一個(gè)會(huì)學(xué)習(xí)你使用習(xí)慣的 cd 命令,它會(huì)跟蹤你在 shell 下訪問過的路徑,通過一套稱為 Frecent 的機(jī)制(源自 Mozilla),經(jīng)過一段簡(jiǎn)短的學(xué)習(xí)之后,z.lua 會(huì)幫你跳轉(zhuǎn)到所有匹配正則關(guān)鍵字的路徑里 Frecent 值最高的那條路徑去。

正則將按順序進(jìn)行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。

特性說(shuō)明:
軟件安裝:
將下面對(duì)應(yīng)語(yǔ)句添加到你的 .bashrc / .zshrc / .profile 或者對(duì)應(yīng) shell 的初始化腳本末尾:

  1. eval "$(lua /path/to/z.lua --init bash enhanced once echo)"    # BASH 初始化
  2. eval "$(lua /path/to/z.lua --init zsh enhanced once echo)"     # ZSH 初始化
  3. eval "$(lua /path/to/z.lua --init posix enhanced once echo)"   # 其他 Posix Shell 初始化
  4. source (lua /path/to/z.lua --init fish enhanced once echo | psub)  # Fish Shell 初始化
  5. iex ($(lua /path/to/z.lua --init powershell enhanced once echo) -join "`n") # Power Shell 初始化
復(fù)制代碼

然后重新登陸,即可使用。

用戶反饋:
“我喜歡它的原理,我在命令行下面的行為十分有規(guī)律,并且我十分懶惰,懶得管理和維護(hù)一套書簽或者路徑別名!
“總之,z.lua 做到了它所宣稱的目標(biāo)。如果你需要快速的在目錄間切換,它可能是最好的選擇!
”我終于可以在自己的樹莓派1上使用 autojump 類似的功能了,而不用像以前傳統(tǒng) autojump 那樣每次打開終端都要等待 30 秒。”

基本使用:
cd 到一個(gè)包含 foo 的目錄:
  1. z foo
復(fù)制代碼

cd 到一個(gè)以 foo 結(jié)尾的目錄:
  1. z foo$
復(fù)制代碼

對(duì)長(zhǎng)路徑使用多個(gè)關(guān)鍵字進(jìn)行匹配:

假設(shè)路徑歷史數(shù)據(jù)庫(kù)(~/.zlua)中有兩條記錄:
10   /home/user/work/inbox
30   /home/user/mail/inbox

"z in"將會(huì)跳轉(zhuǎn)到 /home/user/mail/inbox 因?yàn)樗懈叩臋?quán)重,同時(shí)你可以傳遞更多參數(shù)給 z.lua 來(lái)更加精確的指明,如 "z w in" 則會(huì)讓你跳到 /home/user/work/inbox。

交互選擇:
使用 -i 參數(shù)進(jìn)行跳轉(zhuǎn)時(shí), 如果有多個(gè)匹配結(jié)果,那么 z.lua 會(huì)給你顯示一個(gè)列表:

$ z -i soft
3: 0.25   /home/data/software
2: 3.75   /home/skywind/tmp/comma/software
1: 21     /home/skywind/software
> {光標(biāo)位置}

然后你按照最前面的序號(hào)輸入你想要去的地方,比如輸入 3 就會(huì)進(jìn)入 /home/data/software。如果你不輸入任何東西直接按回車,那么將會(huì)直接退出而不進(jìn)行任何跳轉(zhuǎn)。
PS:交互選擇同時(shí)支持 "-I" 參數(shù)(大寫 i),讓你可以使用 fzf 在多項(xiàng)結(jié)果進(jìn)行快速選擇(如果系統(tǒng)里面安裝了的話)。

快速回到父目錄:
"-b" 選項(xiàng)可快速回到某一級(jí)父目錄,避免重復(fù)輸入 "cd ../../..",一般把 "z -b" 別名成 "zb" 命令:


使用舉例:

# 一直向上退到項(xiàng)目根目錄(就是里面有一個(gè) .git 目錄的地方)
~/github/lorem/src/public$ zb  
  => cd ~/github/lorem


# cd 到第一個(gè)以 g 開頭的父目錄
~/github/vimium/src/public$ zb g  
  => cd ~/github


# 快速回到 site 目錄
~/github/demo/src/org/main/site/utils/file/reader/whatever$ zb si  
  => cd ~/github/demo/src/org/main/site


# 將 jekyll 替換為 ghost
~/github/jekyll/test$ zb jekyll ghost  
  => cd ~/github/ghost/test

向后跳轉(zhuǎn)同樣也支持環(huán)境變量 $_ZL_ECHO(用來(lái)顯示跳轉(zhuǎn)結(jié)果),這樣為搭配其他工具提供了可能性(并不需要改變當(dāng)前工作目錄):


# 假設(shè)我們位于 ~/github/vim/src/libvterm

# 打開 $_ZL_ECHO 用于在每次跳轉(zhuǎn)后調(diào)用一次 pwd 顯示當(dāng)前目錄
$ _ZL_ECHO=1


# 看看我項(xiàng)目根目錄(有 .git 那個(gè))目錄里有什么?
$ ls -l `zb`  
  => ls -l ~/github/vim


# 檢查 "<項(xiàng)目根目錄>/logs" 下面的日志
$ tail -f `zb`/logs/error.log  
  => tail -f ~/github/vim/logs/error.log


# 查看一下某一級(jí)父目錄里有些啥
$ ls -l `zb git`  
  => ls -l ~/github
Bonus:“zb ..” 相當(dāng)于 “cd ..”,“zb ...” 相當(dāng)于 “cd ../..”,而 “zb ....” 相當(dāng)于 “cd ../../..” 等等。 最后 “zb ..20” 等同于調(diào)用 “cd ..” 二十次。

常用技巧:
推薦一些常用別名,放在你的配置文件中:
alias zc='z -c' # 嚴(yán)格匹配當(dāng)前路徑的子路徑
alias zz='z -i' # 使用交互式選擇模式
alias zf='z -I' # 使用 fzf 對(duì)多個(gè)結(jié)果進(jìn)行選擇
alias zb='z -b' # 快速回到父目錄

z.lua 可以方便的導(dǎo)入 z.sh 的數(shù)據(jù)(他們格式相同):
cat ~/.z >> ~/.zlua

還可以導(dǎo)入 autojump 的數(shù)據(jù):
FN="$HOME/.local/share/autojump/autojump.txt"
awk -F '\t' '{print $2 "|" $1 "|" 0}' $FN >> ~/.zlua

更多內(nèi)容,參考項(xiàng)目文檔:
[color=rgb(49, 148, 20]https://github.com/skywind3000/z.lua








歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2