Come posso usare le scorciatoie di Readline nella riga di comando di vim?


15

Quando sto modificando un comando Vim, vorrei usare le stesse scorciatoie di Bash e di ogni altra REPL: M-btornare indietro di una parola, M-Backspacecancellare una parola precedente, M-uconvertire la parola in maiuscolo, C-ktagliare fino alla fine di la linea, ecc. Sono stato in grado di configurare alcuni dei comandi, usando :cmap, ma non tutti.

Esiste un plug-in o un'impostazione che fornisce questo?

Lo so cedit, ma lo trovo ingombrante quando tutto ciò di cui ho bisogno è inserire un comando rapido.


Aspetta, stai dicendo che usi Bash in modalità Emacs anche se usi Vim come editor?
Kyle Strand

3
@KyleStrand Devo ancora vedere qualcuno che ha usato Bash in modalità vi. Sembra che la maggior parte dei vantaggi degli editor modali scompaia quando sei limitato a una sola riga.
Mihai,

1
Interessante. Uso sempre Bash in modalità Vi, anche se sembra che la modalità Emacs supporti alcune cose che la modalità Vi non ha. Mi capita solo di conoscere le combinazioni di tasti Vi pur rimanendo quasi completamente ignorante delle associazioni di Emacs, e non ho mai pensato che fosse un problema abbastanza pressante per apprendere le impostazioni predefinite.
Kyle Strand,

Risposte:


11

Esiste un plug-in o un'impostazione che fornisce questo?

Sì, plugin rsi.vim :

Caratteristiche

  • I mapping di readline sono forniti in modalità insert e in riga di comando. La modalità normale viene deliberatamente omessa.
  • I collegamenti ai tasti Vim importanti (come il completamento Cn e Cp della modalità di inserimento) non vengono ignorati.
  • I collegamenti con meta-chiave sono forniti in un modo che funziona nel terminale senza i pericoli della fuga del remapping.
  • Cd, Ce e Cf sono mappati in modo tale da eseguire il comportamento Readline al centro della linea e il comportamento Vim alla fine. (Pensaci.)

1

Esiste un plug-in o un'impostazione che fornisce questo?

C'è anche readline.vim .

È un plug-in più recente che si concentra esclusivamente sulla riga di comando. Implementa anche un sottoinsieme più ampio delle scorciatoie di Readline e ha l'obiettivo di implementare ogni scorciatoia esattamente come in Readline.

Ciò che rende questo plug-in diverso da plug-in simili è che implementa un sottoinsieme più grande dei mapping di Readline e che svolge un lavoro migliore nel simulare il comportamento di Readline per ciascun comando.

I comandi di spostamento e cancellazione delle parole hanno un comportamento diverso tra Vim e Readline. La differenza più grande è che in Readline la punteggiatura viene sempre ignorata quando si cerca un limite di parole. Un'altra differenza è che _ (trattino basso) è trattato come un delimitatore di parole. Questo plugin implementa il comportamento di Readline per i comandi di spostamento e cancellazione delle parole.


1
Sono sorpreso che ci sia qualcuno alla ricerca di questo genere di cose. È così facile usare la modalità vim di readline che penso che ogni normale utente vim lo farebbe. (Non trovo i comandi extra in modalità emacs così avvincenti.) Ma forse il "come" non è così conosciuto (... e forse sono fortunato che il primissimo baschc che ho visto / copiato ... molti più anni fa di quanto io voglia ammettere ... avevo set -o vim:)
B Layer
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.