Question

Je me demandais si cette fonctionnalité commune de l'EDI est disponible.

Supposons que j'ouvre plusieurs fichiers avec Vim, avec vsplit et split. Ensuite, je ferme tout.

Le lendemain, je souhaite récupérer ces fichiers. En d’autres termes, récupérez la manière dont ils ont été ouverts, sans avoir à rouvrir chacun d’entre eux (en utilisant mksession! et source).

Est-ce possible?

MISE À JOUR:

À l'aide des commandes .vimrc et <=>, les commandes de mappage dans le fichier <=>, existe-t-il un moyen de paramétrer les mappages afin d'écrire un fichier spécifique?

par exemple:

map <F2> :mksession! ~/vim_session @INSERT_HERE<cr> "Save session to @INSERTHERE file

Merci d'avance

Était-ce utile?

La solution

Vous pouvez mapper à l'aide de: mksession et: source sur un jeu de clés pour une sauvegarde et une restauration faciles. Voici un exemple de mon .vimrc qui utilise F2 et F3:

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

Autres conseils

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

  

Une session conserve les vues pour tous   fenêtres, ainsi que les paramètres globaux.   Vous pouvez enregistrer une session et lorsque vous   restaurez plus tard la disposition de la fenêtre   semble pareil. Vous pouvez utiliser une session   pour basculer rapidement entre différents   projets, chargeant automatiquement le   les fichiers sur lesquels vous travailliez pour la dernière fois dans cette   projet.

Vous pouvez envisager d’utiliser l’écran GNU . En bref: c'est un gestionnaire de fenêtres en 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 reconnecter la session et continuer à travailler.

La meilleure approche que j’ai trouvée est d’utiliser le plugin 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, listées, ...

Je l'utilise depuis plusieurs mois maintenant; fortement recommandé.

Ce livre pourrait vous intéresser:

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

C’est l’une des premières choses qu’ils vous montrent comme exemple de l’excellence de Vim. ;)

De plus, <cr> 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 si vous n'utilisez pas la version modifiée faite par andrew sur vim_use (et même alors, ce n'est que partiellement compatible).

Ma solution est la suivante, mettez-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 <C-O> source ~/.session_
cnoremap <C-S> mksession! ~/.session_
nnoremap <silent> <C-S><C-S> :mksession! ~/.session_ <CR>

Cela semble plus complexe, mais très utile si vous avez plusieurs sessions à enregistrer et à charger.

P.S.
Ici, j’adopte les raccourcis <Ctrl-S> et <Ctrl-O> bien connus pour enregistrer et charger des sessions. IMHO, c'est plus confortable que de tendre la main vers <Fn> la clé. ; -)

Je suggère d'utiliser vim-obsession . Il est bien meilleur que le réglage par défaut mksession car il reste en dehors de votre travail tout en faisant ce que vous voulez.

Basé sur la réponse de hgmnz et développement pour la mise à jour.

Vous pouvez supprimer le <cr> mappage, ce qui vous mettra en mode commande pour terminer la commande.

map <F2> :mksession! ~/<will stop here and you can type>

Lorsque vous passez en mode commande, vous pouvez taper% puis appuyer sur tab et le chemin absolu du fichier en cours de développement, vous pouvez aussi taper%: p: h et appuyer sur tab pour passer au répertoire du fichier en cours.

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

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

Soyez également prudent avec le rechargement des sessions car il décharge tous les tampons actuellement chargés ( http: //vimdoc.sourceforge.net/htmldoc/starting.html#%3Amksession )

  
      
  1. Décharge tous les tampons actuellement chargés.
  2.   
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top