URL: https://linuxfr.org/forums/linux-general/posts/editeur-gvim-probl%C3%A8me-concernant-la-restauration-de-la-sessi Title: [Editeur / gVim] Problème concernant la restauration de la session précédente Authors: orax Date: 2009年05月14日T22:44:18+02:00 Tags: Score: 0 Bonjour, en gros je voudrais que gvim réagisse un peu comme Notepad++ sous Windows ou comme d'autres éditeurs, c'est à dire qu'il garde la session en mémoire et que lorsque j'ouvre un nouveau fichier, qu'il m'affiche la session précédente ainsi que le nouveau fichier dans le buffer/onglet/fenêtre actif. J'ai trouvé un script qui correspond en partie, sur ce site [[http://vim.wikia.com/wiki/Working_with_multiple_sessions](http://vim.wikia.com/wiki/Working_with_multiple_sessions)], que j'ai adapté pour Windows (car j'utilise actuellement gvim sous Win XP) pour qu'il m'ouvre automatiquement la dernière session (sans afficher de message). ==> Mais j'ai encore un problème. J'aimerais que lorsque je lui spécifie un argument, par exemple lorsque j'exécute 'gvim.exe NOM_DU_FICHIER', il faudrait qu'il m'affiche automatiquement le fichier NOM_DU_FICHIER dans le buffer actif ou éventuellement dans un onglet (ce que j'arrive à faire avec ':buffer 1' d'après ce que j'ai vu, mais je voudrais que ce soit automatique au lancement de gvim). Voici le script que j'utilise actuellement sous Win XP (g:PathToSessions a été modifié) : au VimLeave * call VimLeave() au VimEnter * call VimEnter() let g:PathToSessions = $HOME . "\\vimfiles\\sessions\\" let g:FichierSession = "DerniereSession.vim" function! VimEnter() £spaces£ £/spaces£" gvim started with no files £spaces£ £/spaces£if has("browse") == 1 £spaces£ £/spaces£let g:SessionFileName = g:PathToSessions . g:FichierSession £spaces£ £/spaces£if g:SessionFileName != "" £spaces£ £/spaces£exe "source " . g:SessionFileName £spaces£ £/spaces£endif £spaces£ £/spaces£else £spaces£ £/spaces£" For non-gui vim £spaces£ £/spaces£exe "source " . g:PathToSessions . g:FichierSession £spaces£ £/spaces£endif endfunction function! VimLeave() £spaces£ £/spaces£exe "mksession! " . g:PathToSessions . g:FichierSession £spaces£ £/spaces£if exists("g:SessionFileName") == 1 £spaces£ £/spaces£if g:SessionFileName != "" £spaces£ £/spaces£exe "mksession! " . g:SessionFileName £spaces£ £/spaces£endif £spaces£ £/spaces£endif endfunction " A command for setting the session name com -nargs=1 SetSession :let g:SessionFileName = g:PathToSessions . . ".vim" " .. and a command to unset it com -nargs=0 UnsetSession :let g:SessionFileName = ""