Определите постоянные сокращения в Vim
Кажется, Vim не может создавать глобальные сокращения. Поэтому я создал файл сокращений (называемый autocorrect.vim) со следующей строкой в моем файле.vimrc:
:source ~/autocorrect.vim
Затем я вручную добавил свои сокращения в этот файл. Если я работаю в каком-либо документе, эти сокращения доступны для меня.
Однако, если я работаю в новом документе и пытаюсь добавить новые сокращения в этот список или удалить сокращения, это будет продолжаться только для сеанса. Как только я выйду из Vim, я потеряю все изменения. Чтобы сделать аббревиатуры постоянными, я должен вручную отредактировать файл autocorrect.vim напрямую.
Дело в том, что если я работаю в новом документе и добавляю сокращения, я вижу, что они были добавлены в мой список сокращений (по телефону: ab). Однако, когда я выхожу, они теряются. Как я могу сделать эти изменения глобальными и постоянными?
Я надеюсь найти решение, которое не требует плагина.
1 ответ
Чтобы сохранить конфигурацию в Vim, она должна быть сохранена в файле конфигурации с :help vimrc
как самый выдающийся. Это имеет как плюсы (независимо от того, что вы делаете в Vim в интерактивном режиме, любой сбой можно исправить путем перезапуска Vim), так и минусы (то, что вы хотите, трудно сделать). Я вижу следующие варианты:
- Вместо определения сокращений на лету с
:ab
и т. д., вам нужно поместить команду в отдельный файл конфигурации, либо в~/.vimrc
или в отдельном конфиге (например,~/.vim/plugin/myabbreviations.vim
). Это гарантирует, что сокращение сохраняется для новых сеансов Vim. Вам также нужно:source
Конфигурация для импорта новой аббревиатуры в текущий сеанс. (С отдельной конфигурацией, перезагрузка не должна быть проблемой;.vimrc
плохо написано.) Это может показаться утомительным, но вы можете определить пользовательские:command
s, чтобы быстро найти, и:autocmd BufWritePost
автоматически:source
Это. С другой стороны, это путь к "плагиновому решению", которое вам не нужно. - Vim поддерживает сеансы (
:help session-file
) что (по умолчанию'sessionoptions'
) хранить сопоставления и сокращения. Так что если вы:mksession
после определения новой аббревиатуры (или непосредственно перед выходом из Vim) и загрузки этого сеанса (через:source
) в другом экземпляре Vim вы также сохраните свои сокращения. К сожалению, без плагина обработка сеанса также является ручным процессом и его легко забыть. Кроме того, гранулярность того, что становится постоянным, не может контролироваться; это в основном все или ничего. - Как уже упоминалось в комментариях, есть плагины, которые делают это просто. Если это только аббревиатуры для вас (и вы довольны другой обработкой конфигурации в целом), возможно, стоит попробовать.
Я лично использую первый вариант, с пользовательскими командами (:Abbreviate
, :SnippetEdit
и т. д.), которые открывают специальные сценарии.