jEdit prend en charge l'édition de blocs, mais Emacs et Vim semblent avoir de sérieux problèmes d'utilisation sur le même sujet. Si quelqu'un pouvait remplir les inconnues ici, il serait beaucoup plus supportable d'utiliser l'un ou l'autre éditeur:
- Sélection rectangulaire réelle : lorsque la sélection à l'écran est un rectangle, pas une sélection linéaire qui est ensuite utilisée pour calculer une région comme Emacs semble limité.
- jEdit: Maintenez enfoncé Ctrlet sélectionnez.
- Vim: cliquez Ctrl-vet sélectionnez.
- Emacs: inconnu ; ressemble à un plugin de 400+ lignes est nécessaire.
- Édition rectangulaire en direct : voyez à quoi ressemblera le résultat sur toutes les lignes lorsque vous éditerez après une sélection de bloc.
- jEdit: Commencez simplement à taper et vous verrez le résultat final au fur et à mesure.
- Vim: cliquez Shift-iet tapez. Affiche le résultat final uniquement sur la première ligne jusqu'à ce que vous appuyiez sur Escpour quitter le mode d'insertion. On ne sait pas s'il existe un moyen de voir immédiatement le résultat sur toutes les lignes.
- Emacs: inconnu ; ressemble à la seule façon est de C-x r tdéfinir le texte à remplir après avoir appuyé sur Ret.
- Début et fin de la sélection dans des positions en dehors du texte : Par exemple, je voudrais supprimer les N premiers caractères de chaque ligne, mais les première et dernière lignes contiennent moins de N caractères.
- jEdit: Pas de problème, les sélections de blocs peuvent commencer en dehors du texte.
- Vim:
:set virtualedit=block
. - Emacs: Cela pourrait être possible avec
artist-mode
et / oupicture-mode
.
- Coller le bloc en ligne : Collez le bloc copié comme si vous colliez plusieurs lignes, comme dans, poussez le texte déjà là- bas , pas à droite.
- jEdit: la valeur par défaut. Pour coller un bloc en tant que bloc, vous devez d'abord effectuer une autre sélection de bloc.
- Vim: OEscVp.
- Emacs: inconnu .
La fonctionnalité générale de sélection de bloc Emacs peut être trouvée dans le cua-mode
plugin .
Réponses:
Je peux répondre pour Vim, mais pas Emacs.
Début et fin de la sélection dans des positions en dehors du texte:
:set virtualedit=block
permettra le comportement que vous souhaitez. Vous pouvez supprimer les deux points initiaux et les ajouter à votre .vimrc si vous le souhaitez. Pour plus d'informations,:help 'virtualedit'
depuis Vim.Coller le bloc en ligne:
Si vous venez de frapper pen mode Commande, Vim insérera le bloc, en poussant les caractères vers la droite sur chaque ligne. Si vous sélectionnez un autre bloc et appuyez sur p, Vim remplacera ce bloc par le bloc collé.
Vous pouvez coller un bloc "en ligne" avec la séquence de touches en mode commande OEscVp. Cela insère une ligne au-dessus de la ligne actuelle (
O Esc
), la sélectionne linewise (V
), puis la colle dessus (p
). Vous pouvez raccourcir cela en (par exemple) ypavec un mappage tel que:nmap yp O<Esc>Vp
- tapez littéralement; utilisez cinq touches<Esc>
plutôt que d'appuyer sur la touche Échap.la source
virtualedit
; dois essayer cela. À propos du collage en ligne, veuillez consulter la question mise à jour pour une description des fonctionnalités attendues.Emacs: commencez la sélection à la première ligne et ajoutez simplement le nombre manquant de caractères (par exemple des espaces) à la dernière ligne, puis utilisez kill-rectangle
Vous pouvez également voir
artist-mode
oupicture-mode
qui vous permettent de vous déplacer librement dans la fenêtre quelles que soient les longueurs de ligne.Emacs: enregistrez d'abord le bloc en supprimant le rectangle ou en l'enregistrant dans un registre, puis accédez au point d'insertion, utilisez delete-rectangle puis insérez le rectangle enregistré.
En cas d'Emacs, pourquoi est-ce un problème? Un plugin peut être compilé et la philosophie emacs est que vous ne mettez pas tout dans le noyau, mais utilisez des plugins pour étendre l'éditeur.
la source
Il y a « mode cua- » qui vient avec Emacsen 22,1 et plus tard, ou suivez le lien pour télécharger les versions antérieures d'Emacs. Il y a une courte vidéo qui présente la fonctionnalité.
Pour les commandes rectangulaires générales, essayez de lire le manuel , qui fournit une introduction facile.
la source
cua-mode
air bien! +1 .. Je n'ai pas trouvé la vidéo que vous avez mentionnée, voir le lien de Tom dans les commentaires juste en dessous de la question, pour un lien vers une vidéo d'information (différente?) ...Dans vim, la manière typique de supprimer les n premiers caractères est de faire quelque chose comme
:%s/.\{0,6\}//
.%
fera tout le document; vous pouvez remplacer cela par une sélection ou par les lignes réelles qui vous intéressent. Las
commande est pour "substitut". Il remplacera une expression régulière par tout ce que vous lui donnerez, et il ne correspondra qu'une seule fois sur chaque ligne, sauf si vous ajoutez une option spécifique. Il/
s'agit d'un délimiteur - il peut s'agir de n'importe quel caractère, mais il/
est généralement utilisé à moins qu'il ne soit avantageux d'utiliser autre chose (vous n'avez donc pas à vous échapper/
dans le reste de la commande). L'argument après le premier délimiteur est une expression régulière qui sera utilisée pour rechercher les chaînes correspondantes dans votre sélection. L'argument après le deuxième délimiteur est ce avec quoi la correspondance sera remplacée.Cette commande indique donc de trouver 0 à 6 instances de n'importe quel caractère et de les remplacer par rien.
la source