Vi / Vim restaure les fichiers ouverts

Je me demandais si cette fonctionnalité IDE commune est disponible.

Supposons que j’ouvre de nombreux fichiers en utilisant Vim, en utilisant vsplit et split . Ensuite, je ferme tout.

Le lendemain, je veux récupérer ces fichiers. C’est-à-dire récupérer la manière dont ils ont été ouverts, sans avoir à ouvrir chacun (en utilisant split et vsplit ) à nouveau.

Est-ce possible?

METTRE À JOUR:

Utiliser mksession! et les commandes source commandes de mappage dans le fichier .vimrc , existe-t-il un moyen de paramétrer les mappages pour écrire un fichier spécifique?

par exemple:

 map  :mksession! ~/vim_session @INSERT_HERE "Save session to @INSERTHERE file 

Merci d’avance

Vous pouvez mapper en utilisant: mksession et: source vers un ensemble de clés pour une sauvegarde et une restauration faciles. Voici un exemple de mon .vimrc qui utilise F2 et F3:

 map  :mksession! ~/vim_session  " Quick write session with F2 map  :source ~/vim_session  " And load session with F3 

Regardez la commande :mksession pour créer une session :

Une session conserve les vues pour toutes les fenêtres, plus les parameters globaux. Vous pouvez enregistrer une session et lorsque vous la restaurez ultérieurement, la disposition de la fenêtre est identique. Vous pouvez utiliser une session pour basculer rapidement entre différents projets, en chargeant automatiquement les fichiers sur lesquels vous travailliez en dernier dans ce projet.

Vous pouvez envisager d’utiliser l’ écran GNU . En bref: c’est un gestionnaire de fenêtre de ligne de commande qui permet à un utilisateur d’accéder à plusieurs sessions de terminal distinctes au sein d’une même session de terminal. Le principal avantage pour moi est que vous pouvez détacher la session, fermer la fenêtre de votre terminal, puis attacher à nouveau la session et continuer à travailler.

La meilleure approche que j’ai trouvée consiste à utiliser le plug-in vim-session, http://github.com/xolox/vim-session, qui peut être installé en ajoutant:

 Plugin 'xolox/vim-session' 

à votre .vimrc, suivi de:

 :PluginInstall 

Ce plugin prend en charge plusieurs sessions: vous identifiez une session par son nom, puis vous la gérez avec ce nom. Les sessions peuvent être ajoutées, supprimées, mises à jour, répertoriées, …

Je l’utilise depuis plusieurs mois maintenant; hautement recommandé.

Vous pourriez être intéressé par ce livre:

http://www.swaroopch.com/notes/Vim#Download

C’est l’une des premières choses qu’ils vous montrent comme un exemple de la qualité de Vim. 😉

Aussi, signifie Carriage Return.

SessionMan http://www.vim.org/scripts/script.php?script_id=2010 offre des fonctionnalités plus faciles. Soyez prudent avec miniBufExplorer. C’est incompatible à moins que vous n’utilisiez la version modifiée faite par Andrew sur vim_use (et même alors, il n’est que mi-compatible)

Ma solution est comme ci-dessous, placez-les dans le fichier .vimrc. HTH.

 " session related. " Default session is located `~/.session_'. The suffix `_' is a dirty " solution, just like the one-element tuple `(tuple_eliment,)' in Python.. cnoremap  source ~/.session_ cnoremap  mksession! ~/.session_ nnoremap   :mksession! ~/.session_  

Semble être plus complexe, mais très utile si vous avez plusieurs sessions à enregistrer et à charger.

PS
J’adopte ici les familiers et pour enregistrer et charger des sessions. IMHO, cela est plus confortable que de tendre la main à la . 😉

Je suggère d’utiliser vim-obsession . C’est bien mieux que la mksession par défaut car elle rest en dehors de votre travail tout en faisant ce que vous voulez.

Basé sur la réponse de hgmnz et en expansion pour la mise à jour.

Vous pouvez supprimer le du mappage et cela vous mettra en mode commande pour terminer la commande.

 map  :mksession! ~/ 

Lorsque vous passez en mode de commande, vous pouvez taper%, puis appuyer sur la touche tab et le fichier affichera le chemin absolu du fichier actuel. Vous pouvez également taper%: p: h et appuyer sur tab pour développer le répertoire du fichier actuel.

Vous pouvez également enregistrer chaque session dans le répertoire de travail et, en utilisant les répertoires de mémoire tampon locaux, vous pouvez avoir plusieurs sessions pour les répertoires de travail.

 map  :mksession! ./.vim_sessions  " Will save session to current buffers directory. map  :source ./.vim_sessions  :lcd " Changes the current's buffer directory 

Soyez également prudent avec le rechargement de sessions car il décharge toutes les mémoires tampon chargées ( http://vimdoc.sourceforge.net/htmldoc/starting.html#%3Amksession )

  1. Décharge tous les tampons actuellement chargés.