Forum Astuces.divers besoin d'un ou deux conseils pour VIM

Posté par  .
Étiquettes :
3
11
déc.
2012

Salut,

je suis de plus en plus adepte de vim. Je suis encore loin de le maîtriser à fond, mais déjà plus productif qu'avec nano ou Gedit. Une ou deux choses me posent encore problème.
j’espère que vous pourrez m'aidez :

quel est la meilleure méthode pour sélectionner tout le document ? (l'équivalent de ctrl-a pour les gens normaux)

est-il possible de faire des copier-coller depuis vim vers une autre app ?
J'arrive à copier vers vim en mode insertion avec MAJ+CTRL+V

Merci

  • # une ou deux réponses

    Posté par  . Évalué à 2.

    pour tout sélectionner :
    – tu te mets tout en haut du document : gg
    – passe en mode « visuel ligne » : shift+V
    – vas tout en bas : G

    pour les copier-coller : c'est un peu galère. Le sélectionner/copier avec le clic du milieu peut fonctionner, à condition de virer la gestion de la souris (:set mouse=)

    • [^] # Re: une ou deux réponses

      Posté par  . Évalué à 4.

      J'ajouterai que la souris dans ViM, elle est tellement pas pratique, que je préfère ne jamais l'avoir.

      Autrement, sur le tout sélectionner, outre ce qui est dit plus haut, géneralement c'est pour en faire qqch, alors autant le faire directement sans sélectionner.

      Par exemple pour copier l'intégralité :

      • gg (début)
      • y (yank)
      • G (bas)

      Soit en version courte ggyG.

      De même pour tout effacer ggdG, pour tout indenter gg=G, pour rewrapper les lignes (si textwidth est défini) gggqG.

      Bref, en fait c'est rare qu'on ai vraiment besoin de sélectionner, même si des fois c'est bien pratique.

      • [^] # Re: une ou deux réponses

        Posté par  (site web personnel) . Évalué à 6.

        pourquoi quitter l'emplacement où est le curseur ?

        :1,$ y

        et zou ;-) (bon après, ce n'est que pour coller dans vi, ça ne passe pas dans le presse-papier pour coller dans gedit par exemple).

        • [^] # Re: une ou deux réponses

          Posté par  . Évalué à 0.

          Et en un peu plus court:
          :%y

          Et pour le copier/coller, dans mon .vimrc, j'ai mis set clipboard=unnamedplus.
          Avec avec ça vim utilise le "presse-papier" (ctrl-c/ctrl-v dans les autres applis) par défaut.
          Donc je copie dans vim (yy) et je colle directement ailleurs (ctrl-v), et ça marche aussi dans l'autre sens.

          Pour plus d'infos sur ce paramètre: :help 'clipboard'

        • [^] # Re: une ou deux réponses

          Posté par  . Évalué à 1.

          bon après, ce n'est que pour coller dans vi, ça ne passe pas dans le presse-papier pour coller dans gedit par exemple

          Pour ça, il faut utiliser le registre « * » (et que vim soit compilé avec la bonne option). Un coup de « gg"*yG » et c'est dans le presse papier.

          Plus d'infos ici.

          Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # Facile !

    Posté par  (site web personnel) . Évalué à 2.

    Avec vim, tout est facile !

    Sélection de fichier

    Pour sélectionner le fichier en entier, il faut aller au début, entrer en mode sélection, et aller à la fin. Ça se traduit par :

    ggvG

    Attention, avec ça tu ne sélectionneras que le premier caractère de la dernière ligne. Tu peux donc aller à la fin de la ligne ou, plus simplement, faire les mêmes mouvements en entrant en mode sélection de ligne au lieu de sélection simple :

    gg<C-v>G

    Copier-coller

    Le copier-coller était une vraie plaie, mais je viens tout juste de tomber (grâce à toi, merci) sur le vimtip qui va bien, où on t'explique que le registre " dans vim correspond au presse-papiers système de sélection, et le registre + de vim correspond au presse-papiers X11 de copier-coller. Puisque tu apprends vim (félicitations !), je te laisse pour exercice la manipulation des registres =]

    Le premier correspond au presse-papiers que tu as lorsque tu surlignes du texte (ce texte est alors automatiquement "copié"); tu peux ensuite le coller où tu veux en cliquant sur la molette. Le deuxième correspond au plus traditionnel <C-c>/<C-v>.

    Sinon, si ça ne marche pas (la page indique quelques problèmes avec Mac OSX et Windows), tu peux utiliser xclip conjointement avec ces deux raccourcis :

    vmap <C-b> y:call system("xclip -i -selection clipboard", getreg("\""))<CR>:call system("xclip -i", getreg("\""))<CR>
    nmap <C-g> :call setreg("\"",system("xclip -o -selection clipboard"))<CR>p
    
    

    <C-b> te servira à coller ce qu'il y a dans ton presse-papiers sélection dans vim, et <C-g> fera l'inverse.

    • [^] # Re: Facile !

      Posté par  . Évalué à 2. Dernière modification le 11 décembre 2012 à 20:39.

      en mode sélection de ligne au lieu de sélection simple :

      gg<C-v>G 
      

      Tu viens de confondre le visuel ligne V, et le visuel block C-v

    • [^] # Re: Facile !

      Posté par  . Évalué à -1.

      Merci, je regarderai du coté des registres…

  • # Copier/Coller à la souris

    Posté par  (site web personnel) . Évalué à -2.

    Tu sélectionnes la zone qui te plaît à la souris en appuyant sur shift, puis tu utilises la fonction copier de ton terminal.

    Pour coller tu as déjà trouvé il faut utiliser la fonction coller de ton terminal, Ctrl-Shift-v dans ton cas qui semble être gnome-terminal.

  • # Copie dans le "presse-papier"

    Posté par  (site web personnel) . Évalué à 0.

    La plupart du temps le presse-papier c'est le buffer + dans vim.

    Donc gg"+yG met tout le fichier dans le presse papier.

    Après on peut faire le classique ^V dans une autre appli.

    • [^] # Re: Copie dans le "presse-papier"

      Posté par  . Évalué à 0.

      Merci,

      effectivement, ca fonctionne parfaitement avec le registre + chez moi
      Le lien de rakoo donne quelques infos pour savoir si votre version de vim supporte le presse papier X11

      • [^] # Re: Copie dans le "presse-papier"

        Posté par  (site web personnel) . Évalué à 0.

        pour les debianneux/ubuntiste => il faut installer vim-gnome pour bénéficier de ces fonctionalités

        • [^] # Re: Copie dans le "presse-papier"

          Posté par  . Évalué à 1.

          Ou vim-gtk pour moins de dépendances.

          Et pour RHEL/Fedora, c'est vim-X11.

          Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.