Powiedzmy, że napisałem długie polecenie w terminalu Mac OSX, tj
say "Hello, how are you? I am good thank you. How is it going with you? Fine, thanks"
a teraz chcę zmienić słowo Hellona Hi.
Aby to zrobić, teraz muszę naciskać (lub przytrzymywać) lewy klawisz klawiatury, aż „kursor” dojdzie do końca słowa Hello, a następnie go usunąć. Zwykła technika „przytrzymywania opcji” nie działa tak jak w większości innych aplikacji OS X.
Czy istnieje sposób na pominięcie słowa na raz (lub inny krótszy sposób na uzyskanie kursora)?
Edycja wiersza poleceń jest funkcją twojej powłoki, a nie terminala . Prawdopodobnie twoja powłoka jest bash i prawdopodobnie styl edycji wiersza poleceń jest ustawiony na „emacs”.
Oto kilka kombinacji klawiszy w stylu Emacsa, które mogą Ci się przydać:
Ca: beginning-of-line
Ce: end-of-line
Mf: forward-word
Mb: backward-word
Płyta CD: delete-char
MD: kill-word(usuń następne „słowo”)
M-DEL: backward-kill-word
C- x oznacza Control+ x, więc Ca jest Control+ a.
M- x oznacza Meta+ x, ale prawdopodobnie nie ma klawisza Meta na klawiaturze. Zamiast tego możesz użyć ESC x (tj. EscapeWtedy x). Terminal ma ustawienie automatycznego wysyłania ESC przed naciśnięciem i przytrzymaniem klawiszy Option. Użycie tej funkcji wyłącza rozszerzoną obsługę znaków, którą Mac OS X zwykle zapewnia podczas korzystania z modyfikatora Opcji. Jeśli więc używasz kilku znaków rozszerzonych i chcesz Option+ xwysłać ESC x , możesz włączyć tę opcję terminala .
W twoim przykładzie istnieje wiele sposobów przejścia na „Cześć”:
Wyszukaj „Hello”: Cr H ello Cj (lub ESC)
W normalnym Emacsie wystarczy użyć RET ( Return), aby zakończyć wyszukiwanie w bieżącej lokalizacji i powrócić do edycji. Ale w bash domyślne wiązania powodują, że RET (tj. Cm) zawsze wykonuje bieżącą linię, nawet jeśli aktywne jest wyszukiwanie przyrostowe. Więc część Cj / ESC jest odchyleniem od normalnego Emacsa.
Przejdź na początek linii i idź do przodu: Ca Mf Cf (lub →)
Przejdź na początek linii, a następnie przesuń się o słowa: Ca Mf Mf Mb
Używaj Mb dużo (naprawdę możliwe, jeśli zamapujesz Option na Meta).
Istnieje również kilka sposobów wykonania żądanej wymiany:
usuń słowo i zastąp je: Md H i
usuń znaki i zamień je: Cd Cd Cd Cd Cd H i
przejdź obok „H” i usuń następującą pracę, zastąp ją: Cf Md i
przejdź obok „H” i usuń pozostałe znaki, zamień je: Cf Cd Cd Cd Cd i
Jeśli zatrzymałeś się na końcu słowa (może przez Ca Mf Mf), możesz użyć M-DEL H i.
Nie jestem pewien, czy to oczywiste, czy nie, zajęło mi to minutę, ale zrozumiałem, że jestem na MBP bez meta-klucza i używam domyślnej konfiguracji terminala. Aby przejść do przodu i do tyłu słów, mogę nacisnąć Esc, a następnie F, lub Esc, a następnie B. Chciałem tylko wspomnieć o tym, ponieważ sposób, w jaki to wyjaśniono powyżej, zmusił mnie do spróbowania nacisnąć Esc + x, a następnie f lub b ...
cwd
Czy istnieje sposób na zmianę środowiska lub powłoki, aby można było wykonać kombinację klawiszy Ctrl lub Fn + strzałka w celu dopasowania do mojego IDE?
Domyślnym wiązaniem readline forward-wordjest Meta-F ( bash(1)strona man, sekcja READLINE , podsekcja Polecenia dotyczące przenoszenia ). Nie jestem jednak pewien, na co Meta tłumaczy się w OS X. Może opcja.
<kbd>
elementów. Podzbiór HTML jest dozwolone w znacznikach tutaj . Wygląd wynika z lokalnego stylu znacznika (tło, kolor obramowania, styl obramowania, szerokość obramowania itp.). Możesz przejrzeć znaczniki źródłowe mojego postu („wyświetl źródło” na tej stronie ). Zobacz meta.stackexchange.com/questions/5527, mimo że fantazyjny styl jest wyłączony w MSO: meta.stackexchange.com/questions/1939/#23571set -o vi
plik .bashrc! gnu.org/software/bash/manual/html_node/…Domyślnym wiązaniem readline
forward-word
jest Meta-F (bash(1)
strona man, sekcja READLINE , podsekcja Polecenia dotyczące przenoszenia ). Nie jestem jednak pewien, na co Meta tłumaczy się w OS X. Może opcja.źródło