Vimスクリプト(map)(その3)

mapと自作関数を組み合わせて、バッファの全テキストを左右反転する処理をしてみます。

まずはベースのテキストを作成。

:0r!wsl seq 64 | wsl pr -t8J

各行を処理をする関数を作ります。

:function Revline(mystr)
:  return join(reverse(split(a:mystr,'\zs')),"")
:endfunction

試しにechoしてみます。

:echo Revline("HELLO")

大丈夫そうです。

テキストをリストに格納します。

:let a=getline("w0","w$")
:call map(a,'Revline(v:val)')
:echo a

ではバッファを置き換えます。

:call setline("w0w$",a)

全行左右反転できました。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA