我是 Ubuntu,我执行了ls
并获取了一个文件列表。我该如何根据命令中的位置ls
而不是其名称在 VIM 中打开列表中的第 n 个文件?我想这样做是因为目录中有很多文件,这些文件的名称很长且相似。
答案1
$ vim .
启动一个新的 vim 实例,显示当前目录的列表。将光标移到要编辑的目录上,然后点击<Enter>
。
答案2
首先启动一个 Vim 实例,其中包含目录中的所有文件参数列表:
$ vim *
这将打开第一个文件。要转到文件 42,请使用
:42argument
请注意,为了退出 Vim,您现在需要使用:argdel *
, 或者通过 退出:q!
;否则,Vim 会发出警告more files to edit
。
您还可以组合这个:
$ vim -c 42argu -c 'argdel *' *
答案3
首先,不解析 ls 的输出。这可能会导致各种问题,最常见的问题是它会在包含空格或换行符的文件名上中断。更安全的方法是使用find
:
$ vim "$(find . -maxdepth 1 -type f | awk 'NR==12')"
如果您确实想要使用ls
并且知道您的文件名是安全的,您可以这样做(确保像我一样使用引号,否则,这会破坏带有空格的文件名):
$ vim "$(ls -1 | awk 'NR==12')"
这将打开第 12 个文件,根据您的需要更改数字。