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

77

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

фанк-шан
источник

Ответы:

103

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

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

Калеб
источник
14
Кроме того, !! без выделенного текста вы сможете запустить команду и затем вставить результат в текущую позицию курсора - не нужно отправлять материал в STDIN и заменять его, если вам это не нужно / не нужно.
Кромей
4
также, если вы просто хотите поместить вывод команды в ваш документ, просто сделайте :r!unix_command. Это полезно для таких команд, какdate
Yab
2
Вы также можете выполнить несколько строк вашего буфера vi с помощью оболочки (или любого интерпретатора) и заменить их результатом выполнения. например: :10,20!shили, сформируйте отмеченные линии,'a,'b!sh
jlliagre
1
Что-то еще, что я думаю, стоит отметить, что это зависит от используемой вами ОС. Если вы используете Windows, он выполнит команду оболочки Windows. Многие, читающие это, уже знают об этом, но я подумал, что для тех, кто приезжает из Google, стоит упомянуть.
Андрей