Одна из вещей, которая сводит меня с ума в командной строке под MS-Windows, - это порядок, в котором оболочка Windows (как стандартная, так и PowerShell) извлекает команды из истории при использовании клавиш со стрелками вверх и вниз.
Стандартный способ, который мне понравился, как это делается практически во всех других оболочках в мире, состоит в том, что последняя команда помещается в стек истории, а затем нажатие вверх возвращает последнюю команду, которую я выполнил, "вверх". снова получит тот, что был до этого, и так далее. Если вы выбираете команду из истории и отправляете ее снова, команда копируется в верхнюю часть стека, и если вы нажимаете вверх в следующем приглашении, вы можете увидеть эту последнюю команду, а затем команду, предшествующую последней. Если после просмотра истории вы нажмете "вниз" после самой последней команды в стеке истории, вы вернетесь к пустому приглашению (или к тому, что у вас было до того, как вы начали просматривать историю).
В оболочке Windows это работает странно иначе: если у вас есть 3 команды в истории - например, давайте назовем их "A", "B" и "C" - и вы используете клавишу со стрелкой вверх, чтобы выбрать команду "B" и выполнить снова, а затем снова используйте клавишу со стрелкой вверх в следующем приглашении, оболочка отобразит "B". Но это не последняя команда, которую вы выполнили (хотя "B" действительно была снова скопирована в стек истории), так как если вы снова нажмете "вверх", вам будет показано "A", а не "C". Если вы перейдете вниз (к более поздним записям), вы снова увидите "B", затем "C", затем снова "B", что было последней введенной командой - но вы также не можете идти дальше: пути назад нет в пустое приглашение, кроме удаления того, что у вас есть в строке или нажатия клавиши CTRL-C.
Мой вопрос - есть ли настройки, которые можно установить, чтобы изменить это поведение?
Я знаю о возможности просто получить bash или что-то в этом роде и использовать его в Windows, но из-за внешних ограничений (например, для этого мне нужно написать свои скрипты), я должен работать в PowerShell или другой Windows оболочка, которая может вызывать скрипты PowerShell.