OS X термінальний еквівалент Ctrl + ліворуч / Ctrl + праворуч


19

У Windows та Linux я завжди міг натиснути ctrl+ або ctrl+, щоб пропустити слово вліво або вправо в терміналі. У текстових редакторах здається, що + / працює, але в терміналі немає кісток. Я шукав Google і не знайшов нічого, окрім сторінки Вікіпедії, яка вимагає + B/ Fвиконує завдання, але все, що вона робить, - це надрукувати ∫ і ƒ символи на мій термінал (або ı і Ï, якщо я утримую ). Будь-які ідеї?

Відповіді:


12

Ви можете використовувати ключ, але вам потрібно вибрати варіант, щоб використовувати його як "мета" клавішу: alt текст

Як тільки ви це зробите, + Fі + Bпрацюватимуть, як ви очікуєте.


дивовижно ... це зводить мене з розуму вже давно. Дякую.
Robert S Ciaccio

2
Також перевірте apple.stackexchange.com/q/1391/115 щодо можливих "недоліків" цієї опції.
Мартін Маркончіні

Класна відповідь. +1
Soner Gönül

12

Це також зводило мене з розуму, однак я не хотів виправлення, що стосується терміналу, оскільки я не використовую термінал, і щоб мати змогу SSH в моєму вікні OSX, потрібно було використовувати і правильні клавіші.

Також особисто мене не хвилював ключ, про який говорилося раніше; Я хотів підтримувати комбінацію ctrl+ /, до якої я звик в Linux.

Щоб вирішити цю проблему, я додав у своє ~/.profile:

bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

Зверніть увагу, перші два стосуються bash у терміналі ; останні два стосуються bash в iTerm2 та вхідних з'єднань ssh . Не запитуйте мене, чому емуляція клавіатури відрізняється;)

Для запису я зміг знайти те, що насправді були ключовими кодами завдяки підказці з цієї відповіді stackoverflow : Ви можете запустити cat > /dev/nullдля моніторингу точних кодових клавіш, надісланих під час комбінації клавіш.

(Зверніть увагу, що для мене, коли я запускаю cat > /dev/nullі натискаю ctrl+ це створює ^[[1;5D. Ваш точний код ключа може відрізнятися , але перший ^[представлений як \e, як показано в моєму прикладі коду.)

BTW, якщо ви хочете побачити всі активні баш-клавіші, запустіть bind -p.


Мені подобається використовувати xxdдля перевірки введення клавіатури. Ви можете бачити символ, який відображається під час його введення, а потім xxdвидає значення у шістнадцятковій формі під час введення return.
Кріс Пейдж

Ідеально! Тільки те, що я шукав :) Ніколи не пощастило зробити "налаштовані на додаток" налаштування вище, але це просто працює!
біско

Переконайтесь, що контроль + ліворуч / праворуч не відображаються на "перемикання пробілів" у ваших sysprefs> клавіатура> ярлики> експозиція. У мене не було відкритих інших пробілів, тому це виглядало так, що введення моєї клавіатури не працює.
судо

6

Як і для Mac OS X Lion 10.7, термінали за замовчуванням картають - / до esc+ B/ F, тому це тепер вбудовано для bash та інших програм, які використовують ці сумісні з emacs сполучення клавіш.


5

якщо ви знаєте, як використовувати vi, ви також можете ввімкнути режим редагування рядків vi, використовуючи set -o viу своєму .bash_profileкомандному рядку або в будь-який час. Потім ви можете перемикатися між режимами командування vi та вставляти режими. Таким чином, ви можете потрапити на втечу, тоді використовуйте команди vi для навігації по лінії:

0 = move to beginning of line
$ = move to end of line
w = move forward one word
b = move backward one word

Отримавши потрібне положення, ви можете скористатися іншими командами vi для введення режимів вставлення чи додавання або видалення символів один за одним тощо.


Я ніколи не знав, що ти можеш використовувати 0 для початку рядка, я завжди використовував ^
Джейсон Салаз

1
@vxjasonxv: ya, ^ переходить до першої непробільної таблиці, 0 переходить до першого стовпця (який ви, мабуть, уже помітили, але я подумав, що викину його туди для інших: P)
Роберт S Ciaccio

1
О, ЯКЩО БУДЕ ЛИШЕ, я цього ще не помічав! О людино, ця функціональність (перший небільний простір) ^ завжди мене дратувала. Дякую.
Джейсон Салаз

Звичайно, ESC ^це здорово, коли вам це потрібно, це тільки дратує, коли ви хотіли зробити щось інше цілком :)
ocodo

3

Відкрийте термінал, перейдіть до налаштувань, клавіатури. У списку ви знайдете "курсор ctrl праворуч" та "курсор ctrl зліва".
Змініть призначені їм дії на "\ 033f" і "\ 033b" відповідно, і ви зможете використовувати ctrl+ і ctrl+ для переміщення, не втрачаючи клавіші alt.


2

Здається, що esc+ Bі esc+ Fвідображаються за замовчуванням, щоб перейти до початку та кінця слів. Хоча для моєї системи ви не можете затримати, escале доведеться повторно натискати на кожне слово.


1
Esc ніколи не є модифікатором, він просто переходить у режим "Escape", коли ви натискаєте на нього, вважайте це модальним способом виконання дій, на відміну від shift / ctrl / meta тощо (у схемі Readline речі все одно.)
ocodo

0

Остання версія ОС відображає це в просторах. Навіть якщо у вас вимкнено пробіли, гарячі клавіші все одно можуть мати коротке замикання в цьому прихованому місці:

Клавіші курсору Terminal.app: відключити Системні налаштування -> Комбінації клавіш -> Керування місією -> Перемістити ліворуч пробіл

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