我正在使用这样的 sessionopts:
set ssop=blank,buffers,sesdir,folds,localoptions,tabpages,winpos,winsize
“sesdir”与“curdir”相对,应该存储相对于会话文件所在目录的所有路径。不幸的是,会话文件中有一行:
args absolute/path/to/file1 absolute/path/to/file2 and/so/on
我如何让 vim 仅使用相对路径,以便我可以将会话文件放入 git repo 并从任何机器恢复我的会话?
答案1
grosshat 的解决方案不起作用。可能需要参考 Zsolt Botyaki 在 SO 上的回答:
据我所知,如果不为其设置包装函数,你就无法做到这一点。
function! MakeSession() let b:sessiondir = getcwd() let b:filename = b:sessiondir . '/session.vim' exe "mksession! " . b:filename exe "edit! " . b:filename exe "g:^cd :d" exe "x" endfunction
答案2
这听起来很奇怪。当你设置时,sesdir
你声明会话的位置将设置为当前工作目录,并且会话文件中的所有路径将变为相对路径而不是绝对路径。
我使用了您的 sessionopts,它有效。我找不到任何与路径相关的行。您如何创建会话文件?标准是:
:mksession [filename]
- vim -S [文件名]