VIM - несколько команд на одной строке

Я пытаюсь найти что-то, что позволит мне запускать несколько команд в одной строке в vim, подобно использованию точек с запятой для разделения команд в системах * nix или & в окнах. Есть ли способ сделать это?

Ответ 1

Бар | позволит вам сделать это. Из :help :bar

'|' может использоваться для разделения команд, поэтому вы можете давать несколько команд в одном линия. Если вы хотите использовать '|' в аргументе, перед ним следует '\'.

Пример:

:echo "hello" | echo "goodbye"

Вывод:

hello
goodbye

Примечание. Вы можете обнаружить, что ваш ~/.vimrc не поддерживает отображение | или \|. В этих случаях попробуйте вместо этого использовать <bar>.

Ответ 2

Поместите <CR> (возврат/ввод каретки) между командами и после них. Например:

map <F5> :w<CR>:!make && ./run<CR>

Не используйте |, потому что:

  • У некоторых команд есть проблемы, если вы используете | после них

  • | не работает последовательно в файлах конфигурации, см. :help map_bar

Ответ 3

Вы можете определить функцию, которая выполняет ваши команды.

function Func()
     :command
     :command2 
endfunction

И поместите это, например, в свой vimrc. Запустите функцию с помощью

exec Func()

Ответ 4

Команда seperator в vim |.

Ответ 5

Я всегда использовал ^J для разделения нескольких команд, нажимая Ctrl + v, Ctrl + j.

Ответ 6

Вы можете создать новый файл и написать на нем свои команды. Затем :so %, что означает исходный текущий файл.