Zauważyłem, że bash ma skrót do ctrl+, Tktóry zamienia ostatnie dwa znaki przed kursorem.
Zastanawiam się, dlaczego inżynierowie postanowili to uwzględnić.
- Czy został odziedziczony z poprzedniej konwencji?
- Czy jest jakiś praktyczny cel, do którego jest to powszechnie używane?
bash
keyboard-shortcuts
history
Philip Kirkbride
źródło
źródło
bash
jako taka, alereadline
(której bash używa do wprowadzania danych w monicie). Twój bash używaemacs
powiązań klawiszy; możesz zmienić powiązania klawiszy vi, jeśli jesteś stronnikiem edytora Wars;) sanctum.geek.nz/arabesque/vi-mode-in-bash Istnieje tutaj kilka „ ściągów ”readline
: readline.kablamo.org/emacs .html i readline.kablamo.org/vi.html .readline
ChangeLog
wskazówek na to. Więc pierwotnie skrót był obsługiwany w samym Bashu, choć krótko, zanim został wyciągnięty doreadline
- ale skrót przyszedł do Basha od Emacsa (nie wiem, czy został wymyślony w Emacsie, czy pochodził skądinąd).Odpowiedzi:
Jest to dziedziczone (przez readline) z GNU Emacs, który używa control- Tdo transpozycji znaków:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
Zauważ, że edytor linii bash domyślnie pracuje w trybie Emacsa, ale możesz także przełączyć go w tryb vi, jeśli wolisz.
źródło
Bardzo przydatne jest szybkie naprawianie literówek:
staje się
z jednym CtrlT.
Można użyć AltTdo wymiany słów zbyt ( np podczas przełączania między
service
isystemctl
...).Historycznie rzecz biorąc, ta CtrlTfunkcja pojawiła się w Bash od Emacsa z dużym prawdopodobieństwem. Prawdopodobnie został skopiowany do Emacsa z innego edytora; był obecny w edytorze E. Stanforda (patrz Essential E strona 13) do 1980 r., a E. miał silny wpływ na Richarda Stallmana (jak opisano w Wolnym jak w Wolności ). Został zaimplementowany w bardzo wczesnych wersjach Bash, przed jego pierwszym wydaniem w 1989 roku, kiedy został wyciągnięty do
readline
biblioteki, w której obecnie mieszka (jest to pierwszy wpis wreadline
ChangeLog
podpowiedziach na ten temat).źródło
word1 word2 word3
się,word3 word2 word1
jeśli zostanie wykonane oword3
.Ta kombinacja klawiszy, powiązanie odziedziczone po
emacs
edytorze, powoduje zamianę 2 ostatnich wpisanych znaków na końcu linii, użytych w środku linii, zamienia znak po lewej stronie kursora i znak pod kursor.Wydaje się, że próżno jest mieć powiązanie z tak rzadko używaną funkcją, którą można łatwo uzyskać za pomocą kilku kolejnych naciśnięć klawiszy. Stare zegary, takie jak ja, używam go dość często i oszczędzały czas transmisji w czasach modemu 300 bodów, pod koniec lat 70., szczególnie w środku długich linii.
Podobne i bardziej przydatne polecenie, powiązane z Alt+ T, przenosi słowa po lewej i po prawej stronie kursora.
Tzostał wybrany, ponieważ jest to pierwsza litera transpozycji . Inne wiązania o podobnym pochodzeniu obejmują:
Wiązania te, zaimplementowane w pakiecie readline GNU, są zatem dostępne we wszystkich programach, które używają go do wprowadzania danych przez użytkownika, takich jak bash , ale także gdb , bc , ...
Niektóre z nich są również dostępne w innych środowiskach: wiersz wprowadzania adresu URL przeglądarki Firefox, pola wprowadzania tekstu w interfejsie graficznym OS / X oraz wiele menedżerów okien opartych na X.
Użytkownicy vim mogą wybrać odpowiednie powiązania za pomocą zmiennej środowiskowej.
źródło
Alt
iCtrl
te kombinacje klawiszy są powiązane w spójny sposób.C-t
wydaje się jednak, że nic nie robi. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindingsJest bardzo użyteczny do korygowania drobnych tpios, które zostały przypadkowo zmiażdżone piary listów.
(Mając ciężki RSI w obu nadgarstkach, często używam tego osobiście ...)
źródło
Bardzo szybko naprawiam literówki. wywołuje natychmiastowy 2 blok korektora przed kursem.
Jeśli wpiszesz
ls-
i chcesz spację międzyls
& łącznikiem, możesz użyć Ctrl+TDziała to, jeśli masz spację po łączniku, a następnie zrób Ctrl+T
źródło