10

Я знаю, 0 идет в начало строки, а $ - в конец, но есть ли что-то для середины?

4 ответа4

8
:call cursor(0, len(getline('.'))/2)
7

Вот решение, которое учитывает жесткие вкладки и многобайтовые символы.

:exe 'normal '.(virtcol('$')/2).'|'
6

Если вы наберете gm произойдет, но он будет перемещаться по линиям экрана. Чтобы заставить его работать с текстовыми строками, можно переназначить эту команду:

map gm :call cursor(0, virtcol('$')/2)<CR>
0

Вот лучшее решение, которое я нашел. Прыжки точно на середину линии не очень практичны. Скорее всего, вам все еще нужно переместить курсор на несколько позиций после перемещения в середину. Что если бы вы могли перейти к определенному персонажу? Многие люди просто ищут персонажа, а затем нажимают "следующий", пока не достигнут его. Это медленно. Плагин Easy-motion предлагает лучшее решение.

Мой любимый персонаж - <leader><leader>s затем персонаж, к которому вы хотите перейти. Easy Motion заменяет все совпадения разными буквами на ваш выбор. Смотрите учебник. Это плагин, который меняет жизнь ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .