1

我的 .vimrc 中有这个函数,我在这里得到的

function! SetExecutableBit()
  let fname = expand("%:p")
  checktime
  execute "au FileChangedShell " . fname . " :echo"
  silent !chmod a+x %
  checktime
  execute "au! FileChangedShell " . fname
endfunction
command! Xbit call SetExecutableBit()

当我运行时:call SetExecutableBit(),它按预期工作。但是当我运行时:Xbit,所有字符都会从我的术语中消失(但在 Gvim 中不会)。我已经在 gnome-terminal 和 urxvt 上复制了这个。如果我尝试用鼠标或 突出显示某些文本ggVG,该文本将重新出现。

“之前”截图:

词条运行后截图:Xbit

选择一些文本后的屏幕截图:


更新,因为这个错误发生在--noplugin但不会发生-u NONE我的 .vimrc 文件中:https ://gist.github.com/dbb/5373175

4

1 回答 1

1

这可能只是重绘屏幕的问题。尝试将 a 添加:redraw到您的函数中。如果需要,在此命令后附加 a!将首先清除屏幕。

function! SetExecutableBit()
  let fname = expand("%:p")
   ...
  execute "au! FileChangedShell " . fname
  redraw
endfunction

:h :redraw

于 2013-04-12T16:29:29.133 回答