tengu_crow: (Default)
[personal profile] tengu_crow
2009-06-30 11:08

Как мне раньше в голову не пришло? Сел и написал в течении пяти минут. /* и гораздо дольше возился оформляя пост со всеми его скобками и пр. */



добавить в .vimrc:

" навигация по разделам блога
map \j 0vey/^<C-R>" <CR>
map \k 0vey?^<C-R>" <CR>
map \J 0vehy/^<C-R>" <CR>
map \K 0vehy?^<C-R>" <CR>


Тупо - макросы выделяют начало заголовка - и перескакивают по нему дальше.

ПОДРОБНОСТИ


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

Шорткаты выбраны так, чтобы наложиться на общую мнемонику - \j,\k - вверх-вниз плюс лидер, аналогично \J,\K - вверх-вниз по подразделам.


• Механизм работы:


0 - перейти к началу строки
v - войти в режим выделения
e - перейти к концу текущего слова (а текущее слово в данный момент - токены заголовка)
[h] - для перехода к разделу на уровень ниже (т.е. не к следующему разделу, уровня 3, а к подразделу уровня 2)
y - скопировать токен заголовка в буфер " и выйти из режима выделения
/ или ? - перейти в режим поиска вверх, либо вниз
^ - регэксп "начало строки"
<C-R>" - вставить в поисковую строку содержимое буфера " (искомый заголовок - что-то вроде ## или ###)+ пробел после нее
<CR> - перейти к следующему заголовку-параграфу


С возвратом сложнее - в смысле - с переходом от низкого к высокому уровню.

Можно тупо добить либо поменяв поисковый шаблон через / , либо набрав несколько раз <Ctrl+O> (вернуться назад по истории поиска).

• Забавная подробность.

Этот маппинг работает независимо от того, какой символ используется для обозначения раздела (что #, что ~, что = - все что угодно, главное, чтобы количество спецсимволов маркировало уровень раздела и было отделено пробелом от его названия).

Вот когда начинаешь писать такие макросы - можешь оценить все богатство Vim'овских шорткатов - все эти движения вперед-назад по самым разным предложениям, словам, буквам и параграфам. Они совершенно аффигительно упрощают написание сложных систем обработки делая простыми даже очень сложные операции.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

June 2025

S M T W T F S
123456 7
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 07:14 pm
Powered by Dreamwidth Studios