2010-09-01 4 views

Répondre

29

Vous pouvez utiliser le contenu de n'importe quel registre sur les lignes de commande ex ou search avec <C-R> suivi du nom du registre. En triant votre sélection visuelle, elle est placée dans le registre 0, donc <C-R>0 ajoutera votre sélection tirée à la ligne de commande en cours.

C'est la seule façon que je connais, mais je l'utilise toujours quotidiennement.

+1

Si simple ... merci! J'ai surtout composé ma propre réponse parce que j'étais moi-même curieux –

4

Votre question peut être interprétée de plusieurs manières. Le plus simple est si vous voulez dire que vous voulez donner le texte sélectionné comme argument de plage à une commande ex. Je doute que ce soit votre question, car cela se fait automatiquement si vous tapez: avec une sélection visuelle, mais la syntaxe ex pour cette

:'<,'> 

La deuxième façon, je pense que votre question pourrait être interprété est que vous souhaitez insérer la le texte visuel sélectionné lui-même comme argument d'une commande ex; Je ne pense pas que cela puisse être fait. Si vous lisez la section manuelle vim 40.2, où les arguments range sont décrits, les seules choses qu'une commande est autorisée à saisir d'un argument range sont le numéro de la première ligne et la dernière ligne (en utilisant les balises <line1> et <line2>).

Enfin, si vous voulez terme le texte sélectionné sur la ligne de commande shell , tout ce que vous devez faire est de sélectionner et tapez

:!sh 

(La partie '<,'> devrait obtenir inséré pour vous entre le: et le! Vous pouvez remplacer 'sh' avec la commande pour démarrer votre shell préféré).

+1

Salut David, la deuxième des trois façons que vous décrivez était en effet mon intention. c'est-à-dire, a inséré l'objet sélectionné visuellement dans la ligne de commande, de la même manière que insère le mot objet. – Jeet

0

Oui, le registre contient * la sélection visuelle en cours ...

Vous pouvez taper <C-R>* pour l'obtenir à partir insertion ou en mode commande ...

Cependant, ce n'est pas très pratique pour l'utiliser dans une ligne de commande, puisque vous ne pouvez pas éviter le '<,'> lorsque vous entrez en mode commande du mode visuel

+10

Non, le registre '*' ne contient pas nécessairement la sélection visuelle actuelle. En général, le registre '*' contient la sélection X11, qui peut être totalement différente. Deuxièmement, vous pouvez utiliser '' pour effacer la ligne de commande (et supprimer le ''<, '>') –

Questions connexes