Comment faire pour sauvegarder et restaurer plusieurs sessions différentes dans Vim?
Selon ma tâche dans Vim, j'ai plusieurs onglets ouverts.
Comment puis-je enregistrer des sessions pour les utiliser plus tard?
- Je pense que ppl se sentir plus à l'aise de trouver la question ici (avec la police de grande taille, grande mise en forme...) que sur un vieux forum d'école ou d'un terminal de documentation, ou, à dieu ne plaise, un
man
page - Il n'y a pas beaucoup de mise en forme qu'il soit. Et vous pouvez modifier la police dans Vim 🙂
- Personnellement, j'ai toujours été effrayé par l'homme pages b/c ils n'ont pas suffisamment de choses stupides vers le bas. Un peu comme tout le reste dans linux, il a une courbe d'apprentissage abrupte.
- Eh bien, tout ce qui vous convient le mieux ...
- Je pense qu'il vous manque le point entre le collectif de l'intelligence de nous, de google, et le débordement de la pile de la métaconnaissance de gestion - c'est tout simplement une meilleure façon d'obtenir vos réponses - ce que vous avez besoin, pas d'une longue liste de ésotériques options, aussi que cette page illustre une expérience du monde réel de pièges, et souvent vraiment chouette raccourcis pour rendre votre vie plus facile. Ceci s'applique également à presque n'importe quel manuel, que j'ai regardé (sauf peut-être le php manual en ligne). Viva stackoverflow!
- et les gens peuvent utiliser pour référence future, puisque quelqu'un d'autre pourrait avoir besoin.
- Je pense que ces questions sont réels dans le sens, que vim débutant ne sait pas beaucoup de choses sur le système d'aide et comment l'utiliser, mais si elles obtiennent plus chevronnés, ils sauront trouver leur chemin dans vim.
- Je n'ai pas trouver cette question par la recherche de "sauvegarde d'une session", mais par googler comment sauver un tas d'onglets ouverts. J'ai utilisé les sessions avant, mais j'ai eu un blocage mental sur ce que vous recherchez, et vim de l'aide n'est pas vraiment utile si vous ne savez ce que vous voulez faire et ne pas exactement ce à quoi il est appelé.
- C'est un vieux débat, mais mon de 0,02 $ - grande à fournir des réponses à des cas d'utilisation, soutenue par une
man
de référence où l'on peut apprendre les détails du pourquoi, et comment il allait s'adapter à quelque chose de légèrement différent. - Autosave / autoload version: stackoverflow.com/questions/5142099/...
Vous devez vous connecter pour publier un commentaire.
Vous voulez quelque chose comme
Puis plus tard, vous pouvez source vim fichier et vous aurez votre ancien session:
ou ouvrir vim avec l'option-S:
nmap <leader>s :source $HOME/mysession.vim<CR>
:help session
pour obtenir de l'aide, ou de regarder vimdoc.sourceforge.net/htmldoc/starting.html#session-fileSession.vim
. Donc, si vous voulez avoir une seule session enregistré dans votre répertoire courant, vous pouvez utiliser:mksession
ou:mks
de vim pour enregistrer votre session actuelle, et justevim -S
à ouvrir vers le haut.colorscheme
j'ai mis dans mon .fichiers vimrc. Je contourner cela en tapantcolor <colorscheme>
ensuite, mais je souhaite qu'il y ait plus de solution pratique.Vous pouvez définir ces options de session dans votre vimrc. Notamment des options est ennuyeux quand vous avez changé votre vimrc après que vous avez enregistré la session.
Noter que :mksession ne sera pas enregistrer les modifications sur les fichiers que vous avez fait. J'ai fait cette erreur de fermeture de vim après l'enregistrement de la session en supposant que je vais prendre à partir de là. Mais la prochaine fois, j'ai ouvert la session, les modifications que j'avais apportées aux fichiers ont disparu.
:mksession
.:wqa
:xa
Un de moins de touches. Yay!!!.vimrc
:vimrc au FocusLost * silent! wa
Ce sera automatiquement enregistrer tout le temps de la mémoire tampon perd le focus.Si vous utilisez NERDTree que votre explorateur de fichier/tableau de bord, je vous recommande xolox/vim-session plugin au lieu de :mksession de commande. Pour une raison quelconque, :mksession ne parvient pas à restaurer NERDTree tampons. Votre kilométrage peut varier, mais j'ai pensé partager mon expérience.
let g:nerdtree_tabs_open_on_gui_startup=0
etlet g:nerdtree_tabs_open_on_new_tab=0
de faire xolox/vim-session œuvres.Si vous souhaitez automatiser le processus, sans l'aide de tous les plugins, vous pouvez utiliser S'en aller et de revenir de Vim Conseils Wiki.
Chaque fois que vous quittez Vim, il va enregistrer la session en cours en vertu de
~/.vim/sessions
et la charge de nouveau une fois que Vim est ouvert. Il est également basé sur l'actuel chemin, de sorte que si vous ouvrez Vim à partir de répertoires différents, vous aurez différentes sessions, ce qui est très utile lorsque vous travaillez sur des projets différents.Il suffit d'éditer votre
~/.vimrc
fichier et ajoutez la ligne suivante:Même pour un débutant ce script est un peu facile à comprendre et à personnaliser.
Veuillez noter ce script ne fonctionnera correctement que pour les systèmes Unix (mac os/Linux), il doit être adapté pour fonctionner sur Windows.
Mise à JOUR: Ajoutant 0xc0desuggestion, vous pouvez remplacer le
VimEnter
ligne ces si vous souhaitez que Vim chargement d'une session seulement si aucun argument n'est fourni:if argc() == 0 au VimEnter * nested :call LoadSession() end
pwd
) comment puis-je définir le dernier répertoire de travail avant de quitter vim? afin de charger la dernière séance de travail plutôt qu'à la session en vertu de l'~/
?alias clearvim="/home/user/.vim/sessions`pwd`"
. Il efface la session du répertoire courantIl y a un plugin très utile pour cette tâche vim-startify qui s'occupe de beaucoup d'autres choses comme des fichiers récemment ouverts, etc, il a une interface très facile aussi.
Je l'utilise depuis quelques jours et jusqu'à maintenant son travail parfaitement. Espérons qu'il vous aide.
Il y a ce merveilleux plugin appel vim-session. C'est très puissant. Pour l'installer:
J'ai mappé sa fonctionnalité dans mon
.vimrc
fichier comme ceci:Maintenant en mode normal type
<leader>ss
et vous verrez une commande de ceDésormais ajouter le nom de votre session
et c'est tout.
Lorsque vous fermez le Vim et le rouvrir, il suffit de ne
et vous verrez que votre session est ouverte.
Il y a beaucoup d'autres de configuration pour ajouter dans votre
.vimrc
fichier, voir la documentation pour des exemples:Il y a une bonne tutoriel sur YouTube.
Puisque c'est le premier hit sur Google pour moi (et probablement d'autres) sur la façon de travailler avec les sessions dans Vim, j'ai décidé d'ajouter un peu d' @mathielo de réponse sur la façon de rendre cela automatique.
J'aime son code, mais l'ajout de la "seulement si, sans args" solution semblait être un peu défaut. C'est ma version modifiée:
Le changement notable ici est l'option remplacer. Si vous ouvrez Vim sans options, il sera ouvert à toute session existante et écraser les modifications apportées lorsque vous quittez. Si Vim est ouvert avec les options, il ne fera que créer une nouvelle session s'il n'en existe pas, cela signifie que vous pouvez ouvrir des fichiers dans un répertoire qui a une session sans l'écraser. Ensuite, vous pouvez ouvrir Vim sans options pour exécuter la session à la place. Si il n'existe pas de session puis il en crée un nouveau.
$HOME/.vim/plugin/sessions.vim
mais ce n'est pas de sauver les fichiers de session. \_(ツ)_/Merci @mathielo
L'exemple suivant de @mathielo, j'ai ajouté la ligne ci-dessous pour .vimrc pour enregistrer la session en cours (le cas échéant):
Si vous voulez mettre plus de lignes, vous devez utiliser endif:
Vous avez seulement besoin d'enregistrer une nouvelle session dans vim avec
et après commencer avec
vim sera le début de la séance et vous n'avez pas besoin d'enregistrer la session chaque fois que vous fermez vim.
Si vous n'avez pas une session active .vimrc de ne pas faire n'importe quoi. Comme avant.
C'est ce que je cherchais! Merci encore @mathielo!
:q
au lieu de:bd
... Merci !Personnellement, je ne enveloppement au Tim Pape s' Obsession plugin pour permettre la définition d'un
sessiondir
et éviter de taper le chemin d'accès:Vous pouvez stocker la session où vous le souhaitez.
Ex:
Ce magasins de la séance D entraînement.
Peut être ouvert en tapant
dans l'un des fichiers vim.
Ci-dessous est la seule conf. cela a vraiment fonctionné pour moi. Je l'ai pris de ici, où vous pouvez également prendre un plus complet/complexe version.
Si vous prévoyez d'avoir seulement 1 séance pour le projet vient de faire
qui permettra de créer une
Session.vim
fichier dans le répertoire courant, puis d'ouvrir la session (à partir du même répertoire):Si vous modifiez la session et souhaitez l'enregistrer:
Si vous prévoyez d'avoir plusieurs sessions, je préfère les enregistrer dans des fichiers cachés dans le répertoire du projet:
Pour l'ouvrir (dans le même répertoire):
Sauvegarder la session:
Étant donné que les séances sont enregistrées dans des fichiers cachés, à les voir, n'oubliez pas
-a
Pour la gestion de plusieurs sessions (par répertoire/pensions de base), j'ai récemment passé de la vim-session plugin pour vim-espace de travail. Sa gestion de session est relativement simple et fonctionne plutôt bien.