Сохранение настроек vim с документом - PullRequest
52 голосов
/ 24 ноября 2008

Есть ли способ сохранить состояние настроек vim с документом?

Чтобы уточнить: я редактирую документ и меняю несколько настроек. Я не обязательно вспоминаю какой; и я не хочу использовать эти настройки снова, за исключением текущего документа. Я не хочу вручную пытаться вспомнить, что я изменил; или какие магические сокращения используются для настроек, которые я изменил. Я просто хочу, скажем, для «mydoc.txt» файл «mydoc.vim», который возвращает меня туда, где я остановился, и файл настроек будет автоматически сохраняться на основе, скажем, настроек vim или, может быть, Ctrl-key делает это перед выходом. Было бы удобно, если бы vim мог автоматически искать такой файл.

И было бы предпочтительно не редактировать настройки в самом документе и из него.

Ответы [ 5 ]

111 голосов
/ 24 ноября 2008

Да, настройки vim могут быть включены в документ.

Они в основном встречаются в комментариях, поэтому они не портят оригинальный файл. Пример настроек, специфичных для вкладок:

/* ex: set tabstop=8 expandtab: */

Обратите внимание, что в большинстве случаев эта команда работает, однако серверы часто настраиваются без включения modeline из соображений безопасности. Чтобы включить эту функцию, добавьте следующее в ваш $ HOME / .vimrc или в систему $ VIM / vimrc:

set modeline
23 голосов
/ 24 ноября 2008

Вы можете использовать поддержку сеанса Vim:

:mksession

Вы можете позже загрузить это, запустив vim -S Session.vim или используя source Session.vim

Существуют также дополнения vim для автоматизации загрузки / сохранения сессии

9 голосов
/ 24 ноября 2008

Вы можете сохранить свои настройки глобально, отредактировав файл .vimrc .

Vim также позволяет сохранять настройки для файла с помощью modelines

7 голосов
/ 24 ноября 2008

Вот как вы сохраняете все ваши текущие настройки в файл:

:redir > textfile.txt 
:set all 
:redir END

Если хотите, просто переименуйте этот файл в ~/.vimrc и все готово.

4 голосов
/ 24 ноября 2008

Вы можете сохранить файл как определенный тип, например, специальный формат или расширение имени файла, а затем определите автокоманду в вашем .vimrc для этого типа файла.

Я делаю это для своих make-файлов, чтобы убедиться, что у меня есть различные настройки, необходимые для определенных файлов.

Например, вот моя автокоманда dec.

if has("autocmd")
  autocmd BufRead,BufNewFile Makefile*  :set noexpandtab
  autocmd BufRead,BufNewFile mirror.conf    :set noexpandtab
  autocmd BufRead,BufNewFile *.html*    :set shiftwidth=2
  autocmd BufRead,BufNewFile diff_files :set autowrite
  autocmd BufRead,BufNewFile lbnamed*   :set ft=perl
  autocmd BufRead,BufNewFile *.t        :set ft=perl
endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...