В любом случае, чтобы ориентироваться в процентах в Vim?

25

Я часто открываю большие файлы, просматривая логи для поиска информации. Поскольку у всех строк есть метка времени в моем случае, и я уверен, в какой части целого файла присутствует информация, которая меня интересует. Например,

  • в нижней половине содержимого файла (50% или более) или
  • примерно на 10% больше к концу файла или
  • прокрутите вниз более 20% исходного файла.

Итак, чтобы быстро перемещаться таким образом, то есть с процентным соотношением - есть ли уже существующая функциональность в vim?

холодный морской тропический воздух
источник
@stephane Любой способ пойти больше 10% от текущей линии? Не видит ничего, на что можно сослаться, чтобы помочь в этом:h N%
mtk
Я только что попробовал относительный процент + 50%. Это не работает, так что нет. Я обновил свой ответ, чтобы показать справочную информацию.
X Tian

Ответы:

45

Извините за короткий ответ, но

просто введите 50%

                                                        *N%*
{count}%                Go to {count} percentage in the file, on the first
                        non-blank in the line |linewise|.  To compute the new 
                        line number this formula is used:
                            ({count} * number-of-lines + 99) / 100
                        See also 'startofline' option.  {not in Vi}
X Тянь
источник
3
Этот ответ безупречен. И это могло бы стать еще более значительным, если бы вы могли сделать относительное движение также: то есть, например, двигаться вперед на 10%, независимо от того, где вы находитесь. Также обратите внимание, что вы не: должны входить в режим доступа к команде.
Нилон
3

Есть [count]%команда (как интуитивно понятная!) Для абсолютной навигации. Для относительной навигации вы должны рассчитать сумму самостоятельно. Например, чтобы прокрутить вниз на 33%:

:exe 'normal!' 33 * line('$') / 100 . 'j'

(Вы, вероятно, хотите создать сопоставления, которые используют v:countдля них.)

Инго Каркат
источник