web-dev-qa-db-fra.com

Stockage des paramètres Vim avec un document

Existe-t-il un moyen d'enregistrer l'état des paramètres de vim avec un document?

Pour clarifier: je modifie un document et je change un tas de paramètres. Je ne me rappelle pas nécessairement lequel; et je ne veux plus utiliser ces paramètres, sauf pour le document actuel. Je ne veux pas essayer de me rappeler manuellement ce que j'ai changé; ou quelles sont les abréviations magiques pour les paramètres que j'ai modifiés. Je veux juste avoir, disons, pour "mydoc.txt", un fichier "mydoc.vim" qui me remet là où je me suis arrêté, et le fichier de paramètres serait enregistré automatiquement en fonction d'un paramètre vim, disons, ou peut-être d'un ctrl-key le fait avant de quitter. Il serait utile que vim puisse rechercher automatiquement un tel fichier.

Et il serait préférable de ne pas avoir à modifier les paramètres dans et hors du document lui-même.

52
dkretz

Vous pouvez utiliser le support de session de Vim:

:mksession

vous pouvez ensuite le charger en exécutant vim -S Session.vim, ou en utilisant source Session.vim

Il existe également des compléments vim pour automatiser le chargement/sauvegarde des sessions

23
Hasturkun

Oui, les paramètres vim peuvent être inclus dans le document.

Ils se trouvent principalement dans les commentaires, de sorte qu'ils ne gâchent pas le fichier d'origine. Un exemple de paramètres spécifiques aux onglets est:

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

Notez que cette commande fonctionne dans la plupart des cas, cependant, les serveurs sont souvent configurés sans que modeline soit activé pour des raisons de sécurité. Pour activer cette fonctionnalité, ajoutez ce qui suit dans votre $ HOME/.vimrc ou le système $ VIM/vimrc:

set modeline
110
ypnos

Vous pouvez enregistrer vos paramètres globalement en modifiant votre fichier . Vimrc .

Vim vous permet également d'enregistrer les paramètres par fichier en utilisant modelines

9
Matthewd

Voici comment enregistrer tous vos paramètres actuels dans un fichier:

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

Si vous le souhaitez, renommez simplement ce fichier en ~/.vimrc et vous partez.

7
Harley Holcombe

Vous pouvez peut-être enregistrer le fichier sous un type particulier, par exemple format ou extension de nom de fichier spécial, puis définissez une autocommande dans votre .vimrc pour ce type de fichier.

Je fais cela pour mes makefiles pour m'assurer d'avoir les différents paramètres dont j'ai besoin pour des fichiers spécifiques.

Par exemple, voici mon dec de l'autocommande.

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
4
Rob Wells