Как несколько команд заданы для ex из командной строки?

Я ищу использовать ex-режим vim для сценария, который я пытаюсь написать, но я не могу понять синтаксис, который позволит мне написать несколько команд.

Мой код выглядит примерно так:

ex -c 'normal! 2gg19|^V49gg59|y' geom.inc 

Таким образом, это просто входит в ex-режим для файла geom.inc, выделяет блок текста и блокирует этот текстовый блок. Все, что я хочу добавить, это то, что он закроет файл, как только он это сделает, но я не могу понять, как включить дополнительную команду для закрытия файла. Я вообще знаю «|» используется для объединения вместе команд, но никакая комбинация, которую я попробовал, не сработала. Обычно это заставляет думать, что одной из команд является другой файл.

  • Vim - Есть ли способ получить немедленную визуальную обратную связь во время вставки в режиме визуального блока?
  • Как я могу идти вперед в файле? Что такое oposite ctrl + O
  • Как удалить повторяющееся слово в редакторе vi?
  • Ярлык для tabn & tabp в vim / vi
  • Shell vi mode prints (arg: повторение): Как его удалить?
  • Выбрать между заданными символами в vim
  • Vi vs vim, или, есть ли причина, по которой я когда-либо захочу использовать vi?
  • Vi editor: Какой самый быстрый способ удалить несколько строк в файле?
  • 3 Solutions collect form web for “Как несколько команд заданы для ex из командной строки?”

    Я делал глупые ошибки. Как предлагает @Jeff Schaller, несколько подсказок -c позволят использовать несколько команд. Итак, мой рабочий пример выглядит так.

     ex -c 'normal! 2gg19|^V49gg59|y' -cwq geom.inc 

    Когда я вхожу в ex mode (ex), запросите команду (-c), определите блок («normal! 2gg19 | ^ V49gg59 | y», где normal! Разрешает использование регулярных команд vi, 2gg19 | означает переход во вторую строку и 19-й столбец ^ V входит в визуальный блок, 49gg59 | перемещается в 49-ю строку и 59-й столбец, а y блокирует блок), а запрос вызывает другую команду для записи и выхода (-cwq).

    Просто поместите команду «x» или «wq» в конец

     ex -c execute 'normal! 2gg19|^V49gg59|y|x' geom.inc 

    Я склонен подключать команды, например:

     $ echo ' 0r !seq 10 w test ' | ex $ cat test 1 2 3 4 5 6 7 8 9 10 
    Linux и Unix - лучшая ОС в мире.