Wygląda na to, że ctrl+ Wusuwa wstecz jedno słowo na raz. To świetnie, ale naprawdę bardzo podoba mi się, że działa z ctrl+, backspacepodobnie jak w większości innych aplikacji.
Jak najlepiej to zrobić? Potrzebuję zmiany, aby wpłynąć na polecenia gnome-terminal, vim wiersza poleceń i vim GUI.
command-line
gnome-terminal
vim
gvim
Costa
źródło
źródło
Odpowiedzi:
Zauważ, że zadziała to w terminalu i domyślnym trybie emacsa (którego używasz, jeśli Ctrl+ Wusuniesz za ciebie poprzednie słowo). Nie będzie działać w trybie vi basha i nie wpłynie na sam vi / vim. Jest to zatem tylko częściowa odpowiedź, ale najlepsza, jaką może zaoferować ten użytkownik emacsa.
Tego rodzaju rzeczą zarządza
readline
biblioteka, której zachowanie można kontrolować za pośrednictwem~/.inputrc
. Edytuj (lub utwórz, jeśli nie istnieje)~/.inputrc
i dodaj ten wiersz:Teraz otwórz nowy terminal i powinien działać.
Wyjaśnienie
To
\C-H
jest właściwie Control+ BackSpace. Możesz zobaczyć kody klawiszy, naciskając Ctrl+, Va następnie klawisz, którego szukasz. Zobaczysz, że BackSpacepowraca^H
.Teraz powinno być możliwe powiązanie Control+ BackSpacez funkcją bash, która usuwa poprzednie słowo (
backward-kill-word
lubunix-word-rubout
) za pomocą"\C-H": backward-kill-word
. Nie mogę tego jednak uruchomić. Działa doskonale z różnymi klawiszami ("\C-E": backward-kill-word
na przykład powoduje Ctrl+ Eusunięcie poprzedniego słowa), ale z jakiegoś powodu nie mogę go uruchomić BackSpace.Tak więc, aby obejść ten problem, po prostu mapujemy Ctrl+ Backspacena Ctrl+, Wktóry jest już zmapowany
backward-kill-word
. Tak więc, gdy naciśniesz Ctrl+ Backspace, zostanie to przetłumaczone na Ctrl+, Wktóre z kolei wyślebackward-kill-word
. Pomysł na to obejście mam z tego postu SU .źródło
Do niedawna terminal gnome emitował ten sam kod na + Backspacei , dlatego nie można rozróżnić tych dwóch w aplikacji.CtrlBackspace
Zostało to naprawione w wersji vte-0.42, która jest częścią Gnome 3.18 wydanego tej jesieni.
Jeśli używasz Wily, możesz znaleźć zaktualizowane pakiety w Gnome3 Staging .
źródło
Zamiast tego użyj Alt+ Backspace: działa tak jak Ctrl+ Backspacei nie wymaga żadnej konfiguracji.
źródło
Działa na moim komputerze. Tylko upewnij się, że używasz tmux z master i nvim z linuxbrew, a control + backspace działa również w bash i vim!
(Uzyskaj także bash z linuxbrew)
źródło