Как сделать так, чтобы у разных документов были разные исторические записи? - PullRequest
0 голосов
/ 28 января 2019

Я использую :history / Получить записи поиска. Когда я переключаюсь на другой файл, результирующие записи поиска накладываются на разные файлы. Как сделать, чтобы разные документы имели разные исторические записи

1 Ответ

0 голосов
/ 29 января 2019

Истории командной строки Vim являются глобальными. Техническая причина этого заключается в том, что истории хранятся в плоском списке в :help viminfo-file.Логично также, что не имеет смысла присваивать определенные команды (например, :bufdo) одному буферу.

Таким образом, не существует простого параметра, который можно установить, чтобы сделать историю поиска локальной длябуфер.С достаточной решимостью вы могли бы реализовать плагин для этого.Я вижу два возможных подхода:

  • Вы мультиплексируете один файл viminfo (в котором хранятся истории) для буфера в глобальную историю через :help :rviminfo и:wviminfo.Это относительно просто с :autocmd s, и вы можете продолжать использовать стандартную (глобальную) :history и связанные с ней команды.Но многие другие настройки (метки, переходы, предыдущие файлы и т. Д.) Хранятся внутри viminfo, и они также будут эффективно локализованы (если вы просто не поменяете часть истории поиска).
  • Вы перехватываетев команды поиска и регулярно синхронизируйте глобальную историю поиска (через :help histget()) в локальное буферное хранилище, а затем предлагайте свои собственные команды для вызова поиска, например, путем создания рабочего буфера, который показывает локальные поискикак встроенный q/.Это, вероятно, приведет к гораздо лучшему удобству использования, но потребуется немного больше усилий для воссоздания ваших собственных команд истории.
...