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