Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

文字列中のタブを空白に置換する

$
0
0

vimscriptで文字列中のタブ文字を空白に置換したい。
バッファに対してなら retabでいいんだけど、あくまで文字列に対して実行したい。そういう関数があるんじゃないかと思ったけど、見つけられなかった。

自分で実装するなら、こんな感じ?

function! ExpandTab(text,tabstop)let tokens = split(a:text,'\v\t\zs')let replaced = map(tokens, 
                    \'v:val[-1:] !="\t" ? v:val :
                    \ v:val[:-2] . repeat(" ",a:tabstop-(len(v:val)-1) % a:tabstop)')returnjoin(replaced,'')endfunction
  1. splitで、各タブ文字の後ろで文字列を分割
  2. mapで、分割後の各文字列の長さがtabstopのn倍になるようにタブを空白に置換
  3. joinで文字列を再結合

で終わり。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>