2013-8-18更新: 感謝hacker news的討論中很多有用的建議,我新增了(1)**的引用,(2)tab補齊的章節,和(3) 給mac os x使用者的注釋。
跟很多人一樣,我在電腦度過一天的大部分時間。為了提高效率(並且不讓我的身體有太多的抱怨)我試著建立乙個優化的環境.例如,我使用vim寫**,使用vimperator瀏覽網頁,使用i3視窗管理器。其他的日常是檔案系統導航(從乙個目錄切換到另乙個目錄——譯者注)。我更喜歡使用命令列來實現,但是一遍又一遍的輸入cd ~/some/very/deep/often-used/directory 變得很麻煩.
像autojump,z,和fasd 通過提供乙個指向你常用資料夾的快捷方式來處理這個問題.就我個人來說,我希望有乙個更加手動的方法,我將這個方法向大家分享。我注意到使用這個方法效率有很大的提高,並且希望你們也能提高效率。
使用符號鏈結跳轉
export markpath=$home/.marks
function jump
function mark
function unmark
function marks
將他們放在你的.zshrc或.bashrc裡你就可以開始跳轉了(mac os x使用者需要乙個稍微有些不同的makes函式版本,請見下方)。我也把這轉換成了乙個叫做jump的oh-my-zsh外掛程式,但是這玩意目前還在pull-request。為了新增乙個新的書籤,cd到目錄然後使用乙個你喜歡的名字標記上它。
$ cd ~/some/very/deep/often-used/directory
$ mark deep
這段文字將在目錄~/.marks中新增乙個叫做deep的符號鏈結。跳轉到這個目錄,在檔案系統中的任何地方輸入以下命令。
$ jump deep
$ unmark deep
你可以通過輸入如下指令來瀏覽所有的標籤
$ marks
deep -> /home/johndoe/some/very/deep/often-used/directory
foo -> /usr/bin/foo/bar
就是這樣了
新增tab補齊
為了給jump和unmark函式新增tab補齊,新增如下**到.zshrc中(感謝tiziano88):
function _completemarks
compctl -k _completemarks jump
compctl -k _completemarks unmark
或者新增如下**到.bashrc中(感謝microcolonel)
_completemarks()
local wordlist=$(find $markpath -type l -printf "%f\n")
compreply=($(compgen -w '$' -- "$curw"))
return 0
}complete -f _completemarks jump unmark
現在如果你輸入jump或者unmark 然後回車,你會看見乙個所有可用的標籤.碉堡了!
給mac os x使用者:
如guygurari指出的,mac os x使用者需要乙個稍微有些不同的makes函式版本:
function marks '
}
如果你喜歡我所講的東西,你可能想在twitter上follow我。
譯者注:
此功能windows下也可以實現。做4個批處理:jump.bat,mark.bat,unmark.bat,marks.bat。每個bat的內容如下:
jump.bat:
@echo off
set markpath=%~dp0.marks
if [%1]== goto err
if not exist "%markpath%/%1" (echo "no such mark: %1") else cd "%markpath%/%1"
:err
echo type a mark, please.
mark.bat
@echo off
set markpath=%~dp0.marks
set tar=%cd%
if not exist %markpath% ( goto makedir )else ( goto makelink )
:makedir
md %markpath%
attrib +h %markpath%
goto makelink
:makelink
cd %markpath%
mklink /j %1 %tar%
cd %tar%
unmark.bat
@echo off
set markpath=%~dp0.marks
rd %markpath%\%1
marks.bat
@echo off
set markpath=%~dp0.marks
echo mark list:
dir /b %markpath%
將4個bat都放在系統環境變數%path%中任意乙個目錄下,或者將bat檔案所在目錄新增進%path%中就行了。因為window在vista/win7在引入這個功能,因此只能在vista/win7以上的系統中使用。還有一點不一樣的是鏈結檔案儲存在bat檔案所在目錄下的.marks隱藏資料夾下,而不是某個系統資料夾,這樣在刪除的時候也不用亂找了。
使用的時候和上述描述一樣,使用如下命令:
跳**jump markname
mark markname
unmark markname
marks
就是marks的功能就沒有那麼強了…
Hadoop 檔案系統命令列基礎詳解
hadoop 命令列最常用指令篇 1.ls list directory usage hadoop fs 程式設計客棧 ls r option r 遞迴顯示 2.mkdir make directory u程式設計客棧sage hadoop fs mkdir p takes path uri s a...
命令列在程式執行中的使用
我們做開發的時候,比如需要呼叫api實現的一些功能,比如殺掉某個程序,獲取當前程序列表 判斷當前有無某個程序 或者註冊服務,或者查詢當前某個埠是否有被占用的時候。大部分都是通過獲取api進行解決,查介面文件比如msdn,或者系統相關的介面看是否有可以實現功能的函式。但是我在這裡講解一下另外一種方法,...
linux用命令列快速切換目錄
和很多人一樣,我也是在電腦前度過一天的大部分時間。為了提高效率 並且不讓我的身體有太多的抱怨 我試著建立乙個優化的環境。例如,我使用vim寫 使用vimperator瀏覽網頁,使用 i3 視窗管理器。其他日常事情就是檔案系統導航 從乙個目錄切換到另乙個目錄 譯者注 我更喜歡使用命令列來,但是一遍又一...