2 个版本
0.1.1 | 2022年11月11日 |
---|---|
0.1.0 | 2022年11月10日 |
在 命令行工具 中排名第 1951
300KB
930 行
Vim 会话管理器
一个 极快、简单、交互式的命令行会话管理器
目录
背景
如果你每天使用 vim 或 neovim,并在大型代码库中工作,那么一次打开 10+ 个标签并使用各种分割可能并不罕见。一旦你关闭这个 vim 会话,布局就会丢失。vim(neovim) 中的 mksession
命令可以帮你保存会话,从而将会话保存到目录中,承诺让你以你离开时的样子返回。然而,问题是我们大多数人积累了大量散落在各处的会话文件,我个人有 41
个 vim 会话文件,轻松加载它们,记住每个的上下文,以及删除过时的会话变得麻烦。于是出现了 vsm (Vim 会话管理器),它允许你以交互式或按名称列出、打开和删除会话文件。它还管理不同版本的 vim,并允许你在它们之间切换。例如,你可能是一名 neovide
用户,而不是 neovim
用户,vsm 目前支持 vim, neovim, neovide 和 gvim
。
类似的项目
目前我只找到了 一个其他项目,它允许更深入地管理会话文件。然而,它并不符合我的需求,因为它是用 vim 脚本编写的,存在无用的功能退化,并且严重依赖于 xolox 杂项插件,仅为了管理一些会话文件,就加载了超过 1200
行左右的 vim 脚本,它似乎也没有维护,最后更改记录在 2014 年 7 月 6 日。因此,我编写了 vsm
,它似乎是一个更好的解决方案,创建一个外部 CLI 程序,并尽可能将工作从 vim 中卸载。
安装
使用 cargo 安装
cargo安装 vsm
从源代码构建
将优化后的二进制文件安装到
$HOME/.local/bin
git clone https://gitlab.com/thebashpotato/vsm
cargo install just
just install
使用方法
设置
系统上期望存在一个环境变量
VIM_SESSIONS
,如果未定义,则当vsm
查找您的会话文件时,将默认使用~/.config/vim_sessions
。以下是在不同shell中设置该变量的两个示例。您可以将路径设置在任何您想要的位置。
-
bash/zsh
export VIM_SESSIONS="$HOME/.config/vim_sessions"
-
fish
set -Ux VIM_SESSIONS "$HOME/.config/vim_sessions"
更容易创建会话文件(在vim中)
vsm
可以加载、列出和删除会话文件,但它不能创建它们。这是vim
的工作。
将以下片段添加到您的
.vimrc
或init.vim
中,以便更容易地创建新的会话文件。现在在normal mode
中,您可以按mk
快速保存您的会话文件。
if isdirectory(expand($VIM_SESSIONS))
" Create a new sesion file (must give the file a unique name
nnoremap mk :mksession $VIM_SESSIONS/
" Overwrite an existing sessioon file with your current layout
nnoremap mo :mksession! $VIM_SESSIONS/
else
nnoremap mk :echo "VIM_SESSIONS directory does not exist"<CR>
nnoremap mo :echo "VIM_SESSIONS directory does not exist"<CR>
endif
开发
只需启动所有工具和配置。
cargo install just
just init # setup repo, install hooks and all required tools
运行
just run
测试
just test
在提交您的作品之前
just pre-commit
查看所有可用的命令
just list
维护者
贡献
接受PRs。
小贴士:如果您正在编辑README,请遵守 standard-readme 规范。
许可协议
本项目许可协议为
依赖项
~9–20MB
~271K SLoC