Често използвах $ sudo !!
, докато използвах bash. След като преминах към риба, забелязах, че това вече не работи. Поради търсачките, които не поддържат търсене на специални знаци, това беше особено трудно да разбера сам. Предполагам, че просто трябва да добавя/променя един ред в конфигурацията, но не знам какво би било това.
Как да активирам!! в риба?
Отговори (4)
Черупката на рибата умишлено пропуска заместването на историята.
Има някои начини за прилагане на това с помощта на шел хакове, изброени на https://github.com/fish-shell/fish-shell/wiki/Bash-Style-Command-Substitution-and-Chaining-(!!-!%24-&&-%7C%7C)
Например:
function bind_bang
switch (commandline -t)
case "!"
commandline -t $history[1]; commandline -f repaint
case "*"
commandline -i !
end
end
function bind_dollar
switch (commandline -t)
case "!"
commandline -t ""
commandline -f history-token-search-backward
case "*"
commandline -i '$'
end
end
function fish_user_key_bindings
bind ! bind_bang
bind '$' bind_dollar
end
funcsave bind_bang bind_dollar fish_user_key_bindings
Най-лесният начин е да инсталирате мениджъра на пакети Fisher; и след това инсталирайте пакета !!, напр.:
$ fisher install oh-my-fish/plugin-bang-bang
p.s.
Не само получавате обратно използването на !! (последната използвана команда), но също и !$ (последните аргументи на командата.)
Можете също да използвате приставката чрез по-старата инсталационна програма omf.
Защо да преоткривате колелото, когато имате лесен за използване пакетен мениджър като Fisher.
Стар въпрос, но съм изненадан, че не се споменава пре-pend sudo keybinding на рибената черупка.
С клавишни връзки по подразбиране sudo !!
може да се изпълни с ↑ за повторение на предишната команда, последвано от Alt+s за добавяне на sudo
към нея.
Редактиране: С току-що пуснатата риба 3.2 една от любимите ми нови функции е, че стрелката нагоре дори вече не е необходима. Просто Alt+s без друг въведен текст в подканата ще доведе до автоматично попълване на подканата с sudo
+ последната въведена команда.