Session 有可能让gVim记住窗口大小吗?

Session 有可能让gVim记住窗口大小吗?,session,vim,window,persistence,Session,Vim,Window,Persistence,我知道如何使用gVim,但如何让它自动恢复上次会话中的窗口维度?这可能吗?编辑:更正了我的答案。提到的winsize会话选项仅指vim内部窗口布局,而不是外部尺寸 如果你使用 :mksession 并在vim启动时使用 gvim -S Session.vim 通过在sessionoptions中包含winpos和resize,可以将窗口位置和大小包含到会话中,请参阅 :help 'sessionoptions 使用自动命令,您甚至可以在Vim进入和退出时自动保存和恢复会话 gvim -

我知道如何使用gVim,但如何让它自动恢复上次会话中的窗口维度?这可能吗?编辑:更正了我的答案。提到的winsize会话选项仅指vim内部窗口布局,而不是外部尺寸


如果你使用

:mksession
并在vim启动时使用

gvim -S Session.vim
通过在sessionoptions中包含winpos和resize,可以将窗口位置和大小包含到会话中,请参阅

:help  'sessionoptions
使用自动命令,您甚至可以在Vim进入和退出时自动保存和恢复会话

gvim -geom 85x55
如中所示,将其放入.bashrc中:

alias G='gvim -geom 85x55'

我也有同样的问题,为了扩展上述答案,您可以简单地将以下内容添加到
.vimrc
中,以获得您想要的行为:

set sessionoptions+=resize,winpos
另请参见
:h ssop

.vimrc
中:

set ssop+=resize,winpos,winsize,blank,buffers,curdir,folds,help,options,tabpages

然后,使用中的脚本。它工作得很好

这些行只保存和恢复位置和大小:

set sessionoptions+=resize,winpos
autocmd VIMEnter * :source C:/session.vim
autocmd VIMLeave * :mksession! C:/session.vim

如果您只想每次打开相同大小的vim,可以在
C:/Users//\u vimrc
中编辑用户的vimrc(这比在vim安装文件夹中编辑系统vimrc更好)
要包含行
set lines=columns=

谢谢您的回答!我对Vim还是一个新手,所以我对自动命令没有太多经验。如何让它们在进入和退出时启动?请参阅:帮助自动命令,特别是GUIEnter、VIMEnter、VIMLeave事件看起来很有希望。会话保存也会保存最后打开的文件,并且在使用Vim打开单个文件时会忽略这些文件。Wikia中有一个脚本,它以一种更干净的方式进行操作(即不与其他会话元素混淆):这是一个好主意,但是会话保存也会保存最后打开的文件,并且在使用Vim打开单个文件时会忽略这些文件。Wikia中有一个脚本,它以更干净的方式进行操作(即不与其他会话元素混淆):