1

Это содержимое cmd.txt:

:w 2.txt
:q

В командной строке я делаю

D:\>vim 1.txt<cmd.txt

Я ожидаю cmd.txt как поток ввода (а не мою клавиатуру), и vim сохранит 1.txt как 2.txt и затем выйдет.

Это однако не работает. Вим говорит, что ввод не с терминала, а замораживание.

Я хочу отправлять команды из внешнего файла. Как это сделать?

Обновить:

То, что я хочу сделать, это заменить много шаблонов. У меня есть файл, в котором рассказывается об истории НБА, где название команды упоминается в городе, и я хочу изменить его на "фамилию".

Я как-то сгенерировал команды подстановки (30 правил / строк):

:%s/\v<Boston>/Celtics/g
:%s/\v<Brooklyn>/Nets/g
:%s/\v<New York>/Knicks/g
:%s/\v<Philadelphia>/76ers/g
:%s/\v<Toronto>/Raptors/g
:%s/\v<Golden St>/Warriors/g
:%s/\v<LA Clippers>/Clippers/g
:%s/\v<LA Lakers>/Lakers/g
:%s/\v<Phoenix>/Suns/g
:%s/\v<Sacramento>/Kings/g
:%s/\v<Chicago>/Bulls/g
:%s/\v<Cleveland>/Cavaliers/g
:%s/\v<Detroit>/Pistons/g
:%s/\v<Indiana>/Pacers/g
:%s/\v<Milwaukee>/Bucks/g
.....

Я хочу ввести файл в vim для выполнения этих команд. Я не хочу вводить эти команды вручную.

Я могу сгенерировать правила другим способом и ввести их в другую программу, или даже написать простую программу для замены. Но я буду признателен, если это можно будет сделать в Vim, Powershell или Total Commanders, которые я изучаю недавно.

1 ответ1

1

Вы можете сделать это с параметром командной строки -s :

vim -s cmd.txt 1.txt

Тем не менее, комментарий Теун Винк остается в силе. Что ты на самом деле пытаешься сделать? Это звучит как классическая проблема X-> Y.

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