Zmiana linii przy wykorzystaniu wyliczeń opartych na wartościach pobranych z wiersza:

$ diff lost-in-2024.txt lost-in-2024.new.txt
1,6c1,6
< Carl Weathers, 1948
< Donald Sutherland, 1935
< Morgan Spurlock, 1970
< John Amos, 1939
< Richard Simmons, 1948
< Shelley Duvall, 1949
---
> Carl Weathers, 1948 (76)
> Donald Sutherland, 1935 (89)
> Morgan Spurlock, 1970 (54)
> John Amos, 1939 (85)
> Richard Simmons, 1948 (76)
> Shelley Duvall, 1949 (75)

Zmień w bieżącej linii:

^f1"xywA (<C-R>=2024-@x<CR>)<Esc>

Jeśli chcesz wykorzystać do wielu linii, zapisz jako makro:

qa^f1"xywA (<C-R>=strftime("%Y")-@x<CR>)<Esc>+q

Wywołaj makro dla wybranych/wszystkich linii:

5@@
5@a
:.,5norm @a
:%:norm @a
:'<,'>normal @a

More information

Analiza sekwencji

qa
Zacznij nagrywać makro w rejestrze a
^
Skocz do pierwszego znaku w linii
"xyw
wstaw słowo do rejestru x
A
Przejdź do wstawiania na końcu linii
<C-R>=
wstaw wynik operacji do rejestru =; kiedy pojawi się prompt, wpisz to, co poniżej
2024-@x<CR>
od 2024 odejmij liczbę w rejestrze x
strftime("%Y")-@x<CR>
od bieżącego roku odejmij liczbę z rejestru x
<Esc>
opuść tryb wstawiania
+
skocz na początek następnej linii
q
zatrzymaj nagrywanie makra

Sortowanie wg wieku

Rosnąco:

:sort n

cat lost-in-2024.new.txt:

Donald Sutherland, 1935 (89)
John Amos, 1939 (85)
Richard Simmons, 1948 (76)
Carl Weathers, 1948 (76)
Shelley Duvall, 1949 (75)
Morgan Spurlock, 1970 (54)

Malejąco:

:sort! n

Refs