Session VIM在运行宏时提示输入变量?
我发现我在关闭和重新打开文件集上浪费了很多时间,因此我想改进我的VIM宏,以便加载和保存会话以支持多个会话 我想让它提示输入一个字符串值,这样我就可以按我的快捷键,然后输入例如“foo”,并让我的宏将会话保存到.foo(因此我还需要对它执行基本的字符串concat)。然后,我会对load宏执行同样的操作,并按主题管理会话(使用MVC框架,您可能需要处理大量文件)Session VIM在运行宏时提示输入变量?,session,macros,vim,Session,Macros,Vim,我发现我在关闭和重新打开文件集上浪费了很多时间,因此我想改进我的VIM宏,以便加载和保存会话以支持多个会话 我想让它提示输入一个字符串值,这样我就可以按我的快捷键,然后输入例如“foo”,并让我的宏将会话保存到.foo(因此我还需要对它执行基本的字符串concat)。然后,我会对load宏执行同样的操作,并按主题管理会话(使用MVC框架,您可能需要处理大量文件) “控件-S保存并将F5移动到加载 设置sessionoptions=tabpages,winpos 映射:source~/.vim/.
“控件-S保存并将F5移动到加载
设置sessionoptions=tabpages,winpos
映射:source~/.vim/.session
映射:mksession!~/.vim/.session\|:echo“会话已保存”
我对VIM脚本编写的经验很少。是否可以用一行程序或一个小函数来实现这一点
谢谢。映射:执行“source”.input(“会话名称:”,“~/.vim/session.”,文件”)
map <s-f5> :execute "source ".input("session name: ", "~/.vim/session.", "file")<cr>
输入“foo”以加载“session.foo”
相反,您还可以执行以下操作:
map <s-f5> :source ~/.vim/session.
map:source~/.vim/session。
注意,没有文件名,所以您可以自己完成命令,然后按enter键,输入与上面相同的内容,甚至可以完成文件名
不过,在这一点上,我会考虑完全调用函数或其他东西。这是我现在的代码片段,以防有人需要类似的东西(无需投票)。它将会话保存在
.session.xyz
下,这些会话也从我的Git项目中排除。我喜欢将它们存储在Git项目文件夹中,以便与备份一起保存
我也喜欢confirmation echo,因为保存会话后按enter键时,你看不到发生了什么。这只是为了反馈
map <S-F5> :execute "source ".input("Load session: ", "~/Some/Project/.session.", "file")<cr>
map <c-s> :execute "mksession! ".input("Save session: ", "~/Some/Project/.session.", "file")\| :echo "Session saved."<CR>
map:执行“source.input”(“加载会话:”、“~/Some/Project/.session.”、“文件”)
映射:执行“mksession!”!.input(“保存会话:”、“~/Some/Project/.session.”、“文件”)\\\\:echo“会话已保存”
文件完成使这非常方便,谢谢!@faB我建议在第一个映射中添加“file”
作为输入的第三个参数,以获得文件名完成。
map <S-F5> :execute "source ".input("Load session: ", "~/Some/Project/.session.", "file")<cr>
map <c-s> :execute "mksession! ".input("Save session: ", "~/Some/Project/.session.", "file")\| :echo "Session saved."<CR>