15

Допустим, у меня есть файл с именем file.txt. Это имя файла, который я хочу редактировать с помощью vi. Я хочу сделать что-то вроде этого, чтобы я мог редактировать файл:

cat file.txt | vi

Однако это не работает. Как это можно сделать?

Чтобы уточнить вещи:

Вот содержимое файла file.txt:

textfile

Поэтому я хочу как-то отправить содержимое файла file.txt в vi, чтобы произошло то же самое, что и при наборе vi textfile .

Содержимое файла file.txt может измениться. Я хочу, чтобы vi редактировал любой файл, указанный в file.txt.

2 ответа2

23

По крайней мере для vim (не уверен насчет vi), вы можете сделать

cat file.txt | vim -

'-' говорит vim читать со стандартного ввода.

9

Вы можете попробовать это:

% vi `cat file.txt`

или, чтобы избежать использования кошек, возможно,:

% vi `< file.txt`

Вы говорите vi(m) просто куча произвольных вещей. если вы хотите, чтобы vi(m) делал что-то вроде «эй, откройте этот файл», вы должны передать ему те же команды, которые вы использовали бы в vi(m), например. что-то вроде :e foo.txt . но это просто сложнее, чем делать то, что я предложил.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .