Редактор vi
имеет очень полезную команду gf
, которая позволяет открыть - в новом окне vi
- файл, путь которого находится под курсором в редакторе vi
. Я пытаюсь обобщить эту функцию так, чтобы файл любого типа можно было открыть из редактора vi
, отфильтровав имя файла с помощью команды оболочки, такой как open
.
Однако, основываясь на методе проб и ошибок и прочтении страницы man
для команды * nix open
, я считаю, что невозможно открыть файл, имя / путь которого передается по каналу / перенаправлению. Например, следующая очень простая команда завершается неудачно, потому что open
не может принимать входные данные в качестве аргумента.
echo file_name.txt | открыт
Возможно, есть и другие функции, кроме open
, которые можно использовать в этой ситуации?
Вот выбор из vi
команд, которые я пытался использовать, чтобы открыть файл, путь которого был выбран в vi
в визуальном режиме vi
:
: '<,'>! открыт
: '<,'>! эхо | открыт
: '<,'>! кот | открыт
Примечание. Жаргон :'<,'>
означает просто текст, выделенный в визуальном режиме vi
. !
означает, что следующий текст должен быть выполнен как команда оболочки с использованием оболочки по умолчанию. Таким образом, эти строки пытаются фильтровать выделенный текст с помощью различных команд оболочки, но безрезультатно.
Три приведенных выше примера попытки фильтрации имени файла с помощью команды open не работают. Если у кого-то есть какие-либо предложения о том, как выполнить задачу, которую я описал, пожалуйста, поделитесь. Будем весьма благодарны за решение как общего случая (открытие файла, путь которого получен через канал / перенаправление), так и конкретного случая (открытие файла, путь которого содержится в текстовом файле с помощью командной строки vi
).
В качестве бонуса я хотел бы иметь возможность открыть файл из vi
, просто поместив курсор на имя файла (как в случае с командой gf
), а не выделив путь используя визуальный режим vi
.