[Vim] Garder les fenêtres ouvertes ?

Résolu
Bonjour,

Je suis sous Debian Etch et j'écris, compile et lance mes prog C++ avec
Vim 7. J'utilise beaucoup les fenêtres/onglets mais le pb c'est que si par ex j'ai
plusieurs fenêtres/onglets ouverts dans Vim et que je lance mon prog (:!./monprog)
lorsque je ferme mon prog et que je reviens dans Vim, toutes les fenêtres/onglets
ont disparus et je n'ai plus que la fenêtre avec laquelle j'ai lancé mon prog.

Comment faire pour que les fenêtres/onglets restent ouvertes ?
Faut-il faire un script ? Modifier vimrc ?

Merci d'avance
Configuration: Windows XP
Firefox 2.0.0.9

7 réponses

  1. Merci beaucoup pour ton aide.
    Je vais jeter un coup d'oeil à tes fichiers de config, mais à priori ils n'ont pas l'air
    très différents des miens. C'est curieux que tu ne perde pas les onglets en appelant
    une commande shell. En fait c'est surement moi qui ai un pb dans ma config mais je
    vois pas où.

    Je crois que finalement je vais radicalement changer ma façon d'utiliser Vim en
    laissant tomber les onglets et les fenêtre et en utilisant plutôt les buffers.
    Je teste ça depuis hier et ça m'a l'air pas mal. Tous les pb que j'ai pu avoir
    avec les fenêtres ou les onglets n'existe pas avec les buffers. C'est juste une
    autre façon de voir l'édition de fichiers. Il faut s'y habituer c'est tout ;-)
    A suivre...
    1. Modérateur
      Je ne connaissais pas les onglets mais personnellement je ne les perds pas en appelant une commande shell. J'utilise cette version (sous debian lenny) :
      (mando@aldur) (~) $ dpkg -l | grep vim
      ii  vim                               1:7.1-056+2                      Vi IMproved - enhanced vi editor
      ii  vim-common                        1:7.1-056+2                      Vi IMproved - Common files
      ii  vim-runtime                       1:7.1-056+2                      Vi IMproved - Runtime files
      ii  vim-tiny                          1:7.1-056+2                      Vi IMproved - enhanced vi editor - compact v

      Mon ~/.vimrc
      syn on
      set bg=dark
      set ts=4
      set sw=4
      set cindent
      set ai
      set hls

      Mon /etc/vim/vimrc :
      " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
      " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
      " you can find below.  If you wish to change any of those settings, you should
      " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
      " everytime an upgrade of the vim packages is performed.  It is recommended to
      " make changes after sourcing debian.vim since it alters the value of the
      " 'compatible' option.
      
      " This line should not be removed as it ensures that various options are
      " properly set to work with the Vim-related packages available in Debian.
      runtime! debian.vim
      
      " Uncomment the next line to make Vim more Vi-compatible
      " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
      " options, so any other options should be set AFTER setting 'compatible'.
      "set compatible
      
      " Vim5 and later versions support syntax highlighting. Uncommenting the next
      " line enables syntax highlighting by default.
      "syntax on
      
      " If using a dark background within the editing area and syntax highlighting
      " turn on this option as well
      "set background=dark
      
      " Uncomment the following to have Vim jump to the last position when
      " reopening a file
      "if has("autocmd")
      "  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
      "    \| exe "normal g'\"" | endif
      "endif
      
      " Uncomment the following to have Vim load indentation rules according to the
      " detected filetype. Per default Debian Vim only load filetype specific
      " plugins.
      "if has("autocmd")
      "  filetype indent on
      "endif
      
      " The following are commented out as they cause vim to behave a lot
      " differently from regular Vi. They are highly recommended though.
      "set showcmd        " Show (partial) command in status line.
      "set showmatch      " Show matching brackets.
      "set ignorecase     " Do case insensitive matching
      "set smartcase      " Do smart case matching
      "set incsearch      " Incremental search
      "set autowrite      " Automatically save before commands like :next and :make
      "set hidden             " Hide buffers when they are abandoned
      "set mouse=a        " Enable mouse usage (all modes) in terminals
      
      " Source a global configuration file if available
      " XXX Deprecated, please move your changes here in /etc/vim/vimrc
      if filereadable("/etc/vim/vimrc.local")
        source /etc/vim/vimrc.local
      endif

      Mon /etc/vim/vimrc.tiny
      " Vim configuration file, in effect when invoked as "vi". The aim of this
      " configuration file is to provide a Vim environment as compatible with the
      " original vi as possible. Note that ~/.vimrc configuration files as other
      " configuration files in the runtimepath are still sourced.
      " When Vim is invoked differently ("vim", "view", "evim", ...) this file is
      " _not_ sourced; /etc/vim/vimrc and/or /etc/vim/gvimrc are.
      
      " Debian system-wide default configuration Vim
      set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/@VIMCUR@,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
      
      set compatible
      
      " vim: set ft=vim:

      Je n'ai pas de /etc/vim/vimrc.local

      Bon sinon je préfère les fonctionnalités de konsole pour les onglets (j'y suis plus habituée et je trouve les raccourcis plus logiques) mais c'est intéressant. A noter que le terminal gnome permet de faire pareil (mais les raccourcis sont différents). Une autre piste si tu es en mode texte c'est d'utiliser un screen, et d'ouvrir plusieurs shell dans ce screen.

      Bonne chance

      1. Hum moi je ne suis pas sûr de comprendre ce que tu appelles des onglets. Pour moi il est possible de splitter vim :
        :sp fichier2
        :vs fichier3
        et de passer d'une sous fenêtre à l'autre (ctrl w w, ctrl w + une flèche directionnelle) et de lancer une commande shell sans perdre les splits.


        Oui je connais le principe des fenêtres dans Vim, c'est d'ailleurs ce que j'explique dans mon
        précédent post. J'ai testé avec les fenêtres et ça marche bien.


        Bref qu'appelles-tu des onglets ?


        C'est spécifique à Vim 7 (ça n'existait pas dans les version précédente).
        http://erixpage.free.fr/blog/index.php?2006/04/10/31-essayez-la-beta-de-vim-70


        Pour ma part je travaille avec des splits et dans un terminal à plusieurs onglets (la konsole de KDE).
        - Pour créer un onglet : ctrl shift n
        - Pour changer d'onglet : shift flèche gauche / droite
        - Pour déplacer l'onglet courant : ctrl shift flèche gauche / droite


        Ah oui, c'est intéressant, je connaissais pas.

        Bon, je vais peut être laisser tomber les onglets (snif) parce que même dans le google group de Vim je
        n'ai pas obtenu de réponse. C'est possible aussi que je m'y prenne mal (je n'utilise Vim que depuis 2/3 mois)
        ce qui expliquerait ce genre de pb.

        Mais si quelqu'un a une piste qu'il n'hésite pas.
        1. Modérateur
          Hum moi je ne suis pas sûr de comprendre ce que tu appelles des onglets. Pour moi il est possible de splitter vim :
          :sp fichier2
          :vs fichier3

          et de passer d'une sous fenêtre à l'autre (ctrl w w, ctrl w + une flèche directionnelle) et de lancer une commande shell sans perdre les splits. Bref qu'appelles-tu des onglets ?

          Pour ma part je travaille avec des splits et dans un terminal à plusieurs onglets (la konsole de KDE).
          - Pour créer un onglet : ctrl shift n
          - Pour changer d'onglet : shift flèche gauche / droite
          - Pour déplacer l'onglet courant : ctrl shift flèche gauche / droite

          En espérant t'avoir aidé...

          Bonne chance

          1. je retire !
            je pense avoir compris !
            pas d'idée.


            Hein ???? J'ai dû rater un épisode là ! ;-)

            Bref, je crois que le pb est spécifiquement lié au onglets (tab page).
            En effet, j'ai testé en ouvrant les fichiers dans des fenêtres simple (Ctrl + w + s)
            puis j'ai lancé mon prog, et de retour dans Vim les fenêtres étaient toujours
            là. C'est embêtant car je trouve le système des onglets vraiment pratique.
            Quelqu'un aurait-il une idée de la nature du pb ?