web-dev-qa-db-fra.com

Comment faire de la colonne Sélectionner puis modifiez-la dans GNU emacs?

J'utilise Vim, Textmate et GNU EMACS pendant des années.

Par exemple, voici le texte que je veux modifier

foo
foo
foo

Et voici le résultat texte que je veux avoir

bar foo
bar foo
bar foo

Lorsque je suis sur Vim, je peux faire "Ctrl V" sur la toute première ligne et la première colonne, puis appuyez sur "2 J", puis appuyez sur "I", puis tapez "bar".

Lorsque je suis sur textmate, je peux appuyer sur "Option de commande Apple" tout en sélectionnant Down (par ma souris), puis tapez "bar", effectuée.

Mais quand je suis sur GNU emacs 23.1, je ne sais pas comment faire.: (((

J'ai cherché Emacswiki et googling autour mais n'a pas eu la solution. S'il vous plaît, guidez-moi si vous connaissez ma solution. Serait reconnaissant pour ça.

15
Arie

Dans EMACS, ces types de colonnes sont appelées "rectangles". Donc Ceci est la page de documentation correspondante.

Toutes ces commandes exigent que la région contienne le rectangle que vous activez. Vous devez donc régler la marque sur le caractère supérieur gauche dans le rectangle et étendre la région au caractère bas inférieur dans le rectangle. La commande que vous avez après est M-x string-insert-rectangle qui vous invite ensuite à insérer la chaîne.

2
nedned

Réponse la plus courte: Activer le mode rectangle CUA via C-RET.

Donc, pour votre cas, ce serait

  1. Aller à la première ligne, première colonne et frappé C-RET Pour entrer en mode CUA
  2. Allez à la dernière ligne, première colonne et simplement de type barSPC
  3. Quittez le mode CUA via ESC ou c-g

Voir la réponse @trey pour une solution plus élaborée et des liens vers la CUA.

1
Martin

Vous pouvez utiliser Remplacer-Regexp pour ceci:

  1. définir la marque sur la dernière ligne -> C SPC et allez à la dernière ligne
  2. tapez M-X Remplacer-Regexp RET dans le minibuffer (j'ai une liaison clé pour ce M-R)
  3. Donner ^ ret
  4. type Bar et Hit RET

Cela ajoutera une barre au début de la ligne.

0
Neelesh