Logo journal du hacker middle
  1. 4
  1.  

  2. 1

    Comme dit dans les commentaires, il vaut mieux modifier son propre vimrc plutôt que le fichier defaults.vim qui sera écrasé à la prochaine mise à jour.

    Les manpages disent ça à propos de mouse :

    The mouse can be enabled for different modes:
            n   Normal mode
            v   Visual mode
            i   Insert mode
            c   Command-line mode
            h   all previous modes when editing a help file
            a   all previous modes
            r   for |hit-enter| and |more-prompt| prompt
        Normally you would enable the mouse in all four modes with:
            :set mouse=a
        When the mouse is not enabled, the GUI will still use the mouse for
        modeless selection.  This doesn't move the text cursor.
    
        See |mouse-using|.  Also see |'clipboard'|.
    
        Note: When enabling the mouse in a terminal, copy/paste will use the
        "* register if there is access to an X-server.  The xterm handling of
        the mouse buttons can still be used by keeping the shift key pressed.
        Also see the 'clipboard' option.
    

    L'idée de ce contournement apparemment, c'est donc de désactiver le support souris sauf pour les prompt. Du coup le copier/coller (par exemple en mode insertion) fonctionne à travers le « relais » de l'émulateur de terminal. Mais ça ne nous aide pas à comprendre pourquoi depuis Debian 9 ça ne fonctionne plus. D'après ce que je comprends, vim ne peut plus accéder au clipboard Xorg ?

    Les manpages font référence à Xorg, peut-on espérer un jour des adaptations pour copier-coller avec Wayland en ayant le mode souris activé ?

    1. 2

      Si mon souvenir est bon, sous Debian et dérivées il suffit de créer un fichier /etc/vim/vimrc.local pour la config perso, ce qui évite qu'elle se fasse écrabouiller par une mise à jour.

      Sur ma KDE neon (dérivée d'Ubuntu) ça ressemble à ça.

      https://github.com/kikinovak/kde-neon/blob/master/config/vim/vimrc.local

      1. 1

        Effectivement, comme le dit kikinovak, on peut créer un /etc/vim/vimrc.local pour avoir une configuration spécifique globale, ou comme dit dans les commentaires de l'article, on peut aussi mettre ce qu'on veut dans le ~/.vimrc pour avoir une configuration spécifique à un utilisateur. Dans tous les cas, dès qu'il est possible de ne pas toucher les fichiers gérés par les paquets, je ne les modifie pas. Ça permet d'éviter des conflits lors de mises à jour, ou simplement de regrouper ses modifications spécifiques pour les retrouver plus facilement. En cas de problème après une mise à jour, c'est plus facile de désactiver tout ce qu'on a changé d'un coup pour voir si le problème vient de nos modifications : il suffit de renommer le fichier spécifique.

        Pour détailler ce qui se passe : Avant Debian 9, le support de la souris n'était pas activé par défaut, donc la sélection faite à la souris était faite par l'émulateur de terminal. Maintenant, le support de la souris est activé dans vim, et donc c'est vim qui capture les événements de la souris : La sélection est maintenant faite par le visual mode de vim.

        La solution de désactiver le support de la souris dans vim est simple, mais pas idéale. On peut aussi sélectionner avec shift+clic, pour forcer l'émulateur de terminal à gérer la sélection, sans désactiver le support de la souris de vim. Dans ces deux cas, la sélection prendra en compte les numéros de lignes, marques de folding, etc. si c'est activé, ce qui est loin d'être idéal. Une autre solution est d'utiliser le support du clipboard de X dans vim, avec "y une fois le texte sélectionné (en visual mode, évidemment, c'est vim qui doit gérer la sélection dans ce cas).