文字列を逆にしようとしているので、に'abc defg hij'
なり'jih gfed cba'
ます。私が思いついた解決策は
join(reverse(split(l:text, '.\zs')), '')
よりエレガントな解決策はありますか、それとも私が思いついたものに固執するべきですか?
1
それはあなたが「優雅」で何を意味するかによる。文字列を反転するための専用の内部関数はありません。内部関数の呼び出しが2回以下で、追加のステートメントがない場合でも、それは可能ではないようです。
—
佐藤桂
現在のソリューションは、エレガントでありながら慣用的です。
—
romainl 2015年
「。」をスキップ 分割部分。
—
Christian Brabandt、2015年
@SatoKatsura実は、正規表現エンジンが何にも一致する必要がないため、より効率的だと思います。さらに、これはドキュメントから推奨される方法です。
—
Christian Brabandt、2015年
マニュアルによると@ChristianBrabandt、
—
佐藤桂
split()
なしの{keepempty}
オプションは、最後に先頭の単一の空のアイテム、および単一の空の項目を削除する必要があります。現在、リストの中央にあるものも含めて、すべての空のアイテムが削除されます(私に尋ねると、文書化された動作よりも便利ですが、おそらくそうではありません)。これについては最近議論されたと思いますvim_dev
。