Как запускать команды Unix из Vim?

Как я могу запускать команды Unix, пока я в vim?

5 ответов

Перейти в командный режим Esc, затем запустить :!unix_command, Что-нибудь бежать от : быстрое начало с грохотом ! будет запущен как команда оболочки Unix. Вы увидите вывод и сможете нажать клавишу, чтобы вернуться к своей работе в vim.

Если у вас выделен текст в визуальном режиме и вы хотите отправить его в команду как STDIN, нажмите !! и введите свою команду. Результаты команды заменят текст, который вы выбрали.

Из справочного зеркала VIM:

:shell        :sh[ell]        start a shell
:!            :!{command}     execute {command} with a shell

В дополнение к приведенным выше ответам вы можете использовать текущее содержимое буфера vim в качестве стандартного ввода для команды оболочки, используя:%!.

Например, предположим, что вы хотите отфильтровать строки из текущего содержимого окна Vim, чтобы они содержали только строки с подстрокойcaвнутри них. Вы можете использовать:

      :%! grep ca

Это автоматически отфильтрует строки, помещая вывод grep вместо текущих строк.

Использовать:!(двоеточие), за которым следует команда, которую вы хотите запустить (:!{command}) для запуска внешних команд из Vim. Вывод команды будет возвращен для просмотра. Обратите внимание: вам нужно будет дождаться завершения выполнения команды, прежде чем вы сможете продолжить редактирование, поскольку Vim является однопоточным (это может быть проблемой для команд, выполнение которых занимает много времени). См. эту страницу в справочном руководстве Vim для дальнейшего чтения.

Вам необходимо переключиться в режим экспорта файлов с помощью::Vexplore,:Sexploreили:Explore(все принимают путь в качестве аргумента).

Тогда вы можете нажать либо%для создания обычного файла илиdдля каталога. Вам будет предложено указать имя.

Это собственный способ VIM, нет необходимости запускать внешнюю оболочку.

Другие вопросы по тегам