Покращена функціональність автозаповнення терміналів (подібно до Matlab's)


18

Якщо хтось із вас коли-небудь використовував Matlab, ви, можливо, помітили функціональність командного вікна в цій програмі. Цікаво, чи можна включити ту саму функціональність у Mac Terminal.

Це працює так: припустимо, ви раніше використовували дві команди в цьому сеансі терміналів. Спочатку ви використовували a, cd ~а потім a ls -la.

У кожному * nix терміналі, включаючи Mac, якщо ви натиснете на Up Arrow, він спочатку покаже ls -laкоманду, а якщо ви натиснете її двічі - cd ~команду. Це чудово. Але в Matlab, якщо спершу ввести лист, cа потім натиснути Up Arrow, він не відображатиметься ls, а замість цього, перейдіть безпосередньо до cd ~. Це економить багато часу, коли у вас є великі команди та довгий список раніше використовуваних команд.

Це можливо?

Відповіді:


27

У оболонці Bash ви можете натиснути Control+, Rщоб здійснити зворотний інтелектуальний пошук в історії. Почніть вводити команду, і оболонка автоматично заповниться раніше введеними командами.

Потім ви можете або натиснути, Enterщоб виконати команду ще раз, скористайтеся стрілкою вліво або вправо для редагування команди, або натисніть клавішу Control+, Rщоб перейти до інших можливих завершень.

Зворотний інтелектуальний пошук


9

Збережіть це як ~ / .inputrc:

# make the up and down arrows cycle through commands that match the start of a line
"\e[A": history-search-backward
"\e[B": history-search-forward

Варіант-up був би \e\e[Aі control-p \C-p. Ви можете побачити послідовності виходу інших комбінацій клавіш, натиснувши клавішу control-v.


1
Для користувачів, яких ще немає ~/.inputrc, просто створіть його.
Сіббс Азартні ігри

Повинно бути прийнятим відповідь
ripper234

1
"\ e [A": команда не знайдена
Луї,

2

Інша річ, яку ви можете зробити, це набрати, !а потім першу букву, і вона знайде останню лист. IE: cd ~можна отримати доступ до!c


1

Це особливість оболонки. Control-R зробить те, що ви описуєте, але змінившись на більш сучасну оболонку, ви отримаєте набагато більше. Погляньте на Z-оболонку (zsh), є трохи кривої навчання, але вона дуже потужна.


Я думаю, ти маєш на увазі Control-R.
jmk

1

zsh виконає команди точно так само, як у вашому прикладі. Вам навіть не потрібно нічого робити, крім того, щоб використовувати його для своєї оболонки.


0

Додайте їх до свого .cshrc (якщо ви використовуєте tcsh) -

  bindkey -k up history-search-backward
  bindkey -k down history-search-forward

Потім виконайте джерело ~ / .cshrc, щоб отримати саме ті функції, які ви описуєте.

Я не знаю, чи є еквівалент .profile.

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