Vimスクリプト(その36)

前回は自作の関数をmapで実行しましたが、一行の関数だったので、わざわざ関数にする必要もありません。mapだけで同じ処理をしてみます。

:let a=getline("w0","w$")
:echo a

‘で囲んだ中でさらに、’が登場するので、エスケープする必要があります。
‘をエスケープするには、2個重ねればよいです。

:call map(a,'join(reverse(split(v:val,''\zs'')),"")')
:echo a

‘で囲むと文字そのもの。”で囲むと、\は\記号ではなく、エスケープシーケンスになるので、
‘の代わりに”を使って、\記号をエスケープしておいても良いですね。

:call map(a,'join(reverse(split(v:val,"\\zs")),"")')

では変換した変数をバッファのテキストと置き換えます。

:call setline("w0w$",a)

Leave a Reply

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

CAPTCHA