W każdym razie, aby nawigować procentowo w vimie?

25

Często otwieram duże pliki, przeglądam logi w poszukiwaniu informacji. Ponieważ wszystkie wiersze mają znacznik czasu w moim przypadku i jestem pewien, w której części całego pliku znajdują się informacje, którymi jestem zainteresowany. Na przykład

  • w dolnej połowie zawartości pliku (50% lub więcej) lub
  • około 10% więcej pod koniec pliku lub
  • przewiń w dół więcej 20% oryginalnego pliku.

Tak więc, aby szybko nawigować w ten sposób, tj. Procentowo - Czy jest już dostępna jakaś funkcjonalność vim?

Mt.
źródło
@stephane Jakiś sposób, aby przejść więcej 10% od bieżącej linii? W pomocy nie ma nic, do czego można by się odwoływać:h N%
mtk
Właśnie próbowałem względny procent + 50% To nie działa, więc nie. Zaktualizowałem swoją odpowiedź, aby wyświetlić informacje pomocy.
X Tian

Odpowiedzi:

45

Przepraszam za krótką odpowiedź, ale

po prostu wpisz 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 Tian
źródło
3
Ta odpowiedź jest bezbłędna. A może stać się jeszcze bardziej, jeśli możesz wykonać względny ruch: to znaczy przesunąć na przykład 10% do przodu, niezależnie od tego, gdzie patrzysz. Pamiętaj też, że nie powinieneś wchodzić: do trybu poleceń.
nilon
3

Jest [count]%polecenie (jak intuicyjne!) Absolutnej nawigacji. W przypadku nawigacji względnej musisz samodzielnie obliczyć kwotę. Np. Aby przewinąć w dół 33%:

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

(Prawdopodobnie chcesz utworzyć mapowania, które będą v:countdo nich wykorzystywać ).

Ingo Karkat
źródło