L'édition modale est-elle possible en mode ligne de commande ?
Quelques exemples :
- Après avoir écrit
!ls ~/foo/bar
Je veuxdb
pour supprimer bar - J'ai exécuté la commande ci-dessus et maintenant je veux modifier
ls
amv
et de revenir à $.
L'édition modale est-elle possible en mode ligne de commande ?
Quelques exemples :
!ls ~/foo/bar
Je veux db
pour supprimer bar
ls
a mv
et de revenir à $.Par défaut, vous pouvez appuyer sur Control + f
(ou sinon, voir set cedit
) dans la ligne de commande Vim, ce qui ouvre la fenêtre de la ligne de commande où vous pouvez modifier la commande à l'aide des touches d'édition Vim en mode normal. Enter
exécutera la commande ou Control + c
vous ramènera à la ligne de commande standard.
Donc, dans votre exemple spécifique, vous pourriez appuyer sur Control + f
sur la ligne de commande Vim, puis db
et ça ferait ce que vous voulez.
Lorsque je dois effectuer des commandes d'édition plus sophistiquées, j'utilise l'approche ci-dessus car je suis plus familier avec les touches d'édition de Vim qu'avec les autres solutions. Je trouve également les touches de Vim en mode normal plus puissantes.
Véase :help c_ctrl-f
pour plus d'informations.
<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. Nous espérons que cet aperçu complet et structuré sera néanmoins utile).<br>° en date de 2014 - de nouveaux raccourcis clavier peuvent avoir été ajoutés depuis.
Buscar :help cmdline-editing
dans 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é qui vous permet d'éditer les commandes précédemment tapées dans différents modes.
emacscommandline fait en sorte que le mode ligne de commande se comporte davantage comme la ligne de commande Unix, en ajoutant des mappings de style Emacs (comme dans le shell Bash). Certains des commandes vim existantes, mais le reste implémente des fonctionnalités non disponibles nativement. fonctionnalité qui n'est pas disponible nativement.
conomode.vim implémente une sorte de mode normal ("Cmdline-Normal mode") en plus de la ligne de commande. la ligne de commande. Le but est similaire à celui de la fenêtre cmdline (q :), mais mais la navigation et l'édition peuvent être effectuées sur place. Bien sûr, la fenêtre cmdline-window est beaucoup plus puissante.
Conomode ne remplace pas la ligne de commande native de style emacs de Vim de Vim, il ajoute simplement une touche : CTRL-O (voir ci-dessous).
- entrer avec c_ (appuyer sur CTRL-O en mode ligne de commande)
- l'indicateur de mode est un deux-points " :", déplacé avec le curseur, cachant le caractère qui se trouve en dessous.
- quitter le mode Cmdline avec I, i, a, A, : ou toute autre touche non mappée (qui s'exécute ou s'insère alors), ou attendre 60 secondes.
- quitter le mode normal avec Esc
(Il est vrai que je ne comprends pas l'intérêt de ce plugin, puisqu'au lieu de frapper Ctrl + O pour passer en mode Cono, vous pouvez tout aussi rapidement ouvrir la fenêtre de la ligne de commande avec Ctrl + F .)
Il existe peut-être d'autres plugins. → https://www.google.com/webhp?q=command-line+édition+plugin+vim
Au lieu d'utiliser un plugin complet, ou en complément de celui-ci, vous pouvez définir les éléments suivants vos propres mappings . → Voir mes autres réponse .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.