Jak uzyskać vimowe numery linii „screen-line”?

0

Wiem, że w VIM możesz zrobić: ustawić liczbę, ale jeśli linia się zawija, to liczy się jako dwie linie. Co vim nazywał linewise.

Mogę poruszać się w górę iw dół w sposób „linii ekranu” za pomocą gji gk, więc nawet jeśli linia będzie się owijała w wiele linii na ekranie, przesuwałaby się w górę i w dół linii na ekranie, ale gdybym chciał kiedykolwiek np. usuń kolejne 30 wierszy w sensie linii ekranu, dobrze byłoby mieć liczby linii ekranu.

Czy to możliwe / Jak mogę to zrobić?

barlop
źródło
1
„... w VIM… jeśli linia zostanie zawinięta, wówczas liczy się jako 2 linie” Linia owinięta ze względu na szerokość terminala nie będzie liczona jako 2 linie dla operatorów linii, będzie liczona jako 1, a zatem jprzesunie się o 2 linie w górę twój terminal, ale liczy się tylko 1 linia w linii vim.
jeremysprofile
@jeremysprofile, który był błędny, poprawiłem to, dzięki
barlop

Odpowiedzi:

0

Prawie wszystkie polecenia Vima dotyczą linii fizycznych, a nie miękkich linii ekranu. Dlatego funkcje takie jak 'relativenumber'również liczą linie fizyczne. Twoje zadania edycyjne nie powinny w dużym stopniu polegać na nawigacji za pomocą gj/ gk. Wypróbuj jedną z następujących opcji:

  • Jeśli to możliwe, ponownie sformatuj dokument, aby mieć krótsze wiersze. Możesz nawet zdefiniować :autocmds, aby łamać / ponownie składać linie podczas ładowania / zapisywania, jeśli nie można zmienić formatu na dysku.
  • Użyj trybu wizualnego (wraz z ji / lub gj), aby iteracyjnie wybrać obszar. Jak bezpośrednio zobaczysz dotknięty obszar, również powinno to być dość szybkie.

Jeśli naprawdę chcesz numerować na podstawie linii ekranu, możesz wziąć starą wtyczkę RelativeNumber, która emulowała wspomnianą opcję za pomocą kolumny znaków , i zmodyfikować tę wtyczkę, aby wyświetlała linie ekranu. Jednak nadal będzie to dość prymitywne doświadczenie.

Ingo Karkat
źródło