Comment puis-je coller une colonne de texte d'après une colonne de texte dans Vim?
J'ai deux colonnes plein de texte, et je veux obtenir à côté. 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 est de savoir comment coller le même ligne à la fin de chaque ligne dans une colonne. Je ne peux pas comprendre comment coller un multi-ligne du bloc de texte sur la fin d'une autre colonne.
Vous devez vous connecter pour publier un commentaire.
Utiliser visual bloc (
ctrl-v
) pour couper la lettre de la colonne. Puis passer à la première ligne de la colonne numéro. Aller à la fin et en faire un espace. Puis collez la lettre de la colonne.*
registre, ce qui signifie que le presse-papiers du système.y
etp
, si vous n'êtes pas en spécifiant un spécial avec"
."*x
, puis vous collez avec"*p
. Il ne devrait pas être tout le problème de l'aide de visual blocs. J'espère que vous avez+xterm_clipboard
"incompiled".:registers
). Le problème est que le*
registre est le presse-papiers du système (je suis en MacVim) et donc je n'ai pas de contrôle sur le linewise-vs-blockwise la nature de ce registre (par exemple, il est toujours linewise).blockwise-register
Je me demandais pourquoi "visual mode bloc" ne fonctionnait pas pour moi. La clé est de yank (ou supprimer) dans le mode visuel.
Je me retrouve à avoir à la copier quelques trucs de colonnes excel ayant de longueur variable. Voici comment je le fais:
Disons que vous voulez mettre la deuxième colonne après la première.
Age
Ctrl + v
pour entrer dans le mode visuel5
dans45
y
à tirer (oud
à supprimer)Vous avez maintenant passé en mode visuel.
Coller (en mode normal)
Déplacer à la fin de la première ligne et ajouter plus d'espace parce que c'est plus courte que la deuxième ligne par exemple. Si vous collez un "bloc", sans ajouter des espaces supplémentaires, il va remplacer le "run" de Sebastian Thrun.
Maintenant vous êtes sur la première ligne, insérer un peu d'espace après le dernier caractère. Assurez-vous que vous n'êtes pas en mode insertion et de frapper
p
pour coller le bloc. (Si vous voulez le coller en mode insertion, utilisezctrl+r "
)ctrl+r "
ne fonctionne pas comme décrit. Est-ce qu'il devrait être?:registers
et de voir ce que vous avez là. Si vous avez quelque chose sous"
, vous êtes probablement en tapantctrl+r '
(assurez-vous que vous êtes en possession de la maj)1\n100\n1
et le dernier0
de100
sera absent.set clipboard^=unnamed
dans monvimrc
de partager automatiquement le presse-papiers entre macOS et Vim. Avec cette option, il est toujours colle le contenu sur une seule colonne, avec l'option supprimé, le coller fonctionne comme décrit ci-dessus.Vous avez:
Déplacez votre curseur sur la
a
. PuisCTRL+V
, et déplacez votre curseur ài
. Appuyez sury
.Ensuite, ajoutez un espace après le
3
caractère, puis appuyez surp
.Fait.
Si vous êtes sur Mac et ne peut pas comprendre pourquoi la pâte est l'insertion du bloc dans de nouvelles lignes, c'est parce que vous êtes en utilisant le système de la table de montage.
Pas de problème, il suffit de copier/coller avec les tampons:
letter
tamponletter
tamponAssurez-vous que
letter
n'est pas+
que c'est le système de la table de montage tampon et donc il aura le même effet.Cela peut sembler évident, mais si vous collez à partir de l'extérieur copiés de la mémoire tampon, il ne fonctionnera pas avec juste le mode visuel de la pâte. Ce que vous pouvez faire est d'abord une pâte dans une zone vide et verticale couper/coller à l'aide de la méthode ci-dessus.
Si vous souhaitez définir manuellement le registre de type-à-dire blockwise, utilisez ce
ou
Utile pour coller une colonne à partir d'un éditeur de feuille de calcul.
Voir
:help setreg
et vimtip pour plus de détails.