Jak korzystać ze skrótów Readline w linii poleceń vim?

15

Kiedy edytuję polecenie Vima, chciałbym użyć tych samych skrótów, co w Bash i każdej innej REPL: M-baby cofnąć słowo, M-Backspaceusunąć poprzednie słowo, M-uprzekonwertować słowo na wielkie litery, C-kwyciąć do końca wiersz itp. Byłem w stanie skonfigurować niektóre polecenia, używając :cmap, ale nie wszystkie.

Czy istnieje wtyczka lub ustawienie, które to zapewnia?

Wiem o tym cedit, ale uważam, że kłopotliwe jest, gdy potrzebuję tylko szybkiego polecenia.

Mihai
źródło
Zaraz, mówisz, że używasz Basha w trybie Emacsa, nawet jeśli używasz Vima jako edytora?
Kyle Strand
3
@KyleStrand Nie widziałem jeszcze kogoś, kto używał Basha w trybie vi. Wygląda na to, że większość zalet edytorów modalnych zanika, gdy jesteś ograniczony tylko do jednej linii.
Mihai,
1
Ciekawy. Zawsze używam Bash w trybie Vi, chociaż wydaje się, że tryb Emacs obsługuje niektóre rzeczy, których nie obsługuje tryb Vi. Zdarzyło mi się znać skróty klawiszowe Vi, pozostając prawie całkowicie nieświadomy powiązań Emacsa, i nigdy nie sądziłem, że jest to wystarczająco pilny problem, aby nauczyć się domyślnych ustawień.
Kyle Strand

Odpowiedzi:

11

Czy istnieje wtyczka lub ustawienie, które to zapewnia?

Tak, wtyczka rsi.vim :

cechy

  • Odwzorowania linii readline są dostępne w trybie wstawiania i trybie wiersza poleceń. Tryb normalny został celowo pominięty.
  • Ważne Powiązania klawiszy Vima (takie jak uzupełnianie Cn i Cp w trybie wstawiania) nie są zastępowane.
  • Wiązania meta-klawiszowe są dostarczane w sposób, który działa w terminalu, bez ryzyka ucieczki przy zmianie mapowania.
  • Cd, Ce i Cf są odwzorowane w taki sposób, że wykonują zachowanie Readline na środku linii i zachowanie Vima na końcu. (Pomyśl o tym.)
mMontu
źródło
1

Czy istnieje wtyczka lub ustawienie, które to zapewnia?

Istnieje również readline.vim .

Jest to nowsza wtyczka, która koncentruje się wyłącznie na wierszu poleceń. Implementuje także większy podzbiór skrótów Readline i ma na celu implementację każdego skrótu dokładnie tak, jak w Readline.

Tym, co odróżnia tę wtyczkę od podobnych wtyczek, jest to, że implementuje większy podzbiór odwzorowań Readline i lepiej radzi sobie z zachowaniem Readline dla każdego polecenia.

Polecenia przemieszczania i usuwania wyrazów różnią się między Vimem a Readline. Największą różnicą jest to, że interpunkcja jest zawsze pomijana podczas wyszukiwania granicy słowa. Kolejna różnica polega na tym, że _ (podkreślenie) jest traktowane jako separator słów. Ta wtyczka implementuje zachowanie Readline dla poleceń przemieszczania i usuwania słów.

wefwefa3
źródło
1
Dziwię się, że ktoś szuka takich rzeczy. Tryb vim readline jest tak łatwy, że myślałbym, że zrobiłby to każdy zwykły użytkownik vim. (Nie wydaje mi się, żeby dodatkowe polecenia w trybie emacsa były tak przekonujące.) Ale może „jak” nie jest tak powszechnie znane (... i może mam szczęście, że pierwszy bashrc widziałem / kopiowałem ... o wiele więcej lat temu, niż chciałbym przyznać ... miałem set -o vim:)
B Layer