2

Мне было интересно, есть ли способ изменить текущее автозаполнение powershell. Я использую bash и изменил их, чтобы предложить несколько функций, которые мне хотелось бы получить из опыта PowerShell.

В настоящее время PowerShell, поскольку я пишу команду с папкой, будет автоматически заполнять вкладку, а также циклически перебирать мои папки. Это работает, как мне нравится, но я пропускаю одну особенность - это частичное сопоставление команды и нажатие клавиши «вверх», и она найдет ту команду, которая соответствует остальной части того, что я делаю.

Итак, я бы написал 'echo test', затем id написал бы другие команды и попробовал 'ec' и нажал, и 'echo test' завершился бы, а не последней введенной мной командой

Просто интересно, есть ли в любом случае, чтобы вернуть это?

1 ответ1

2

Одна особенности, я скучаю использую частичное соответствие команды и удар вверх

Вы можете использовать PSReadLine (реализация readline для PowerShell, вдохновленная bash) для этого:

PSReadLine

Этот модуль заменяет опыт редактирования командной строки в PowerShell.exe для версий 3 и выше. Это обеспечивает:

  • Синтаксическая раскраска
  • Простое синтаксическое сообщение об ошибке
  • Хороший многострочный опыт (как редактирование, так и история)
  • Настраиваемые привязки клавиш
  • Режимы Cmd и emacs (ни один из них еще не полностью реализован, но оба могут использоваться)
  • Множество опций конфигурации
  • Завершение стиля Bash (необязательно в режиме Cmd, по умолчанию в режиме Emacs)
  • Интерактивный поиск истории в стиле Bash/ Zsh (CTRL-R)
  • Emacs yank/ kill ring
  • PowerShell на основе токенов "слово" движение и убить
  • Отменить повторить
  • Автоматическое сохранение истории, в том числе совместное использование истории по завершению сеансов в режиме реального времени (в некоторой степени аналогично Intellisense, выберите завершение стрелками) с помощью Ctrl+ Пробел

...

Чтобы установить свои собственные привязки клавиш, используйте командлет Set-PSReadlineKeyHandler. Например, для лучшего опыта истории, попробуйте:

Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

С этими привязками стрелка вверх / стрелка вниз будет работать как PowerShell / cmd, если текущая командная строка пуста. Если вы ввели какой-то текст, он будет искать в истории команды, начинающиеся с текущего введенного текста.

Источник PSReadLine

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .