我花了一些时间才让我的 vim 看起来像附图中的样子。我的问题是,有没有办法在我打开 vim 时将这些设置设为默认设置?左上角是资源管理器,左下角是终端,右边是编辑器。我应该编辑 .vimrc 文件之类的东西吗?
答案1
运行:mksession ~/.vim/session.vim
以将当前会话保存在 vimscript 文件中。
如果您收到此错误消息:
E189: "~/.vim/session.vim" exists (add ! to override)
在 后面附加一个感叹号:mksession
:
:mksession! ~/.vim/session.vim
^
你可以通过选项来控制 Vim 在其中写入的内容'sessionoptions'
。后者是一个以逗号分隔的项目列表。
FWIW,以下是我设置选项的方法:
set sessionoptions=help,tabpages,winsize
具体来说,我没有包括项目options
和localoptions
,因为当我回溯会话时,无论我在运行时执行了什么实验,我都希望从合理的选项值/映射开始:mksession
。出于同样的原因,我只包括我需要的最少项目(即,,help
);您可能需要更多或更少。tabpages
winsize
现在您有了会话文件,您可以用以下命令关闭所有内容:
:sil! tabonly | sil! only | enew
│ │ │
│ │ └ load a new unnamed buffer
│ └ close all windows except the current one
└ close all tab pages except the current one
您可以通过运行以下命令恢复会话:
:so ~/.vim/session.vim
从 shell 启动 Vim 时,你可以使用以下参数恢复会话-S
:
$ vim -S ~/.vim/session.vim
^^
您可以像这样自动获取会话文件:
augroup my_session
au!
au VimEnter * ++nested call s:load_session_on_vimenter()
augroup END
fu s:load_session_on_vimenter() abort
let file = $HOME.'/.vim/session.vim'
if filereadable(file)
\ && ! argc()
\ && &errorfile is# 'errors.err'
so ~/.vim/session.vim
endif
endfu
有关详细信息,请参阅:For more information, see:
:h 'ssop
:h :mksession
:h :so
:h -S