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

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

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

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

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

  • Как вводить символы без ascii с использованием шестнадцатеричных или восьмеричных кодов в vi
  • Bash Vi-mode: переход к последней косой чертой
  • Раскомментирование нескольких строк кода, заданных номерами строк, с использованием vi или vim
  • Использование клавиш VI для редактирования команд оболочки в UNIX
  • Выписывать, не покидая Vim?
  • vi / vim - дополнительные отступы при вставке текста?
  • vi - как присоединиться к разным конкретным линиям
  • Использование! в VIM
  • 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 - лучшая ОС в мире.