Мне как-то удается повлиять на исходную команду, т. Е. Моя правка заменяет исходную команду в истории.
правый. Если вы вернетесь в свою историю и отредактируете строку без , нажав клавишу возврата для выполнения команды, но вместо этого перейдете к другой записи истории, вы просто отредактировали запись истории. Если вы затем перечислите свою историю, вы увидите *
в строке, указывающей, что вы ее отредактировали. Я нахожу эту "особенность" чрезвычайно разочаровывающей. Другие предоставили хорошие примеры того, как это воспроизвести.
Моя цель - избежать этого, поэтому любое изменение предыдущей команды всегда добавляется в историю и никогда не заменяет оригинал.
Я тоже хотел отключить его. Я нашел решение через этот ответ на unix.stackexchange .
Подводя итог, вам нужно включить настройку readline revert-all-at-newline
, которая по умолчанию отключена. Если этот параметр включен, bash отменит все изменения, внесенные вами в историю, при выполнении следующей команды.
Чтобы включить этот параметр в вашей оболочке, вы должны добавить следующее в ваш ~/.inputrc
файл и затем перезапустить вашу оболочку:
$include /etc/inputrc
set revert-all-at-newline on
Первая строка нужна, потому что я предполагаю, что, если вы введете свой собственный файл .inputrc
, файл по умолчанию /etc/inputrc
не будет включен, что, вероятно, не то, что вы хотите.