Еквівалентні / альтернативи для Alt + Dot в Mac


36

Одне, що мені не вистачає в оболонці Linux, - це ярлик Alt + Dot . Що він робить, це вставити останній аргумент попередньої команди. Здається, це банальна техніка, але вона справді корисна.

тобто якщо ви введете це:

$ ls /Applications/MAMP/conf/apache/

Наступного разу вам просто доведеться набрати команду + ярлик і аргумент буде завершено для вас.

$ cd 'alt+dot'

На Mac я знаю 2 альтернативи; натиснувши Esc + Dot або набравши ! $ , ! * з чарівною установки простору .

Однак, хоча обидві альтернативи вставляють останні аргументи, які ви використовували, вони не можуть прокрутити назад в історії команд, як це робиться кілька разів введення Alt + Dot .

Я можу зараз жити з цими варіантами, але мені б хотілося знати, чи хтось знає кращий спосіб це зробити.

Відповіді:


21

Ви можете натискати Esc-крапку багато разів, вона робить те ж саме, що і alt-dot. Але, як і ви, мені здається, що набирати текст більш громіздко, ніж альт-крапка.


3
Я можу натиснути його багато разів, але це працює лише перший раз
пабласо

2
Не забудьте, ви праві. Вам просто потрібно випустити esc, щоб натиснути його знову, тоді він працює як очікується, прокручуючи історію. Зважаючи на те, що обробляти клавішу опціону як метазмінює деякі інші ярлики, це найчистіше рішення.
pablasso

1
Найпростіший спосіб зробити це - встановити прапорець "Використовувати Option Key як Meta" у налаштуваннях терміналів, як це описано у відповіді Річарда Хоскінса.
Ноктюрн

32

У Terminal.app, Налаштування-> Налаштування, виберіть вкладку Клавіатура. Переконайтесь, що "Використовувати Option Key як Meta" встановлено.


3
btw, я мушу зазначити, що, хоча це вирішує проблему alt + крапка, вона заплутує інші комбінації клавіатур, такі як],} або |. Моя клавіатура (іспанська) використовує опцію + somekey, щоб ввести їх. Ну, ти не можеш це все мати.
pablasso

7
Для iTerm відкрийте Параметри, Профілі> Клавіші, клавіша вибору опції діє +Escвнизу.
Іван Чау

5

Використовуйте option+.

Зауважте, що це особливість bash, а не linux. Маки також натрапляють на них. Alt- - це ярлик для вбудованої функції bash insert-last-argument. Прочитайте розділ « ЧИТАЙТЕ» сторінки bash man щоб дізнатися, як ви можете пов’язати це з іншою комбінацією клавіш.


Вставлення кількох відповідних частин:

   Readline Initialization
       Readline  is customized by putting commands in an initialization file (the
       inputrc file).
       The  default key-bindings may be changed with an inputrc file.  Other pro-
       grams that use this library may add their own commands and bindings.

       For example, placing

              M-Control-u: universal-argument
       or
              C-Meta-u: universal-argument
       into the inputrc would make M-C-u execute  the  readline  command  univer-
       sal-argument.

   Readline Key Bindings
       The  syntax  for  controlling  key bindings in the inputrc file is simple.
       All that is required is the name of the command or the text of a macro and
       a  key  sequence to which it should be bound. The name may be specified in
       one of two ways: as a symbolic key name, possibly with Meta-  or  Control-
       prefixes, or as a key sequence.

       When using the form keyname:function-name or macro, keyname is the name of
       a key spelled out in English.  For example:

              Control-u: universal-argument
              Meta-Rubout: backward-kill-word
              Control-o: "> output"

       In the above example, C-u is bound  to  the  function  universal-argument,
       M-DEL is bound to the function backward-kill-word, and C-o is bound to run
       the macro expressed on the right hand side (that is, to  insert  the  text
       ``> output'' into the line).

       In  the  second form, "keyseq":function-name or macro, keyseq differs from
       keyname above in that strings denoting an entire key sequence may be spec-
       ified  by placing the sequence within double quotes.  Some GNU Emacs style
       key escapes can be used, as in the following  example,  but  the  symbolic
       character names are not recognized.

              "\C-u": universal-argument
              "\C-x\C-r": re-read-init-file
              "\e[11~": "Function Key 1"


   Commands for Manipulating the History
       insert-last-argument (M-., M-_)
              A synonym for yank-last-arg.

1
Дякую, я знаю, що це функція bash, але ярлик не включений за замовчуванням, принаймні, не в Terminal.app, оскільки за замовчуванням немає мета-ключа. Дивіться відповідь Річарда.
pablasso

2

Якщо ви відкриєте Terminal.app і введіть налаштування, перейдіть у меню Налаштування> Клавіатура та встановіть прапорець "Використовувати параметр як мета-клавіша", ви можете використовувати ярлики bash, які використовують alt, наприклад:

Alt+ B: Пропустити слово назад

Alt+ F: Пропустити слово вперед

Джерело


1
Ласкаво просимо до Супер Користувача! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки. Поки що я відредагував відповідь за вас.
Der Hochstapler
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.