Автоматически добавлять точку с запятой при возврате в конце блока в vim - PullRequest
0 голосов
/ 31 марта 2012

Там есть похожие ответы, но для отдельных строк больше. Я просто хочу автоматически добавить точку с запятой в блок в JavaScript, например (курсор == курсор):

func(function(){|})

Затем я нажимаю Enter и получаю

func(function(){
|})

Могу ли я добавить ; в конец этой строки, чтобы получить:

func(function(){
|});

автоматически

Ответы [ 4 ]

1 голос
/ 28 октября 2013

Вы должны попробовать cosco.vim: https://github.com/lfilho/cosco.vim

1 голос
/ 31 марта 2012

Я написал плагин для этого пару лет назад, endline.vim . Отображение по умолчанию в основном для GVim, но его легко переопределить, чтобы использовать в терминале vim. Он структурирует создание некоторого сопоставления клавиш (<S-CR> по умолчанию), добавляет конец строки, если его там еще нет, и перемещает вас на следующую строку. В обычном режиме символ добавляется, но курсор не двигается. Этот плагин особенно полезен для языков C-стиля и Python, что значительно облегчает работу с точкой с запятой / двоеточием, особенно когда вы используете скрипт типа autoclose.vim , который вставляет закрывающие кавычки, парены и т.д.

0 голосов
/ 31 марта 2012

Я использую следующее отображение, чтобы правильно открыть {} (способ TextMate) при нажатии <C-Return>:

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

Вы можете изменить его, добавив точку с запятой:

inoremap <C-Return> <C-o>m`<C-o>A;<C-o>``<CR><CR><C-o>k<Tab>
0 голосов
/ 31 марта 2012

Не совсем уверен, что я полностью понимаю ваш вопрос, но ...

:1$s/|/^v^m/g

Символ ^ удерживает клавишу управления при наборе следующей буквы.Но вы не можете добавить точку с запятой одновременно.

:1,$s/)$/);/g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...