題 如何忽略vim撤消歷史記錄中的autocmd?


我有以下自動命令,它基本上剝離每行末尾的空格。不幸的是,在每次保存時,它會在撤消中插入一個步驟以跳轉到文件的開頭,這非常煩人。有沒有辦法讓vim忽略在以下命令中跳轉,以便撤消將光標保持在位?

autocmd BufWritePre *
    \ let s:bufwritepre_currline = line('.') |
    \ let s:bufwritepre_currcol = col('.')   |
    \ silent %s/\s*$//                       |
    \ call cursor(s:bufwritepre_currline, s:bufwritepre_currcol)

5
2017-08-06 08:24


起源


與問題無關,但為了恢復光標位置, winsaveview()/winrestview() 可能比 line()/col()/cursor() 你的例子給出的解決方案。 - Søren Løvborg


答案:


你試過升級vim嗎?我剛剛在ubuntu上的vim7.3中嘗試過它並且工作正常,剝離了所有空格並將光標留在同一個地方。


0
2017-10-13 04:56



問題不在於光標位置,而是在撤消歷史記錄中插入移動的事實。如果您有更長的文件(多個屏幕頁面),運行autocmd,然後撤消某些內容,您可以看到我的意思。 - Dave Vogt