填写当前目录下最近使用的文件

Fill in the latest used file in the current directory

我正在寻找一种在命令行上快速访问最新 file/directory 的方法,最好是在 ZSH 中。

ls -d *(om[1])

给我这个,如果我想用一个命令,例如少 *(om[1])

这也有效。

然而,输入所有括号是乏味的,我经常使用这个 - 因此我正在寻找一种方法来为这个字符串创建快捷方式。

我在 .zshrc 文件中创建了一个函数

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

,我可以这样使用:

less <$(lf)
less <`lf`

,但我觉得还是不太理想。

less |lf

无效。

有没有不用"hard to type characters"就能快速访问最新文件的方法?理想情况下,它只是类似于

less LATEST

有什么想法吗?

你想要一个 zsh global alias

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

您可以使用 _most_recent_file (^Xm).

_most_recent_file (^Xm)

Complete the name of the most recently modified file matching the pattern on the command line (which may be blank). If given a numeric argument N, complete the Nth most recently modified file. Note the completion, if any, is always unique.

-- zshcompsys(1) BINDABLE COMMANDS

因此,我们可以通过键入 CTRL-x-m 来获取最新的文件。例如:

% 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