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?


@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}

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ć ).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.