2015-02-06 63 views
12

我正在尋找一種方法來快速訪問命令行上的最新文件/目錄,最好在ZSH中。填寫當前目錄中最新使用的文件

ls -d *(om[1]) 

給我這個,如果我想用一個命令,例如, less *(om [1])

這也適用。

但是,輸入所有括號非常繁瑣,我使用這個很多 - 因此我正在尋找一種方法來創建此字符串的快捷方式。

我創建的.zshrc文件

lf(){ 
ls -d *(om[1]) 
} 

的功能,我可以使用這樣的:

less <$(lf) 
less <`lf` 

,但我覺得這不是理想的還是少。

less |lf 

不起作用。

有沒有辦法在不使用「難以輸入字符」的情況下快速訪問最新文件?理想情況下,它只是沿線

less LATEST 

任何想法?

回答

9

你想要的zsh global alias

alias -g latest='*(om[1])' 
less latest 
14

你可以使用_most_recent_file (^Xm)

_most_recent_file(^ XM)

完成最近修改的文件相匹配的命令行上的圖案(它可以是空白的)的名稱。如果給定數字參數N,則完成最近修改的第N個文件。請注意,完成(如果有的話)始終是唯一的。

- - zshcompsys(1) BINDABLE COMMANDS

因此,我們可以用打字CTRL-X獲得最新的文件。例如:

% less ;# typing `CTRL-X m` here, we could get: 
% less newest-file-or-directory 

而且我們可以在這裏指定一些模式,因此,例如:

% less *.log ;# when I want the newest *.log: 
% less newest.log 

它必須有在~/.zshrc一些autoload -Uz compinit; compinit雖然。

+1

非常好的解決方案 - 我沒有意識到這一點。我會考慮相同的答案,但格倫首先回答,所以我會接受他的答案。 – Gerhard 2015-02-09 12:40:03

相關問題