web-dev-qa-db-fra.com

Comment coller une colonne de texte après une autre colonne de texte dans Vim?

J'ai deux colonnes pleines de texte et je veux les mettre côte à côte. Par exemple, j'ai

abc
def
ghi

et

123
456
789

et je veux

123 abc
456 def
789 ghi

Tout ce que je peux trouver, c'est comment coller la ligne même à la fin de chaque ligne d'une colonne. Je n'arrive pas à comprendre comment coller un bloc de texte de plusieurs lignes à la fin d'une autre colonne.

57
Lily Ballard

Utilisez le bloc visuel (ctrl-v) pour couper la colonne de lettres. Puis déplacez vers la première ligne de la colonne numéro. Aller à la fin et faire un espace. Ensuite, collez la colonne de lettres.

49
clime

Je me demandais pourquoi le "mode bloc visuel" ne fonctionnait pas pour moi. La clé est de yank (ou supprimer) en mode visuel.

Je me trouve dans l'obligation de copier des éléments de colonnes Excel ayant des longueurs variables. Voici comment je le fais:

Names
Donald Knuth
Sebastian Thrun
Peter Norvig
Satoshi Nakamoto

Age
100
50
60
45

Disons que vous voulez mettre la deuxième colonne après la première. 

  1. Tirez en mode visuel:
    • Déplace le curseur au début de Age
    • Appuyez sur Ctrl + v pour passer en mode visuel
    • Déplacez le curseur sur 5 dans 45
    • Appuyez sur y pour tirer (ou d pour supprimer)

Vous avez maintenant tiré en mode visuel.

  1. Coller (en mode normal)

    • Déplacez-vous à la fin de la première ligne et ajoutez plus d'espaces, car il est plus court que la deuxième ligne par exemple. Si vous collez un "bloc" sans ajouter d'espaces supplémentaires, le "run" sera écrasé dans Sebastian Thrun.

    • Maintenant que vous êtes sur la première ligne, insérez quelques espaces après le dernier caractère. Assurez-vous de ne pas être en mode insertion et appuyez sur p pour coller le bloc. (Si vous voulez coller en mode insertion, utilisez ctrl+r ")

enter image description here

56
Abdo

Tu as:

abc
def
ghi

123
456
789

Déplacez votre curseur sur la a. Puis CTRL+V et déplacez votre curseur sur i. Appuyez sur y.

Ensuite, ajoutez un espace après le caractère 3 et appuyez sur p.

Terminé.

15
Matej

Si vous êtes sur un Mac et que vous ne pouvez pas comprendre pourquoi la pâte insère le bloc dans de nouvelles lignes, c'est que vous utilisez le système de collage.

Pas de problème, il suffit de tirer/coller avec des tampons:

  1. Ctrlv - sélectionnez ce que vous voulez tirer
  2. "lettrey - yank dans le tampon letter
  3. Allez où vous voulez coller
  4. "lettrep - coller depuis le tampon letter

Assurez-vous que letter n’est pas + car c’est le tampon système de la carte graphique et il aura donc le même effet.

4
Qix

Cela peut sembler évident, mais si vous collez depuis un tampon copié de manière externe, cela ne fonctionnera pas uniquement avec le collage en mode visuel. Ce que vous pouvez faire est d’abord faire une pâte normale dans une zone vide et couper/coller verticalement en utilisant la méthode ci-dessus.

3
Andrei Pokrovsky

Si vous souhaitez définir manuellement le type de registre à dire en mode bloc, utilisez cette commande. 

:call setreg(0, getreg(0), 'b')

ou

:call setreg('*', getreg('*'), 'b')

Utile pour coller une colonne à partir d'un éditeur de feuille de calcul.

Voir :help setreg et vimtip pour plus de détails.

0
nullp