Imaginez que vous vouliez citer le mot ci-dessous. Si |
c'est la position du curseur, vous pouvez facilement citer le mot à cw""<Esc>P
partir du mode Normal.
|below
Je souhaite obtenir le même comportement en mode ligne de commande. Ma question est de savoir comment puis-je dire au mode ligne de commande que je veux taper un <Esc>
. J'ai essayé :norm cw""<Esc>P
et quelques autres variantes mais j'obtiens juste ""<Esc>P
au lieu de "below"
.
Toujours lié à cela, je voudrais savoir comment puis-je faire des commandes Ctrl de type ligne de commande. Par exemple, je pourrais citer le mot susmentionné à la cw"<C-r>""<Esc>
place. Mais alors j'aurais besoin de la ligne de commande pour taper <C-r>
pour moi. Comment puis-je faire ceci?
command-line
Gonçalo Ribeiro
la source
la source
<C-x><C-e>
dans readline pour éditer la ligne de commande$EDITOR
, vous avez<C-f>
dans Vim pour ouvrir la fenêtre de ligne de commande. Tu vois:help cmdline-window
.Réponses:
<C-v>
est ce que vous recherchez. Il vous permet de saisir des caractères littéraux (par exemple, un littéralEsc
au lieu de la chaîne "Esc") sans vous obliger à rien échapper.s'affiche comme:
et fera ce que vous voulez (c.-à-d., citez le mot). Vous pouvez également l'utiliser avec d'autres
<C-?>
mappages. Par exemple, votre deuxième demande:s'affiche comme:
Et se traduira par la même chose que ci-dessus. Il n'est pas nécessaire d'inclure le supplément
Esc
à la fin.la source
En effet, les touches spéciales comme
<Esc>
ne sont pas traduites dans lesnormal
commandes et sont traitées comme si vous aviez appuyé <Esc>. Pour y remédier, vous pouvez utiliser uneexec
commande. Ainsi:Notez que vous devez mettre une barre oblique inverse avant les guillemets et le
<Esc>
, et l'utilisation de guillemets simples au lieu de guillemets doubles ne fonctionnera pas.la source
"\<C-{insert key}>"
Le mode de ligne de commande est différent; vous ne pouvez pas y utiliser les mêmes commandes d'édition (mode normal). Vous pouvez trouver une liste de commandes sur
:help c_CTRL-V
.Maintenant, il y a la fenêtre de ligne de commande (
:help command-line-window
), qui peut être entrée via le modeq:
normal et le<C-F>
mode ligne de commande. Dans cette fenêtre, vous pouvez utiliser toutes les commandes et mappages normaux, ce serait donc l'option 1.L'option 2 est des mappages spéciaux pour le mode ligne de commande. Comme je l'ai dit, vous ne pouvez pas utiliser l'approche via
:normal
et al. La clé pour les définir est le:help c_CTRL-\_e
mappage, qui "évalue [s] {expr} et remplace [s] toute la ligne de commande par le résultat". Voici un exemple simple qui ne fonctionne correctement qu'à la fin de la ligne de commande:la source