在鱼壳中,当您按下Alt+l
它时,它会ls
很好地显示命令的输出。它会保留您按下之前正在编写的命令。我想在 zsh 中有这个。
这是我非常不稳定的尝试:
function myls {
awk '{len = length($0); for(i=0;i<len;i++) printf "\b"}' <<< "$LBUFFER"
zle push-input
zle accept-line
print $(ls --color=always --indicator-style=slash)
}
zle -N myls
bindkey -- '^[l' myls
Run Code Online (Sandbox Code Playgroud)
我努力清除现有命令,最终使用了 hacky\b
的。它不能在长行和多行上正常工作。
谁能做得更好?
使用zle -R
后push-input
重新显示行没有缓冲。
在大多数情况下,我发现 zsh 的完成列表不需要小部件来运行 ls。它处理 ls 样式颜色和文件类型后缀。我有以下绑定,它在任何上下文中完成文件并ls -l
列出一个很长的样式列表:
zstyle ":completion:file-complete::::" completer _files
zle -C file-complete complete-word _generic
zstyle ':completion:file-complete:*' file-list true
bindkey '^X^F' file-complete
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
141 次 |
最近记录: |