在此之前我得先說明一下自己使用的鍵盤佈局並不是大家常用的QWERTY鍵,而是會考慮人機工竹學的Dvorak鍵。
我轉用Dvorak鍵己是兩年前的事了,當時我QWERTY打字的速度還不算慢,決定的時候很痛苦呢。(要割捨已有的習慣重新學習,需要一定勇氣吧。)
記得那時我編程編了大概三個小時後手指就會開始酸痛了。
我覺得長久以來這麼痛不是辦法,於是我Google了這個問題,發現QWETY鍵在人機工學上跟本不科學,五指的用量並不平均,寫文章手指得經常向奇怪的地方伸延。
這就是我接獨Dvorak的開端。
嘛,回到正題,這兩個script的出發點也是從我手指酸痛開始的。
go
使用terminal,說到最常按的鍵,除了空白鍵之外就是「Tab」了。
這就是第一個script「go」的延生。
其實主要目的是減少不停按「Tab」的問題,例如「 cd /etc/apache/sites-available 」就裏我可能按了6次Tab了。(輸入順序為「cd /e > Tab > apa > Tab > site > Tab > Tab > -av > Tab > Enter」)
~$ go
Usage: go [MODE] SITE TARGET_DIR
go <up|down> [MODE] TARGET_DIR
go是一個比較繁複的工具,它會從 ~/.go_conf 這個設定檔來決定你想到那裏。也就是說,你需要在~/.go_conf設定好幾個你常到的地方,這樣可以加快command的搜㝷速度。
在「go [MODE] SITE [SEARCH_DIR]」裏面,SITE就是 .go_conf 設定好的位置,而SEARCH_DIR就是在SITE之下吻合的地方
不過這個command不太常用,但如果你像我一樣會經常在不同的地方來來去去,這個東西是後方便的。
而「go <up|down> [MODE] TARGET [SEARCH_DIR]」是比較常用的一個,下例:
~/this/is/my/awesome/directory $ go up awe
~/this/is/my/awesome $ go up this
~/this $ go down dir
~/this/is/my/awesome/directory $
這樣應該簡易懂吧,go up/down 是基於現在位置,尋找最適當的落腳點「TARGET」,
pivot
pivot的出發點是因為go尚有不足之處——不可能每個地方都記在~/.go_conf之上。通常在某個地方我都會做一些短距離移動,例如「cd ../abc」或者「cd ../../abc/」,而這些「cd ../」的數量也不容小覻。
其實我們常打的指令「cd」也很常用。而「../」也經常會跟在「cd」後頭,這「../」有夠可惡的,極端的話可能會「cd ../../../../../」,就這麼打著打著,手指又要不行了。
忍無可忍,於是又作了一個script。
當然也考慮到處理的速度,若果每次cd都要等一秒鐘,我的時間感大概會慢慢變得不正常。cd的速度是最快的,不可能超越,但只要我感覺不到很大分別就可以了。
下例:
~/this/is/my/awesome/directory $ pvt
Usage: pvt [MODE] PIVOT_DIR LAND_DIR
~/this/is/my/awesome/directory $ pvt awe sec
~/this/is/my/secret/directory $ pvt my bob
~/this/is/bobs/secret/directory $ pvt dir col
~/this/is/bobs/secret/collection $
我叫這個動作為「支點移動」,以PIVOT_DIR作為支點目錄,跳到目標之下的相同位置。
啊,忘了說「MODE」了,MODE有三種,分別為p/c/e,c就是使用cd 來執行目標地址,e是echo,而p就是pushd。
e mode可以用來複製或者移動檔案:
~/ $ cp $( go e blog img )/logo.png ./
p mode可以記下上一個位置:
~ $ go p blog img
~/projects/blog/assets/img ~
~/projects/blog/assets/img $ p
~ ~/projects/blog/assets/img
~ $
我自己會將記目錄的三個指令alias下來,分別為:
p=pushd
o=popd
d=`dirs -v`
c mode是默認模式,可以省略。
下載:
斟酌 鵬兄
Sun Jan 18 2015 04:52:11 GMT+0000 (Coordinated Universal Time)
Last modified: Sun Apr 10 2022 13:08:37 GMT+0000 (Coordinated Universal Time)