Próbuję odwrócić ciąg znaków, aby tak się 'abc defg hij'
stało 'jih gfed cba'
. Rozwiązaniem, które wymyśliłem, jest
join(reverse(split(l:text, '.\zs')), '')
Czy istnieje bardziej eleganckie rozwiązanie, czy powinienem trzymać się tego, co wymyśliłem?
vimscript
string-manipulation
René Nyffenegger
źródło
źródło
split()
bez{keepempty}
opcji należy usunąć pojedynczy pusty element na początku i pojedynczy pusty element na końcu. Obecnie usuwa wszystkie puste elementy, w tym te znajdujące się na środku listy (co jest bardziej przydatne niż udokumentowane zachowanie, jeśli mnie o to poprosisz, ale prawdopodobnie nie jest). Myślę, że zostało to ostatnio omówionevim_dev
.Odpowiedzi:
Twoje rozwiązanie jest bardzo eleganckie! Alternatywą, jeśli jesteś w środowisku env opartym na Uniksie
źródło
Z Wikii
Więcej informacji:
:h revins
źródło
Jeśli używasz systemu uniksowego, w vimie wpisz ex-command
:%! rev
źródło