Comment travailler avec le mode ligne de commande de la manière vi?


10

Existe-t-il un moyen d'interagir avec le mode ligne de commande tout en restant toujours en position d'origine?

En particulier, les deux actions suivantes sont lourdes, nécessitant de déplacer les doigts vers les touches fléchées et parfois pire, la souris.

  1. Déplacement: existe-t-il un moyen de se déplacer d'avant en arrière en mode ligne de commande tout en restant dans la position habituelle?
  2. Comment copier et coller sur la ligne de commande? Je veux dire copier à la fois d'une partie de la ligne de commande elle-même vers une autre partie, ou du texte ou même du presse-papiers.

1
Les deux peuvent être résolus en utilisant la fenêtre de ligne de commande avec :q; cela ouvre une nouvelle fenêtre "en forme de tampon", dans laquelle vous pouvez utiliser hjklpour le mouvement, ypour tirer, etc.
Martin Tournoij

1
@Carpetsmoker (vous voulez dire q:, non?) Bon à savoir! J'étais accidentellement arrivé par le passé, mais je n'avais pas vraiment pensé à l'utiliser. Cela ne semble pas fonctionner avec /(recherche).
Shahbaz

Oups, oui, je voulais dire q: ... Je ne l'ai jamais beaucoup utilisé, donc je ne peux pas vous donner une réponse complète / correcte ...
Martin Tournoij

Réponses:


17

Il y a la ligne de commande (que vous connaissez) et la fenêtre de ligne de commande (la ligne de commande dans un tampon spécial, que vous pouvez modifier comme n'importe quelle autre). Vous entrez dans ce soit via <C-f>de la ligne de commande (également pour les /recherches , etc.) lorsque vous vous sentez le besoin de plus de « pouvoir éditer », ou directement du mode normal via dédié q:, q/etc. commandes.

En savoir plus à ce sujet sur :help command-line-window.


4
<C-f>est très utile à savoir, car il fonctionne une fois que vous avez déjà parcouru la moitié de la commande.
Shahbaz

1
Je suis d'accord; le :vient presque automatiquement pour moi, donc c'est bien de pouvoir basculer sans revenir en mode normal.
Ingo Karkat

11

En plus de fournir la fenêtre de ligne de commande , Vim offre également quelques fonctionnalités limitées vous permettant d'interagir avec la ligne de commande en mode ligne de commande ( sans utiliser les touches fléchées).

Mouvement

  • <ctrl-b> déplacer le curseur au début de la ligne de commande
  • <ctrl-e> déplacer le curseur à la fin de la ligne de commande

Édition

  • <ctrl-h> supprimer le caractère avant le curseur (comme le retour arrière)
  • <ctrl-w> supprimer le mot avant le curseur
  • <ctrl-u> supprimer complètement du curseur au début de la ligne de commande

Vous pouvez bien sûr ajouter des mappages de ligne de commande avec :cnoremappour émuler les touches de navigation de certains autres programmes . Ou installez le plug-in RSI de Tim Pope pour utiliser les liaisons Readline standard de facto.

Coller

Vous pouvez coller le contenu de n'importe quel registre dans la ligne de commande à la position du curseur en appuyant sur <ctrl-r>suivi du caractère spécifiant le registre. par exemple <ctrl-r>, +insérera le contenu du presse-papiers dans la ligne de commande; <ctrl-r>, "insérera le contenu du registre "sans nom" (c'est-à-dire le contenu de votre dernière suppression ou copie).

Voir :help cmdline.txtpour plus de détails sur tout ce qui précède.


1
Impressionnant! <ctrl-r>serait particulièrement utile.
Shahbaz

Oui, j'ai même utilisé ^Rdes macros. Cela m'a permis d'effectuer des manipulations de texte super délicates en tirant une partie du fichier pendant la macro, et plus tard, également pendant la macro, en utilisant la partie tirée dans une longue commande en mode Ex avec ^R. :)
Wildcard
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.