let g:session_directory = "~/.vim/tmp/session" // the directory must be created before the sessions will be saved there
let g:session_autoload = "no" // automatic reload sessions
let g:session_autosave = "no" // autosave
let g:session_command_aliases = 1
14 回答
您可以在任何地方存储会话 .
例如:
这会将会话存储在D盘中 .
这可以通过输入打开
在任何vim文件中 .
为了管理多个会话(基于每个目录/ repo),我最近从vim-session插件切换到vim-workspace . 它的会话管理相对简单,运行良好 .
谢谢@mathielo以下来自@mathielo的示例,我将以下行添加到.vimrc以保存活动会话(如果有):
如果你想放更多行,你需要使用endif:
您只需要在vim中保存一个新会话
并在开始之后
vim将启动会话,每次关闭vim时都不必担心保存会话 .
如果您没有活动会话.vimrc将不会执行任何操作 . 像之前一样 .
那就是我在寻找的东西!再次感谢@mathielo!
如果您使用NERDTree作为文件资源管理器/破折号,我建议使用xolox/vim-session plugin而不是内置:mksession命令 . 出于某种原因,:mksession无法恢复NERDTree缓冲区 . 您的里程可能会有所不同,但我想我会分享我的经验 .
这个任务有一个非常有用的插件vim-startify,它处理许多其他的东西,比如最近打开的文件等,它也有一个非常简单的界面 .
我使用它几天,直到现在它的工作完美 . 希望它能帮到你 .
有这个精彩的插件电话vim-session . 它非常强大 . 要安装它:
我在我的
.vimrc
文件中映射了它的功能,如下所示:现在在正常模式下输入
<leader>ss
,你会看到这样的命令现在添加会话名称
就这样 .
当你关闭Vim并重新打开它时
你会看到你的会话开放 .
要在
.vimrc
文件中添加许多其他配置,请参阅文档以获取示例:YouTube上有一个很好的tutorial .
就个人而言,我只是将Tim Pope的Obsession插件包裹起来以允许定义
sessiondir
并避免输入路径:您可能希望在vimrc中设置这些会话选项 . 特别是在保存会话后更改vimrc时,选项很烦人 .
If you plan having only 1 session for the project just do
这将在当前目录中创建
Session.vim
文件,然后打开会话(来自同一目录):如果您更改会话并想要保存它:
If you plan having multiple sessions ,我更喜欢将它们保存在项目目录中的隐藏文件中:
要打开它(从同一目录):
保存 Session :
由于会话保存在隐藏文件中,要查看它们不要忘记
-a
如果要在不使用任何插件的情况下自动执行该过程,可以使用Vim Tips Wiki来自Vim Tips Wiki .
每次退出Vim时,它都会将当前会话保存在
~/.vim/sessions
下,并在打开Vim后再次加载 . 它也基于您当前的路径,因此如果您从不同的目录打开Vim,您将拥有不同的会话,这在处理不同的项目时非常有用 .只需编辑
~/.vimrc
文件并添加以下内容:即使是初学者,这个脚本也有点容易理解和定制 .
Please note 此脚本仅适用于Unix系统(MacOS / Linux),需要适应在Windows上运行 .
UPDATE: 添加0xc0de的建议,如果你想让Vim加载会话 only if no arguments are provided ,你可以替换这些的
VimEnter
行:请注意:mksession不会将更改保存到您所创建的任何文件中 . 假设我将从那里开始,我在保存会话后犯了关闭vim的错误 . 但是下次我打开会话时,我对文件所做的更改就消失了 .
由于这是我第一次在谷歌(以及其他人)对Vim如何使用会话的打击,我决定在@ mathielo上添加一些关于如何使其自动化的答案 .
我喜欢他的代码,但添加“只有没有args”的解决方案似乎有点缺乏 . 这是我修改过的版本:
这里值得注意的变化是可选的覆盖 . 如果您在没有选项的情况下打开Vim,它将打开任何现有会话并覆盖您离开时所做的更改 . 如果使用选项打开Vim,它将仅创建一个新会话(如果不存在),这意味着您可以在具有会话的目录中打开单个文件而不覆盖它 . 然后,您可以打开Vim而无需选项来运行会话 . 如果没有会话,则会创建一个新会话 .
你想要的东西
然后你可以来源那个vim文件,你将恢复旧会话:
或使用-S选项打开vim:
以下是唯一的conf . 这真的对我有用 . 我从here开始,你可以在那里采用更完整/复杂的版本 .