iTerm 2: Jak ustawić skróty klawiaturowe, aby przejść do początku / końca wiersza?

Widzę to Ctrl+zostawić/Prawa przeskakuje do początku / końca linii. Jak zmienić to na Cmd+zostawić/Strzałka w prawo ?

W celu uzyskania Alt+zostawić/Strzałka w prawo działa poprawnie dla Word jumping follow ten artykuł .

Author: Flip, 2011-06-01

12 answers

Dodaj w iTerm2 następujące klawisze skrótu profilu

FOR  ACTION         SEND
⌘←  "SEND HEX CODE"      0x01 
⌘→  "SEND HEX CODE"      0x05
⌥←  "SEND ESC SEQ"  b
⌥→  "SEND ESC SEQ"  f

Oto wizualizacja dla tych, którzy jej potrzebują

iTerm add key visual

 538
Author: Matthias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-02 14:48:01

Aby przeskakiwać między słowami i początkiem / końcem linii w iTerm2, wykonaj następujące kroki:

  • iTerm2 - > Preferencje ( + ,)
  • otwórz zakładkę "Klucze"
  • dodaj następujące globalne klawisze skrótu

Przesuń kursor o jedno słowo w lewo

  • Kombinacja Klawiatury: +
  • Akcja: Wyślij Kod Hex
  • Kod: 0x1b 0x62

Przesuń kursor o jedno słowo prawo

  • Kombinacja Klawiatury: +
  • Akcja: Wyślij Kod Hex
  • kod: 0x1b 0x66

Przesunięcie kursora na początek linii

  • Kombinacja Klawiatury: +
  • Akcja: Wyślij Kod Hex
  • kod: 0x01

Przesunięcie kursora na koniec linii

  • Kombinacja Klawiatury: +
  • Akcja: Send Hex Kod
  • kod: 0x05

Delete word

  • Kombinacja Klawiatury: + ←Delete
  • Akcja: Wyślij Kod Hex
  • kod: 0x1b 0x08

Delete line

  • Kombinacja Klawiatury: + ←Delete
  • Akcja: Wyślij Kod Hex
  • kod: 0x15

Undo

  • Kombinacja Klawiatury: + z
  • Akcja: Wyślij Kod Hex
  • kod: 0x1f

Nie zapomnij usunąć poprzednie wiązania :

  • otwórz zakładkę "Profile"
  • Kliknij zakładkę "Klucze"
  • Usuń mapowania dla kombinacji klawiszy + oraz +
 272
Author: sqren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-31 05:14:42

Widzę, że jest już wiele dobrych odpowiedzi, ale powinno to zapewnić najbardziej zbliżoną do natywnej funkcjonalności OSX, jak to tylko możliwe, w czymś więcej niż tylko powłoce. Zweryfikowałem, że działa to w sesjach ZSH, Bash, node, python-i, iex i irb / pry (używając RB-readline gem dla readline, ale powinno działać dla wszystkich).

Otwórz Preferencje iTerm+, i przejdź do zakładki Profiles (Zakładka Keys może być używana, ale dodanie przypisywania klawiszy do profilu pozwala zapisać profil i zsynchronizować go z wieloma komputerami) i keys sub-tab i wprowadź następujące:

Usuń wszystkie znaki z lewej strony kursora

+←Usuń Wyślij Kody Hex:

0x15 bardziej kompatybilny, ale funkcjonalność czasami polega na usunięciu całej linii, a nie tylko znaków po lewej stronie kursora. Ja osobiscie uzywam tego a nastepnie nadpisuje mój bindkey zsh dla ^U aby usunac tylko rzeczy po lewej stronie kursora (patrz poniżej).

lub

0x18 0x7f mniej kompatybilny, nie działa w węźle i domyślnie nie działa w zsh, zobacz poniżej, aby naprawić zsh (bash / irb / pry powinno być dobrze), wykonuje pożądaną funkcjonalność, gdy działa.

Usuń wszystkie znaki z prawej strony kursora

+fn+←usunąć lub +Delete→ Send hex Codes: 0x0b

usunąć słowo na lewo od kursora

+←Usuń Wyślij Kody Hex:

0x1b 0x08 W Elixirze, IEX wydaje się działać dobrze wszędzie indziej.]}

lub

0x17 działa wszędzie, ale nie zatrzymuje się przy normalnych przerwach wyrazów w IRB i zamiast tego usunie, dopóki nie zobaczy dosłownej spacji.

usuń jedno słowo na prawo od kursora

+fn←usunąć lub +Delete→ Send Hex Codes: 0x01b 0x64

przesuń kursor na początek linii

+ Wyślij Kody Hex: 0x01

Przesunięcie kursora na koniec linii

+ Wyślij Kody Hex: 0x05

przesuń kursor o jedno słowo w lewo

+ Wyślij Kody Hex: 0x1b 0x62

Move kursor jedno słowo w prawo

+ Wyślij Kody Hex: 0x1b 0x66

Undo

+z Wyślij kody Hex: 0x1f

Redo zazwyczaj nie jest związane w bash, zsh lub readline, więc możemy ustawić go na nieużywany kod heksowy, który możemy następnie naprawić w zsh

++Z lub +y Wyślij kody Hex: 0x18 0x1f

Teraz Jak naprawić to, co nie działa

Dla zsh można skonfigurować Wiązanie dla jeszcze nie funkcjonującego +←usunąć i ++Z/+y by running:

# changes hex 0x15 to delete everything to the left of the cursor,
# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line' >> ~/.zshrc

# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc

# adds redo
$ echo 'bindkey "^X^_" redo' >> ~/.zshrc

# reload your .zshrc for changes to take effect
$ source ~/.zshrc

Nie jestem w stanie znaleźć rozwiązania dla dodawania redo w bash lub readline, więc jeśli ktoś zna rozwiązanie dla którejkolwiek z nich, proszę o komentarz poniżej i postaram się je dodać.

Dla każdego, kto szuka tabeli wyszukiwania na jak przekonwertować sekwencje kluczowe na szesnastkowe, uważam ta tabela jest bardzo pomocna.

 188
Author: Travis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-15 12:38:00

Postępuj zgodnie z poniższym samouczkiem, aby skonfigurować swoje kluczowe preferencje w iterm2.

  1. Utwórz nowy klucz shorcut
  2. Wybierz" Wyślij sekwencję ucieczki " jako akcję
  3. Następnie, aby ustawić cmd-left , w tekście poniżej, że:
    • Enter [h dla początek linii
      lub
    • Enter [F dla koniec linii
 42
Author: Jaime Bellmyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-02 19:12:43

W iTerm 3.0.12 możesz przełączyć się na Natural Text Editing preset:

Tutaj wpisz opis obrazka

ITerm → Preferencje → Profile → Klucze

Warning ponieważ jest to ustawienie wstępne, może zastąpić klucze, które wcześniej bindowałeś. Dlatego lepiej jest zapisać bieżące powiązania klawiszy przed zastosowaniem ustawień domyślnych.

 27
Author: Nik Kov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-20 12:09:26

Dla szybkiego odniesienia każdego, kto chce przejść do końca linii lub początku linii w iTerm2, powyższy link http://hackaddict.blogspot.com/2007/07/skip-to-next-or-previous-word-in-iterm.html zauważa, że w iTerm2:

  • Ctrl+A , przeskakuje na początek linii, natomiast
  • Ctrl+E , przeskakuje na koniec linii.
 11
Author: Ioannis Filippidis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-16 20:58:41

Aby pomóc każdemu, kto ma ten sam problem, ale konkretnie używa Zsh shell z iTerm 2. Okazuje się, że Zsh nie odczytuje poprawnie /etc/inputrc , a więc nie rozumie żadnych wiązań klawiszy ustawionych w preferencjach!

Aby to naprawić, musisz dodać kilka wiązań kluczy do pliku .zshrc, takich jak:

# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line

Zwróć uwagę na odwrotne ukośniki w powyższym przykładzie przed "e", połączony artykuł nie pokazuje ich, więc dodaj je do pliku .zshrc podczas dodawania wiązania.

 7
Author: Nerdwood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-28 10:42:58

Stare wiązania Emacsa mogą nadal działać w terminalu iterm2 i os x:

Preferencje -> profile - > Klucze (zakładka sub w profilach)

  • Set Left/Right option <kbd>⌥</kbd> key acts as +Esc (podobnie w terminalu os x)

To powinno włączyć alt-f i alt-b do poruszania słów po słowach. (Still ctrl-a i ctrl-e zawsze działa jak zwykle)

Jeśli ustawione jako {[1] } te stare wiązania będą działać, podczas gdy niektóre iterm2 wiązania niedostępne.

 3
Author: halfelf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-22 03:16:11

bind -p wyświetli listę połączonych klawiszy ucieczki w powłoce, które mogą pomóc dać ci więcej pomysłów / wyszukiwanych terminów.

 1
Author: Jose Alban,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-19 12:26:38

Jak wyjaśniono w tutaj , możesz to zrobić za pomocą prostych kroków:

Domyślnie, word jumps (opcja + → lub ←) i Word deletions (opcja + backspace) nie działają. Aby je włączyć, przejdź do "iTerm → Preferencje → Profile → Klucze → Wczytaj Preset... → Naturalna Edycja Tekstu → Boom! Głowa wybuchy "

 1
Author: Islam.Ibrahim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-15 11:03:55

Wyjaśnione w https://aaronaddleman.com/articles/hexcodes-and-iterm/

Możesz użyć xxd -psd, aby uzyskać kod szesnastkowy klucza.

 1
Author: Zitao Xiong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-08 08:50:04

Dla mnie zadziałała następująca kombinacja:
| Key Action Esc+ End result | |-----------------------------------------------------| | Send Escape Sequence a Send ^[ a | | Send Escape Sequence e Send ^[ e |

 0
Author: Halil Özgür,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-22 15:22:59