L'édition modale est-elle possible en mode ligne de commande?
Quelques exemples:
!ls ~/foo/bar
Je veux db
à supprimer barls
à mv
et revenir à $Par défaut, vous pouvez appuyer sur Control + f
(ou voir sinon set cedit
) Lorsque sur la ligne de commande Vim, qui ouvre la fenêtre de ligne de commande où vous pouvez modifier la commande à l'aide des touches d'édition VIM en mode normal. Enter
va exécuter la commande ou Control + c
vous retournera à la ligne de commande standard.
Donc, dans votre exemple spécifique, vous pouvez appuyer sur Control + f
sur la ligne de commande Vim alors db
et cela ferait ce que vous voulez.
Lorsque je dois faire des commandes d'édition plus sophistiquées, j'utilise l'approche ci-dessus parce que je connais plus avec les clés d'édition VIM que je suis avec les alternatives. Je trouve également les clés Vim en mode normal plus puissant.
Voir :help c_ctrl-f
pour plus d'informations.
dans VIM mode de commande de commande: <ctrl-w>
supprime un mot
dans mode normal: q:
va à l'historique de la commande (qui peut être édité avec des commandes VIM)
voir :help cmdline-editing
et :help cmdline-window
Pour plus de commandes.
<Esc> abandon command-line without executing it
CTRL-C abandon command-line without executing it
CTRL-B cursor to begin of command-line
CTRL-E cursor to end of command-line
CTRL-F opens the command-line window (unless a different key is specified in 'cedit')
CTRL-H delete the character in front of the cursor (same as <Backspace>)
CTRL-W delete the Word in front of the cursor
CTRL-U delete all characters in front of the cursor
CTRL-P recall previous command-line from history (that matches pattern in front of the cursor)
CTRL-N recall next command-line from history (that matches pattern in front of the cursor)
<Up> recall previous command-line from history (that matches pattern in front of the cursor)
<Down> recall next command-line from history (that matches pattern in front of the cursor)
<S-Up> recall previous command-line from history
<S-Down> recall next command-line from history
<PageUp> recall previous command-line from history
<PageDown> recall next command-line from history
<S-Left> cursor one Word left
<C-Left> cursor one Word left
<S-Right> cursor one Word right
<C-Right> cursor one Word right
<LeftMouse> cursor at mouse click
Référence: :help ex-edit-index
(Désolé pour le chevauchement avec des réponses plus anciennes. Espérons que cet aperçu complet, structuré est utile néanmoins.)
[.____] ° à partir de 2014 - de nouveaux raccourcis clavier ont peut-être été ajoutés depuis lors
Rechercher :help cmdline-editing
En Vim.
Il donnera une liste de raccourcis fonctionnant en mode ligne de commande.
Un extrait pour votre problème actuel:
CTRL-B or <Home> *c_CTRL-B* *c_<Home>*
cursor to beginning of command-line
CTRL-E or <End> *c_CTRL-E* *c_<End>*
cursor to end of command-line
<S-Left> or <C-Left> *c_<C-Left>*
cursor one Word left
*c_<S-Right>*
<S-Right> or <C-Right> *c_<C-Right>*
cursor one Word right
ou utiliser q:
Comme mentionné par René, ce qui vous permet de modifier les commandes typées précédentes dans différents modes.
( emacscommandline Le mode ligne de commande se comporte plus comme la ligne de commande UNIX, en ajoutant des mappages de style EMACS (comme dans le Coquille bash). Certains des mappages ne font que mapper les commandes Vim existantes, mais les fonctionnalités de mise en œuvre de repos qui n'est pas disponible de manière native.
((( conoDe.vim Implémente une sorte de mode normal ("Mode CMDLINE-NORMAL") en haut de la ligne de commande. Le but est similaire à la fenêtre CMDLINE (Q :), mais la navigation et l'édition peuvent être effectuées en place. Bien sûr, la fenêtre CMDLINE est beaucoup plus puissante.
Conomode ne remplace pas l'édition de la ligne de commande de style emacs de Vim, elle ajoute simplement une clé: Ctrl-O (voir ci-dessous).
- entrez avec C_ (appuyez sur CTRL-O pendant le mode de ligne de commande)
- l'indicateur de mode est un colon ":", déplacé avec le curseur, caché le charret sous celui-ci
- quittez à CMDLINE-MODE avec I, I, A, A,: ou TOUTE TOUTE MARCHE MARCHÉ (qui s'exécute ou s'insère ensuite), ou attendez 60 secondes.
- quittez en mode normal avec ESC
(Certes, je ne comprends pas le point de ce plugin, puisque au lieu de frapper Ctrl+O Pour entrer dans son mode Cono-Mode, vous pouvez simplement afficher la fenêtre de la ligne de commande avec Ctrl+F.)
Il pourrait y avoir d'autres plugins là-bas. → https://www.google.com/webhp?q=command-line+Diditing+plugin+vim
Au lieu d'utiliser un plug-in pleinement soufflé, ou comme un complément, vous pouvez définir vos propres mappages . → Voir mon autre Réponse .