由于mac os x terminal.app
不支持许多vim视觉方面,包括当切换到插入模式时光标从一个块更改为一行,我使用osascript
来表示类似的东西。
在我撰写的.vimrc
文件中:
autocmd InsertEnter * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 11`j
autocmd InsertLeave * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 12`j
其中settings set 11
是一组具有行光标的终端设置,settings set 12
是一个具有块光标的终端设置。
这实际上工作得很好但是有一个小问题..在InsertLeave上,光标总是向左移动一个字符,这不是什么大问题,但它可能很烦人。
我试图通过将autocmd InsertLeave h
放入我的.vimrc
进行补偿,但无济于事(它给我一个错误)。
我应该如何告诉vim:
答案 0 :(得分:1)
在回答问题之前,我建议您查看MacVim(如果没有)。如果您希望(或需要)坚持终端,也许像iTerm这样的其他终端将提供更多功能。无论如何,在iTerm中不存在块条之间的光标变化(至少我是这么认为的),你解决它的方法是现象,它现在已经在这里添加了书签。谢谢!
解决问题的一种简单方法是添加另一个自动命令,就像你说的那样。但是在你的中,缺少执行模式和正确的命令。
h
不是命令。要执行正常模式序列,请使用:normal
命令。这可能正常工作:
au InsertLeave * normal! h