vim の使用中に誤って配置されたタブを簡単に削除したい。私に飛びついた解決策は、次の vim 関数への挿入モード マッピングを作成することです。
function DeleteTab()
redir => l:numSpaces "captures output of set
set tabstop?
redir END
"Strip off non-numerical output of 'set tabstop?'
let l:numSpaces = substitute(l:numSpaces, "tabstop=", "", "")
let l:numSpaces = substitute(l:numSpaces, " ", "", "g")
"all echom lines are for debugging purposes
echom "1"
if l:numSpaces > 0
echom "2"
while 1:numSpaces > 0
execute "normal i<bs>"
let l:numSpaces = l:numSpaces - 1
endwhile
endfunction
意図したとおりに動作しないことに加えて、この関数を呼び出した結果はメッセージで "1" になりますが、"2" ではありません。これは、l:numSpaces が数値として解釈されていないことを意味します。vimscript でキャストに相当することを行うにはどうすればよいですか。また、もっと簡単なアプローチがありませんか?