Подтвердить что ты не робот

Автоматическая новая строка и отступы в vim, когда внутри брекеты?

Например, если я кодирую jQuery в vim, и у меня это в режиме вставки ( "|" - это текущая позиция курсора):

$('#something').click(function(){|})

... и я нажал enter, я хотел бы получить следующее:

$('#something').click(function(){
    |
})

... пока я получаю это:

$('#something').click(function(){
|})

То же самое происходит с определениями функций в PHP. Есть ли способ автоматически вставить дополнительную новую строку и отступы позиции курсора при попадании внутрь внутри фигурных скобок?

(Извиняется, если это было задано раньше - это похоже на общий запрос, но я искал некоторое время и не мог его найти.)

4b9b3361

Ответ 1

Я закончил просто hardcoding это в .vimrc, как следует

" Make it so that a curly brace automatically inserts an indented line
inoremap {<CR> {<CR>}<Esc>O<BS><Tab>

Казалось бы, части <BS><Tab> не нужны, но по какой-то причине они не отступали правильно, как обычно делает команда O, поэтому я должен был добавить ее.

Ответ 2

Я использую javascript.vim, который (почти) делает то, что вы хотите для кода JavaScript.

Там также php.vim, но я не тестировал его.

Ответ 3

Моя версия похожа, но использует <C-o> вместо <Esc>, поскольку она запускает проверку с помощью JavaScriptLint.vim.

Кроме того, я не хочу, чтобы каждый {} был на нескольких строках, поэтому он отображался в ctrl + .

inoremap <C-Return> <CR><CR><C-o>k<Tab>