使用 `vim` 打开 `locate` 找到的文件(例如第二个路径)

使用 `vim` 打开 `locate` 找到的文件(例如第二个路径)

当我输入类似的内容时locate myfile.txt,我得到:

/opt/mydir/myfile1.txt.temp
/opt/mydir/myfile1.txt.temp2
/opt/mydir/myfile1.txt
/opt/mydir/myfile1.txt.temp4

我想vim进入N第 -th 个结果路径。如何在不手动输入路径的情况下做到这一点?

答案1

做:

vim "$(sed -n "2 {p;q}" <(locate myfile.txt))"

这里我打开用 找到的第二个换行符分隔的locate myfile.txt结果vim

使其成为一个函数,并输入您的~/.bashrc

lovim () { vim "$(sed -n ""$2" {p;q}" <(locate "$1"))" ;}

该函数第一个参数作为要搜索的文件名,第二个参数作为要打开的结果行(文件)的数量vim

更加坚固,处理名称中带有换行符的文件名:

lovim () { vim "$(sed -nz ""$2" {p;q}" <(locate -0 "$1"))" ;}

例子:

lovim myfile.txt 3

将从结果中打开第三个文件locate myfile.txt

扩展范围:

  • 在输入和输出上添加一些健全性检查(如果在输入之前存在所需的行数(文件)vim

相关内容