我的使用场景可能看起来有点不寻常,但这里是:当使用vim(它是我经常使用的大约4种不同编辑器之一)时,我在两种不同的情况下使用它。第一个是通过GUI,我将有多个缓冲区,并且有一些设置不同于我在命令行中使用它时(通过测试“if has('gui_running')
”)。另一种是当我需要从命令行做一些简短快速的操作时,例如对点文件或其他类型的配置进行小的更改。
我喜欢做什么,是为GUI启用了会话,但是让任何命令行调用都忽略它们。也就是说,我不想在CL调用上调出完整的现有会话,也不希望它(以及它涉及的任何缓冲区/文件)改变GUI正在使用的会话。由于我对vim的后vi功能还不熟悉,我不确定如何解决这个问题。
答案 0 :(得分:5)
在您的.gvimrc
以及.vimrc
中的所有其他内容中进行会话魔术。 GUI将同时发送,但CL版本将仅发送.vimrc
。
会话魔术是设置自动命令以在退出时将会话写入文件,并在入口时通过获取文件来重新加载它。
au VimLeave * mksession ~/.gvimsession
au VimEnter * source ~/.gvimsession
答案 1 :(得分:2)
你可能想要添加一个! mksession,以便您每次退出时都不会收到覆盖错误消息。
au VimLeave * mksession! ~/.gvimsession
au VimEnter * source ~/.gvimsession