したがって、ファイル内のすべてのタブ文字をスペースに置き換えることは難しくありません。
たとえば、vimでは次のことができます。%s/\t/ /gc
各行の先頭にあるものを変更し、途中のものを変更したくない場合は、次のようにします。%s/^\t/ /gc
ただし、先頭に行があり、複数のタブがある行、途中にタブがある行がある場合は、ファイルのインデント構造を維持するために、行の先頭の各タブをスペースに置き換えたいと思います。何をすべきかわかりません。
vim、sed、または通常は正規表現を使用してください。
答え1
評価レジスタを使用して、必要な数のタブ文字を適切な数のスペースに置き換えることができます。たとえば、
:s/^\t\+/\=repeat(' ',len(submatch(0)))
説明する:
:s/ " Replace
^ " At the start of a line
\t\+ " One or more tabs
/\= " With the following evaluated as vimscript:
repeat(' ',len(submatch(0))) " 4 spaces times the length of the previously matched string