Я Ubuntu, я делаю ls
и получаю список файлов. Как мне открыть n-ый файл в списке в VIM, ссылаясь на его позицию из команды ls
, а не на его имя? Я хочу сделать это, потому что в каталоге много файлов с длинными похожими именами.
3 ответа
$ vim .
запускает новый экземпляр vim, показывающий список текущего каталога. Наведите курсор на тот, который вы хотите редактировать, и нажмите <Enter>
.
Прежде всего, не анализируйте вывод ls. Это может привести к всевозможным проблемам, наиболее распространенным из которых является нарушение имен файлов, содержащих пробелы или переводы строк. Более безопасный способ - использовать find
:
$ vim "$(find . -maxdepth 1 -type f | awk 'NR==12')"
Если вы действительно хотите использовать ls
и знаете, что ваши имена файлов безопасны, вы можете это сделать (убедитесь, что вы используете кавычки, как я, в противном случае это разбивает имена файлов пробелами):
$ vim "$(ls -1 | awk 'NR==12')"
Откроется 12-й файл, измените номер в соответствии с вашими потребностями.
Сначала запустите экземпляр Vim со всеми файлами в каталоге в списке аргументов:
$ vim *
Это откроет самый первый файл. Чтобы перейти к файлу 42, используйте
:42argument
Обратите внимание, что для выхода из Vim вам нужно использовать либо :argdel *
, либо выйти через :q!
; В противном случае Vim предупреждает вас о more files to edit
.
Вы также можете объединить это:
$ vim -c 42argu -c 'argdel *' *