[英]zsh issue : have the most recents files and directories near to the prompt and suggested most recent files or directories
在 MacOS Big Sur 11.3 上,這是我的.zshrc
。 我想在提示符附近獲取最新修改或創建的文件和目錄(從最新到最舊的排序)。 這是我在~/.zshrc
中的當前配置:
# ZSH completion
autoload -Uz compinit
compinit
# Colorize completions using default `ls` colors.
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
# Zsh reverse auto-completion
zmodload zsh/complist
bindkey '^[[Z' reverse-menu-complete
# To get new binaries into PATH
zstyle ':completion:*' rehash true
zstyle ':completion:*:complete:(ls):*' file-sort date reverse
zstyle ':completion:*:complete:(cd):*' file-sort date reverse
zstyle ':completion:*:complete:(cp):*' file-sort date reverse
zstyle ':completion:*:complete:(mv):*' file-sort date reverse
# Variables not very well known
# Disable prompt disappearing on multi-lines
export COMPLETION_WAITING_DOTS="false"
問題是當我在實際上是別名的“l”之后按 TAB 時:
alias l='grc -es --colour=auto ls --color -Gh -C -lrt'
grc
是一個為文件着色的工具。
事實上,我沒有將建議的最近修改或創建的文件或目錄作為第一個結果。
在按 TAB 鍵這些最近的(修改或創建)文件或目錄后,我可以在zsh completion
中添加哪個選項以獲得第一個結果?
應用的第一個命令是“ l
”,它對應於別名:
alias l='grc -es --colour=auto ls --color -Gh -C -lrt'
l
”,當我觸摸 TAB(自動)完成時,我想要最近修改的文件作為建議,靠近我執行“ l
” + TAB 完成的提示。 . 例如,當輸入一個簡單的“ l
”命令(見上面的別名)時,下圖:
主要目標:這篇文章最重要的目標:如果我輸入“l+TAB+TAB”,我希望最近的文件/目錄首先作為建議出現:在我的情況下,這個命令之后的第一個建議是filename2
,在第二個“ TAB
”后建議dir_1
和第三個建議dir_8
等(參見簡單命令“ l
”的順序)。
l+TAB
”,我會得到: 在選項中,當我執行“ l+TAB
”但我不知道在~/.zshrc
。 這不是優先事項。
更新 1:我幾乎找到了在"l" alias
之后typing twice on TAB key
的解決方案,該別名可以被吸收為ls -lrt
。 這里是 peudo 魔術命令:
bindkey '\t' reverse-menu-complete
但問題是,使用此選項時,當我第一次按下TAB
時,會自動使用最新的文件或目錄完成建議。
示例:我如果這樣做: $ l +TAB
,我會在上面捕獲以下內容:
我想得到的是當我在 TAB 上第二次輸入時獲得最新的文件建議,而不是在我第二次輸入時獲得最新的文件建議。
更新2:我接近最終想要的行為。 我設置:
zstyle ':completion:*:complete:(ls|cd|cp|mv|vim|cat|more|tail|head|open):*' file-sort date reverse
bindkey '^\t' reverse-menu-complete
bindkey '^[[Z' menu-complete
如果我執行第一個l + TAB
,我會首先自動添加正確的最新文件,然后第二個TAB
推送建議從最新到最舊的文件(反向排序)。
它只是缺少修改l + TAB
必須不添加建議文件,只需列出從最舊到最新的所有文件,然后在第二個TAB
之后,首先使用^[[Z' menu-complete
建議較舊的最新文件^[[Z' menu-complete
。
要完成任何命令的文件/目錄(除非被不同的完成覆蓋),按修改日期(從最近到舊)排序,作為詳細列表 -
~/.zshrc
:autoload -Uz compinit
compinit
zmodload zsh/complist
zstyle ':completion:*' file-list all
zstyle ':completion:*' file-sort date
重新加載 zsh 配置文件 - 在現有終端 session 上運行source ~/.zshrc
.zshrc 或打開新終端 session 以使更改生效
觸發詳細列表完成 - 在點擊TAB
之前 - 在命令之后點擊空格。 例如l<space><TAB>
。
繼續按TAB
到 select
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.