在 rofi 中创建一个菜单,以选择文件。
在 rofi 中创建一个菜单,以选择文件。
目前,我正在使用以下脚本来实现一个搜索栏,用于打开我的笔记:\n
#! /bin/sh cd ~/UniNotes chosen=$(printf '%s\n' * | rofi -dmenu -i "Test" ) cd $chosen/Notes alacritty -e vim $chosen.tex
\n这个脚本的工作原理是因为我的笔记遵循以下模板:\n
UniNotes/Subject1/Notes/Subject1.tex
\n这个设置非常简单,因为它只允许在每个文件夹中识别单个 tex 文件。\n我希望有一个脚本可以在 rofi 中列出所有来自 uninotes 的 tex 文件。然后我想选择一个特定的 tex 文件,并用 alacritty 和 vim 打开它。\n我的最大问题似乎是在列出文件时如何保留文件的位置。\n有人可以帮我写这个脚本吗?
问题的原因是使用rofi命令时,选择文件后显示的是完整路径而不是文件名。解决方法是使用cd命令将当前目录更改为所需目录,并在find命令中使用相对路径来查找文件。
下面是解决方法的代码示例:
cd ~/UniNotes chosen=$(find . -name '*.tex' | rofi -dmenu -i "Test")
该代码将当前目录更改为~/UniNotes,并在该目录中查找名为*.tex的文件。然后,rofi命令将显示可供选择的文件列表,并将选定的文件保存在chosen变量中。
在解决问题过程中,还发现了另一个严重问题。当目录名包含两个单词时,脚本无法正常工作。这是因为rofi命令默认使用空格而不是换行符作为选项的分隔符。要解决这个问题,需要查阅rofi的文档,并确保其使用换行符作为选项的分隔符。
至于完整路径的问题,需要确保将find命令的第一个参数更改为相对路径,以便只显示文件名而不是完整路径。