Определите постоянные сокращения в Vim - PullRequest
0 голосов
/ 17 декабря 2018

Vim не может создавать глобальные сокращения.Поэтому я создал файл аббревиатур (называемый autocorrect.vim) со следующей строкой в ​​моем файле .vimrc:

 :source ~/autocorrect.vim

Затем я вручную добавил свои аббревиатуры в этот файл.Если я работаю в каком-либо документе, эти сокращения доступны для меня.

Однако, если я работаю в новом документе и пытаюсь добавить новые сокращения в этот список или удалить сокращения, он будет действовать только для сеанса.Как только я ухожу из Vim, я теряю все изменения.Чтобы сделать аббревиатуры постоянными, я должен вручную отредактировать файл autocorrect.vim напрямую.

Дело в том, что если я работаю в новом документе и добавляю аббревиатуры, я вижу, что они были добавлены в мой список сокращений (с помощьюзовет: а).Однако, когда я выхожу, они теряются.Как я могу сделать эти изменения глобальными и постоянными?

Я надеюсь найти решение, которое не требует плагина.

1 Ответ

0 голосов
/ 17 декабря 2018

Чтобы сохранить конфигурацию в 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 и т. Д.), Которые открывают выделенные сценарии.

...