如何仅预览特定扩展名文件?基于预览配置的需求
仅预览TXT/MD文件的实现方案
当然可以实现,你只需要在--preview参数中加入条件判断逻辑,让fzf仅对TXT/MD类型文件调用glow预览,其他文件直接跳过或显示提示即可。
修改后的完整命令
fzf --preview-window='bottom,66%,wrap' --preview ' case "$(echo {} | tr A-Z a-z)" in *.txt|*.md) glow -p -w 109 -s dark {} ;; *) echo "仅支持预览TXT/MD文件" ;; esac '
逻辑说明
- 用
tr A-Z a-z将文件名统一转为小写,避免因扩展名大小写(如.TXT/.Md)导致的匹配遗漏 - 通过
case语句精准匹配.txt/.md后缀的文件,仅对这类文件执行glow预览操作 - 非目标类型文件会显示提示文本,不会触发无意义的视频类文件预览
简洁版写法(if判断)
如果更习惯if语法,也可以用下面的写法:
fzf --preview-window='bottom,66%,wrap' --preview ' ext=$(echo {} | awk -F . "{print \$NF}" | tr A-Z a-z) if [[ $ext == "txt" || $ext == "md" ]]; then glow -p -w 109 -s dark {} else echo "非TXT/MD文件,跳过预览" fi '
如果想完全隐藏非目标文件的预览内容,只需把else分支改成true(无输出)即可。
内容的提问来源于stack exchange,提问作者Faxopita
相关产品推荐
相关产品推荐

