在Vim中定义持久性缩写

时间:2018-12-17 09:25:10

标签: vim abbreviation

Vim似乎无法创建全局缩写。所以我创建了一个 缩写文件(称为autocorrect.vim),其中包含以下行 我的.vimrc文件:

 :source ~/autocorrect.vim

然后我将我的缩写手动添加到该文件中。如果我在任何地方工作 记录这些缩写对我可用。

但是,如果我正在处理新文档并尝试添加新文档 此列表的缩写或删除缩写,仅适用于 会议。一旦退出vim,我将丢失所有更改。缩写 永久,我必须直接直接手动编辑autocorrect.vim文件。

问题是,如果我使用新文档并添加缩写, 可以看到它们已被添加到我的缩写列表中(通过调用 :ab)。但是,当我退出时,他们迷路了。我如何进行这些更改 全球的和永久的?

我希望找到不需要插件的解决方案。

1 个答案:

答案 0 :(得分:3)

要在Vim中保留配置,必须将其保存在配置文件中,其中:help vimrc是最突出的配置文件。这既有优点(无论您在Vim中进行交互操作是什么,都可以通过重新启动Vim来解决任何问题)和缺点(想要做的事情很难做到)。我看到以下选项:

  • 您无需使用:ab等快速定义缩写,而是需要将命令放入~/.vimrc或单独的配置中的单独配置文件中(例如{{1 }})。这样可以确保新Vim会话的缩写保持不变。您还需要~/.vim/plugin/myabbreviations.vim配置以将新的缩写导入当前会话。 (使用单独的配置,重装应该不是问题;如果您的:source编写不佳,则可能会很麻烦。)这听起来可能很乏味,但是您可以定义自定义的.vimrc来快速定位,然后:command以自动:autocmd BufWritePost。另一方面,这是您不需要的“插件解决方案”的途径。
  • Vim支持会话:help session-file),该会话(默认为'sessionoptions')用于存储映射和缩写。因此,如果您在定义新的缩写后(或在退出Vim之前):source,并通过另一个:mksession加载该会话(通过:source),您也将保留缩写。不幸的是,没有插件,会话处理也是一个手动过程,很容易忘记。同样,无法控制持久性的粒度;几乎全有或全无。
  • 正如评论中已经提到的,有一些插件可以使这一过程变得简单。如果这只是您的缩写(并且您对其他一般配置处理感到满意),那么可能值得尝试。

我个人使用第一个选项,并使用自定义命令(:Abbreviate:SnippetEdit等)打开专用脚本。