Shell
空行上的 zsh 製表符完成
我想要一個我找不到的 tcsh’ism:在沒有內容的空白行上,我想按 Tab 鍵並查看相當於 ls 的內容。也就是說我想要
$ <tab>
做一些別的事然後給我一個\t。我找到了用於命令完成的絕佳資源,但不適用於這個基本案例。對此的任何幫助都會很棒!謝謝。
# expand-or-complete-or-list-files function expand-or-complete-or-list-files() { if [[ $#BUFFER == 0 ]]; then BUFFER="ls " CURSOR=3 zle list-choices zle backward-kill-word else zle expand-or-complete fi } zle -N expand-or-complete-or-list-files # bind to tab bindkey '^I' expand-or-complete-or-list-files
行首的行為
Tab
由style控制。但是,只有兩種受支持的行為:insert-tab
- 照常完成,下
zstyle ':completion:*' insert-tab false
- 在下面插入一個標籤
zstyle ':completion:*' insert-tab true
- 下一個或另一個
zstyle ':completion:*' insert-tab pending[=N]
如果你只是想在那個位置完成命令,
zstyle ':completion:*' insert-tab true
就可以了。如果你想要一些不同的東西,比如列出目前目錄中的文件,你需要修改_main_complete
.最近討論了 zsh-workers 列表上的一個執行緒
insert-tab
。