В редакторе vi откройте файл произвольного типа с произвольной программой - PullRequest
0 голосов
/ 02 августа 2011

Редактор vi имеет очень полезную команду gf, которая позволяет открыть - в новом окне vi - файл, путь которого находится под курсором в редакторе vi. Я пытаюсь обобщить эту функцию так, чтобы файл любого типа можно было открыть из редактора vi, отфильтровав имя файла с помощью команды оболочки, такой как open.

Однако, основываясь на методе проб и ошибок и прочтении страницы man для команды * nix open, я считаю, что невозможно открыть файл, имя / путь которого передается по каналу / перенаправлению. Например, следующая очень простая команда завершается неудачно, потому что open не может принимать входные данные в качестве аргумента.

echo file_name.txt | открыт

Возможно, есть и другие функции, кроме open, которые можно использовать в этой ситуации?

Вот выбор из vi команд, которые я пытался использовать, чтобы открыть файл, путь которого был выбран в vi в визуальном режиме vi:

: '<,'>! открыт

: '<,'>! эхо | открыт

: '<,'>! кот | открыт

Примечание. Жаргон :'<,'> означает просто текст, выделенный в визуальном режиме vi. ! означает, что следующий текст должен быть выполнен как команда оболочки с использованием оболочки по умолчанию. Таким образом, эти строки пытаются фильтровать выделенный текст с помощью различных команд оболочки, но безрезультатно.

Три приведенных выше примера попытки фильтрации имени файла с помощью команды open не работают. Если у кого-то есть какие-либо предложения о том, как выполнить задачу, которую я описал, пожалуйста, поделитесь. Будем весьма благодарны за решение как общего случая (открытие файла, путь которого получен через канал / перенаправление), так и конкретного случая (открытие файла, путь которого содержится в текстовом файле с помощью командной строки vi).

В качестве бонуса я хотел бы иметь возможность открыть файл из vi, просто поместив курсор на имя файла (как в случае с командой gf), а не выделив путь используя визуальный режим vi.

1 Ответ

3 голосов
/ 02 августа 2011

Вы хотите xargs(1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...