在 Vim 中定义持久性缩写
Define persistent abbreviations in Vim
Vim 似乎无法创建全局缩写。所以我创建了一个
缩写文件(称为 autocorrect.vim),其中包含以下行
我的 .vimrc 文件:
:source ~/autocorrect.vim
然后我手动将我的缩写添加到这个文件中。如果我在任何工作
记录这些缩写可供我使用。
但是,如果我在新文档中工作并尝试添加新文档
此列表的缩写或删除缩写,它仅适用于
session。一旦我退出 vim,我将丢失所有更改。做缩写
permanent 我必须直接手动编辑 autocorrect.vim 文件。
问题是,如果我在新文档中工作并添加缩写,我
可以看到它们已添加到我的缩写列表中(通过调用
:ab)。但是,当我退出时,它们丢失了。我怎样才能做出这些改变
全局和永久?
我希望找到一个不需要插件的解决方案。
为了在 Vim 中保留配置,必须将其保存在配置文件中,其中 :help vimrc
是最突出的配置文件。这既有优点(无论你在 Vim 中交互做什么,任何搞砸都可以通过重新启动 Vim 来解决)和缺点(你想做的事很难做)。我看到以下选项:
- 无需使用
:ab
等动态定义缩写,您需要将命令放入单独的配置文件中,可以在 ~/.vimrc
中,也可以在单独的配置中(例如 ~/.vim/plugin/myabbreviations.vim
).这可确保缩写词在新的 Vim 会话中保持不变。您还需要 :source
配置以将新缩写导入当前会话。 (使用单独的配置,重新加载应该不是问题;如果您的 .vimrc
写得不好,可能会出现问题。)这听起来很乏味,但您可以定义自定义 :command
s 来快速定位,并且:autocmd BufWritePost
自动 :source
它。另一方面,这是通往您不想要的 "plugin solution" 的道路。
- Vim 支持 sessions (
:help session-file
) that (with the default 'sessionoptions'
) 存储映射和缩写。因此,如果您 :mksession
在定义了一个新缩写之后(或就在退出 Vim 之前)并在另一个 Vim 实例中加载该会话(通过 :source
),您将获得也保留您的缩写。不幸的是,如果没有插件,会话处理也是一个手动过程,很容易忘记。此外,无法控制持久化的粒度;这主要是全有或全无。
- 正如评论中已经提到的,有一些插件可以让这变得简单。如果这只是关于您的缩写(并且您对一般的其他配置处理感到满意),则可能值得一试。
我个人使用第一个选项,使用自定义命令(:Abbreviate
、:SnippetEdit
等)打开专用脚本。
Vim 似乎无法创建全局缩写。所以我创建了一个 缩写文件(称为 autocorrect.vim),其中包含以下行 我的 .vimrc 文件:
:source ~/autocorrect.vim
然后我手动将我的缩写添加到这个文件中。如果我在任何工作 记录这些缩写可供我使用。
但是,如果我在新文档中工作并尝试添加新文档 此列表的缩写或删除缩写,它仅适用于 session。一旦我退出 vim,我将丢失所有更改。做缩写 permanent 我必须直接手动编辑 autocorrect.vim 文件。
问题是,如果我在新文档中工作并添加缩写,我 可以看到它们已添加到我的缩写列表中(通过调用 :ab)。但是,当我退出时,它们丢失了。我怎样才能做出这些改变 全局和永久?
我希望找到一个不需要插件的解决方案。
为了在 Vim 中保留配置,必须将其保存在配置文件中,其中 :help vimrc
是最突出的配置文件。这既有优点(无论你在 Vim 中交互做什么,任何搞砸都可以通过重新启动 Vim 来解决)和缺点(你想做的事很难做)。我看到以下选项:
- 无需使用
:ab
等动态定义缩写,您需要将命令放入单独的配置文件中,可以在~/.vimrc
中,也可以在单独的配置中(例如~/.vim/plugin/myabbreviations.vim
).这可确保缩写词在新的 Vim 会话中保持不变。您还需要:source
配置以将新缩写导入当前会话。 (使用单独的配置,重新加载应该不是问题;如果您的.vimrc
写得不好,可能会出现问题。)这听起来很乏味,但您可以定义自定义:command
s 来快速定位,并且:autocmd BufWritePost
自动:source
它。另一方面,这是通往您不想要的 "plugin solution" 的道路。 - Vim 支持 sessions (
:help session-file
) that (with the default'sessionoptions'
) 存储映射和缩写。因此,如果您:mksession
在定义了一个新缩写之后(或就在退出 Vim 之前)并在另一个 Vim 实例中加载该会话(通过:source
),您将获得也保留您的缩写。不幸的是,如果没有插件,会话处理也是一个手动过程,很容易忘记。此外,无法控制持久化的粒度;这主要是全有或全无。 - 正如评论中已经提到的,有一些插件可以让这变得简单。如果这只是关于您的缩写(并且您对一般的其他配置处理感到满意),则可能值得一试。
我个人使用第一个选项,使用自定义命令(:Abbreviate
、:SnippetEdit
等)打开专用脚本。