Например, я хочу создать команду под названием Mycmd (первая буква должна быть заглавной). Когда я нахожусь в обычном режиме и набираю :Mycmd, я надеюсь, что можно выполнить следующую последовательность команд:

:set ts=2
:set sw=2
:set sws=2
:set expandtab

Я обнаружил, что синтаксис command находится на правильном пути, например: [StackOverflow], но я не мог сделать это более чем с двумя командами (например: установить одно, затем установить другое).

Я действительно не рассматриваю nmap, поскольку я хочу создать свою команду вместо сопоставления с горячей клавишей, хотя nmap позволяет выполнять команды одновременно (например, nmap <F7> :set ts=2<enter>:set sw=2<enter>)

vim
0
TimeString 10 Май 2016 в 23:55

2 ответа

Лучший ответ

Просто сделать:

command Mycmd set ts=2 | set sw=2 | set sws=2 | set expandtab

| используется для разделения команд внутри любого скрипта Vim.

Или еще проще:

command Mycmd set ts=2 sw=2 sws=2 expandtab

Чтобы изменить настройки, затем отобразите изменения:

command Mycmd set ts=2 sw=2 sws=2 expandtab ts? sw? sws? et?

Чтобы отобразить это:

nnoremap <silent> _I :Mycmd<cr>
2
yolenoyer 10 Май 2016 в 21:48

Вы хотите:

command! Mycmd setlocal ts=2 sw=2 sws=2 expandtab

Вам (и всем) нужен Editorconfig.

2
romainl 10 Май 2016 в 21:48