Come lavorare con la modalità da riga di comando in modo vi?


10

C'è un modo per interagire con la modalità riga di comando rimanendo sempre nella posizione iniziale?

In particolare, le seguenti due azioni sono ingombranti, che richiedono di spostare le dita verso i tasti freccia e, talvolta, peggio ancora, il mouse.

  1. Muoversi: c'è un modo per spostarsi avanti e indietro nella modalità riga di comando rimanendo nella solita posizione?
  2. Come puoi copiare e incollare dalla riga di comando? Intendo copiare sia da una parte della riga di comando stessa in un'altra parte, o dal testo o persino dagli appunti.

1
Entrambi possono essere risolti usando la finestra della riga di comando con :q; questo apre una nuova finestra "simile a un buffer", in cui è possibile utilizzare hjklper il movimento, yper lo strappo, ecc.
Martin Tournoij

1
@Carpetsmoker (vuoi dire q:, vero?) Buono a sapersi! Ci ero arrivato per caso in passato, ma non avevo davvero pensato di usarlo. Non sembra funzionare con /(ricerca).
Shahbaz,

Oops, sì, intendevo q: ... non l'ho mai usato molto, quindi non posso darti una risposta completa / corretta ...
Martin Tournoij

Risposte:


17

C'è la riga di comando (che conosci) e c'è la finestra della riga di comando (la riga di comando in un buffer speciale, che puoi modificare come qualsiasi altra). Si entra questo sia via <C-f>dalla linea di comando (anche per /le ricerche, ecc) quando si sente la necessità di una maggiore "la modifica di potere", o direttamente dalla modalità normale attraverso il dedicata q:, q/ecc comandi.

Leggi di più su questo a :help command-line-window.


4
<C-f>è molto utile da sapere, poiché funziona dopo che si è già a metà del comando.
Shahbaz,

1
Sono d'accordo; la :viene quasi automaticamente per me, quindi è bello essere in grado di passare senza tornare alla modalità normale.
Ingo Karkat,

11

Oltre a fornire la finestra della riga di comando , Vim offre anche alcune funzionalità limitate che consentono di interagire con la riga di comando mentre si è in modalità riga di comando ( senza utilizzare i tasti freccia).

Movimento

  • <ctrl-b> sposta il cursore all'inizio della riga di comando
  • <ctrl-e> sposta il cursore alla fine della riga di comando

La modifica

  • <ctrl-h> elimina il carattere prima del cursore (come backspace)
  • <ctrl-w> elimina la parola prima del cursore
  • <ctrl-u> elimina completamente dal cursore indietro all'inizio della riga di comando

Naturalmente è possibile aggiungere mappature della riga di comando :cnoremapper emulare i tasti di navigazione di altri programmi . Oppure installa il plug-in RSI di Tim Pope per utilizzare i collegamenti Readline standard de facto.

incollare

È possibile incollare il contenuto di qualsiasi registro nella riga di comando nella posizione del cursore premendo <ctrl-r>seguito dal carattere che specifica il registro. ad esempio <ctrl-r>, +inserirà il contenuto degli appunti nella riga di comando; <ctrl-r>, "inserirà i contenuti del registro "senza nome" (ovvero i contenuti dell'ultima cancellazione o yank).

Vedere :help cmdline.txtper ulteriori dettagli di tutto quanto sopra.


1
Eccezionale! <ctrl-r>sarebbe particolarmente utile.
Shahbaz,

Sì, l'ho persino usato ^Rper le macro. Mi ha permesso di eseguire manipolazioni del testo super complicate strappando parte del file durante la macro e, successivamente, anche durante la macro, usando la parte strappata in un lungo comando in modalità Ex con ^R. :)
Wildcard il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.