Есть ли Sublime Text, эквивалентный этому фрагментарному копированию строки выше макроса?

Недавно я перешел с gvim на Sublime Text 3. Я ищу эквивалент или что-то относительно близкое к этому невероятно полезному макросу vim:

" Piece-wise copying of the line above the current one
:imap <C-L> @@@<ESC>hhkywjl?@@@<CR>P/@@@<CR>3s

Макрос слово за словом копирует строку выше. Когда вы повторяете ярлык, он перемещает курсор на текущую строку.

Это полезно во всех видах декларативных утверждений, которые, как правило, выровнены по нескольким строкам. Вот грубый пример того, что он будет делать при редактировании коротких объявлений CSS. Знак доллара представляет позицию курсора после использования ярлыка:

#foo .bar { color:red; }
#$         <--- I pressed the shortcut 1 time...
#foo$      <--- ...................... 2 times...
#foo .$
#foo .bar$
#foo .bar { $
#foo .bar { color$
#foo .bar { color: $

Что такое «слово», не имеет особого значения. Если макрос копирует «#foo» одним словом или «#», а затем «foo», это все равно очень полезно.

PS: если я в конечном итоге попытаюсь создать его самостоятельно, должен ли я подумать о создании плагина или вы думаете, что макрос поможет?


person Community    schedule 27.11.2016    source источник


Ответы (1)


Вот относительно близкий эквивалент (проверено в Sublime Text 3). Предназначен для работы в режиме Vintage. в режиме вставки.

Макрос не работает без винтажного режима, и я не могу создавать невинтажную версию, поскольку это относительно неясный вопрос / ответ, и эта версия работает для меня. Если кто-то хочет сделать невинтажную версию или, что еще лучше, макрос, который работает в обоих направлениях, это будет хорошим вкладом в этот вопрос.

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

Шаги макроса:

  • Вверх
  • ESC (возврат в командный режим)
  • v (визуально)
  • e (выбрать до конца слова)
  • у (дергать)
  • Вниз
  • п (вставить)
  • A (прописная буква A › режим вставки в конце строки)

Настраивать

  • Сохраните следующую суть в файл макроса, например Piece-wise-copying-line-above.sublime-macro (где бы ни находились ваши пакеты Sublime/и т. д. )

  • Добавьте ярлык к файлу привязки клавиш. Например:

    {ключи: [ctrl+l], команда: run_macro_file, аргументы: {файл: res://Packages/User/Piece-wise-copying-line-above.sublime-macro}},

person Community    schedule 28.11.2016
comment
Если кто-то хочет опубликовать макрос, который может работать как в винтажном режиме, так и без него, это даже лучше, и я приму этот ответ. Просто предоставив рабочее решение здесь. - person ; 29.11.2016