Зробити iTerm для перекладу "мета-ключа" так само, як і в інших ОС


179

У оболонці bash з прив'язкою клавіш emacs ви можете використовувати комбінацію клавіш, наприклад Mf, Mb, для переміщення одного слова вперед або назад відповідно до запиту оболонки відповідно. Зазвичай мета-ключ відображається на клавішу Alt в Windows та Linux. Однак в iTerm я не зміг знайти спосіб відобразити цей мета-ключ або на клавішу Option, або на командний ключ на моєму MacBook Pro.

Здається, що в OS X мета-ключ за замовчуванням відображається на ключ ESC. Таким чином, ви можете використовувати ESC-f, ESC-b в iTerm. Однак ключ ESC, мабуть, не практичний у використанні. Крім того, в iTerm є опція, яка дозволяє вам модифікувати відображення мета-ключа (Закладки> Профілі> Профілі клавіатури> Глобальний> Опційний ключ як ...), схоже, це налаштування взагалі не працює.

Тому, якщо хтось знає, що є вирішенням цієї проблеми, будь ласка, дайте мені знати.

Я перейшов до останнього випуску, 0.9.6.1012, і така поведінка зберігається.

Редагувати: Деякі роз’яснення до мого питання. Ключова прив'язка, про яку я говорю, стосується bash shell, а не в emacs. Просто буває так, що за замовчуванням bash shell також використовує ті ж прив'язки ключів, що й emacs.


Після деякого часу возиться з цим питанням і не вдається знайти рішення. Я здався і перейшов на Термінал зараз.
ejel

2
не забувайте, що iterm2 вже існує, і все там добре =)
зупиняється на

Відповіді:


207

Cmd+., Profiles, KeysІ виберіть Left option Key acts as: +Esc.

Для мене працює в emacs, хоча я не впевнений, чи матимуть це інші небажані ефекти.


Я спробував Option Key як ... з усіма варіантами, але жоден з них не працює для мене в bash shell. Він показує лише "?" кожного разу, коли я натискаю комбінацію мета-клавіш.
ejel

2
Схоже, мова для введення повинна бути американською, щоб функція + ESC працювала. + ESC не працював для мене, коли було вибрано метод введення японської / ромаджі, але він почав працювати, коли я перейшов на мову введення в США
Домінік Коуні

2
Налаштування, профіль, клавіші та виберіть Ліва опція Клавіша діє як: + Esc. Тоді у вас буде як ліва клавіша опції, так і клавіша Esc як мета-ключ. Саме так сталося в моєму випадку.
cgl

З iTerm 2, здається, це рекомендований варіант.
ejel

4
Для моєї зовнішньої клавіатури я повинен був встановити як ліву, так і праву опціональні клавіші для використання Esc+, хоча я використовував ліву клавішу опціону, вона все ще надрукувала дивні символи. Це може статися тому, що я використовую параметр « Модифікатори клавіатури» в налаштуваннях клавіатури Mac для зміни клавіш.
grego

130

Перейдіть до закладок> Керуйте профілями . Потім виберіть « Профілі клавіатури»> «Глобальний» та виберіть « Опційний ключ» як мета . Це працює для мене у версії 0.9.6.1201.


2
Мені довелося змінити запис xterm (OS X), а не глобальний, але він працює зараз.
Джейсон Аксельсон

Я не знаю, чому на моїй машині налаштування порушено 0.9.6.1201 та кілька інших збірок, які я спробував. Однак він працює з останньою версією 0.9.6 і 0.10, хоча. Тож це зараз не повинно бути проблемою.
ejel

11
в iTerm2 це спрацювало лише після того, як я повторно визначив клавіші швидкого доступу профілю для alt+ ->та alt+ <-для надсилання послідовності втечі + f/ bвідповідно.
amirnissim

Мені довелося відкрити нову сесію ітерми, щоб почати її
Skurpi

@SridharRatnakumar також працює для iTerm
Krzysztof Wende

31

У рядку меню Iterm2 => Налаштування => Профілі виберіть вкладку клавіш і виберіть

ліва клавіша Option діє як + Esc

введіть тут опис зображення

працював і для мене в irssi.


Відмінно, це також працює у поєднанні iTerm2 + tmux
TheJavaGuy-Іван Мілосавлевич

8

Я також не міг змусити клавішу Alt працювати, але є вирішення, яке дозволяє принаймні функціонувати для навігації по словах за допомогою клавіш курсору:

Перехід до наступного або попереднього слова в iTerm за допомогою клавіш Alt / Option + клавіші зі стрілками вліво або вправо


2
Для backward-delete-word(⎇-DEL) надіслати шістнадцятковий код 0x17, для переходу до початку введення (⌘- ←) відправлення 0x01та для переходу до кінця (⌘- →) відправлення 0x05.
Ленар Хойт

5

Я використовую iTerm2 , і для мене ця відповідь лише частково вирішила мою проблему:

Cmd+ ,=> Профілі => Клавіші та виберіть Ліва опція Клавіша діє як: + Esc .

введіть тут опис зображення

На додаток до цього, мені довелося перейти до Cmd+ ,=> Профілі => Ключі та у списку ключових відображень знайти обидва комбінації клавіш : введіть тут опис зображеннята введіть тут опис зображення, двічі клацніть по них та змінити їх ярлики на наступне:

введіть тут опис зображення

введіть тут опис зображення

* Переконайтесь, що виберіть дію " Послати послідовність втечі" .


Це справді корисно. Дякую, брате!
LeOn - Хан Лі

4

Тут збирається все воскресіння зомбі, але заради нащадків -

Це повідомлення працювала так, як ви хочете для мене, для Mb та Mf, зберігаючи "Option Key as Meta", щоб ви не жертвували модифікатором (я маю відображення vim, використовуючи мета, особисто).

Підсумовуючи, у свій профіль глобальної клавіатури додайте два нових відображення з налаштуваннями:

  1. Введіть як шістнадцятковий код, значення 62 для b, 66 для f ( man ascii)
  2. Модифікатор як варіант
  3. Дія як послідовність відправки, значення b або f

Єдине, що мені ще не вистачає з Terminal.app, - Opt-Backspaceце видалити словом. Для цього є й інші вирішення, але я просто намагаюся навчити себе користуватися Ctrl-w.


З цієї відповіді може бути нова функція, але ви можете зіставити ярлик глобальної клавіші для надсилання Ctrl-wпісля Opt-Backspaceнатискання.
Стів Бузонас

4

У iTerm2 простіше. Перейдіть до налаштувань-> закладки-> клавіатури та виберіть Опція надсилає + ESC. У iTerm2 ви можете налаштувати ліву та праву клавіші опцій окремо, тому не забудьте змінити обидві, якщо це те, що ви хочете. Посилання на iTerm2: http://sites.google.com/site/iterm2home/


2

Перейдіть до закладок> Керуйте профілями. Потім виберіть Профілі клавіатури> Глобальний і виберіть Опційний ключ як + ESC.

Працює в iTerm Build 0.9.5.0611 та Build 0.9.6.20090415


Хм. Здається, ця настройка на моїй машині порушена і з цими двома версіями. Однак останні 0.9.6.20090928 та 0.10 працюють, як очікувалося.
ejel

2

Я знайшов рішення і для stackoverflow, просто перейдіть до профілю клавіатури і в "Глобальному" змініть клавішу "Опція" як "+ ESC

який працює для мене ідеально =) btw якийсь іттерм-патч існує також дивіться тут: http://www.emacswiki.org/emacs/EmacsForMacOS


0

Спробуйте "експортувати LANG = C". Я не є експертом emacs, але я виявив, що це дозволяє emacs в OS X розпізнавати ключ Option як мета-ключ в iTerm,


0

Я не знаю про iTerm, але ви можете це зробити в Terminal. Інструкції можна знайти тут:

Emacs на Mac OS X Прив'язки клавіш Leopard


Дякую. Я усвідомлюю, що можу це зробити в Терміналі. Я просто хочу досягти такого ж результату в iTerm. До речі, те, що я шукаю, - це прив’язка ключів у bash shell, а не в emacs. Просто буває, що оболонка bash також використовує прив'язку клавіш emacs.
ejel

0

Ось що для мене працювало: Закладки> Керування профілями> Профілі клавіатури> Глобальний / xterm> Опційний ключ як + Esc. З цим я можу використовувати Option + Enter у Midnight Commander, і поточне вибране ім’я файлу / каталогу відображається у командному рядку, як слід. Опційний ключ як Meta для мене не працював. Моя збірка iTerm становить 0,10.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.