Ответы:
:call cursor(0, len(getline('.'))/2)
Печатание gm
сделало бы это, но это перемещается линиями экрана (см. :help gm
). Чтобы заставить его работать с текстовыми строками, можно переназначить эту команду:
map gm :call cursor(0, virtcol('$')/2)<CR>
Вот решение, которое учитывает жесткие вкладки и многобайтовые символы.
:exe 'normal '.(virtcol('$')/2).'|'
Вот лучшее решение, которое я нашел. Прыжки точно на середину линии не очень практичны. Скорее всего, вам все еще нужно переместить курсор на несколько позиций после перемещения в середину. Что если бы вы могли перейти к определенному персонажу? Многие люди просто ищут персонажа, а затем нажимают «следующий», пока не достигнут его. Это медленно. Плагин Easy-motion предлагает лучшее решение.
Мой любимый <leader><leader>s
персонаж - персонаж, к которому вы хотите перейти. Easy Motion заменяет все совпадения разными буквами на ваш выбор. Смотрите учебник. Это плагин, который меняет жизнь ...