我想在使用 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 中进行强制转换。另外,我错过了更简单的方法吗?