我最近从 bash 切换到 zsh,现在我的 Ultisnips-snippets 中的制表位不再正常工作。
我没有更改我的片段文件中的任何内容,在我第一次遇到问题后,我回到 bash,从那里启动 vim,片段再次按预期工作。
我有这些片段
snippet ( iA
($1)$0
endsnippet
snippet mk wA
$$1$$0
endsnippet
如果我从 bash 运行 vim 并键入mk
,它将扩展到
$Cursor$
(我将用 表示光标位置Cursor
)。然后我可以输入f(
,它会扩展为
$f(Cursor)$
如果我按下x
然后tab
它会带我到
$f(x)Cursor$
(我将把这称为上一步S)。再按tab
一下我会到达
$f(x)$Cursor
但是,从 zsh 运行 vim,我仍然可以执行这些步骤,直到S但如果我然后按tab
,它将停留在
$f(x)Cursor$
然后开始插入标签。但是,如果我只这样做mk
并键入不带括号的其他内容,例如ab
$abCursor$
然后按tab
,它将按预期工作并让我
$ab$Cursor
有人知道这里发生了什么吗?如果我想继续使用 zsh 和 Ultisnips,我该怎么办?如果我运行bash -c 'vim file.txt'
,vim 会运行得很慢并且滞后很多,所以这不是一个真正的选择。任何帮助,将不胜感激。
编辑:显然问题与我使用的 vim 版本有关。我使用 macOS,我描述的问题发生在我使用默认 vim 版本时。如果我使用自定义编译的 vim 版本,它会按预期工作。事实证明,我有一些配置文件告诉 bash 使用自定义编译的版本,而 zsh 仍然使用默认版本。我还在我的电脑(运行 Ubuntu)上尝试了它,并且在那里安装了 vim 版本,它也可以工作。所以我想,我会使用我自定义编译的 vim 来避免这个问题......
但是有人知道,什么 vim 设置可能对此负责?如果我没记错的话,我的自定义编译版本只是 vim 的功能强大的版本。