나는 10 년 정도 bash를 사용해 왔으며 마지막 인수를 반복하기 위해! $를 입력하는 데 익숙해졌습니다.
$ mkdir foo
$ cd !$
cd foo
(이 마지막 줄은 명령에 의해 평가 된 것을 알려주기 위해 쉘에 의해 인쇄됩니다). 마찬가지로 다음과 같은 경우가 많습니다.
$ make_sandwich
-bash: make_sandwich: Permission denied
$ sudo !!
sudo make_sandwich
나는 정말로 생선 껍질을 좋아하지만 내 근육 기억력이 꽤 확립되었습니다. 물고기에 상응하는 것이 있습니까? 동일한 명령을 사용하도록 물고기를 구성 할 수 있습니까?
답변
Alt– Up arrow이전 명령의 마지막 인수를 제공합니다. 후속 푸시는 이전 인수를 통해 순환합니다.
나는에 만족 상당을 발견하지 않은 !!
것을 제외하고, Up다음 Ctrl–A
답변
sudo !! (또는 sudo bang bang)은 가장 많이 사용되는 명령 중 하나입니다. 나는 여전히 괜찮은 평범한 오래된 배쉬를 사용하고 있습니다. 물고기가 올바르게 구현하지 않는다는 말을 듣게되어 죄송합니다. 약간의 인터넷 검색 결과 나는 이것을 발견했다.
function sudo
if test "$argv" = !!
eval command sudo $history[1]
else
command sudo $argv
end
end
스레드에서 더 많은 옵션이 있습니다 : https://github.com/fish-shell/fish-shell/issues/288
답변
나는 물고기 사용자 메일 링리스트 에서이 완벽한 답을 찾았다 .
function bind_bang
switch (commandline -t)[-1]
case "!"
commandline -t $history[1]; commandline -f repaint
case "*"
commandline -i !
end
end
function bind_dollar
switch (commandline -t)[-1]
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
물고기의 깃 허브 위키에 대한 추가 토론
답변
나는 당신과 같은 문제를 oh-my-fish
겪었고 https://github.com/oh-my-fish/oh-my-fish (fish
셸 의 플러그인 관리자)를 사용하여 수정했습니다 . 다음 명령으로 설치할 수 있습니다.
curl -L https://get.oh-my.fish | fish
그런 다음 bang-bang
이 명령으로 플러그인 을 설치하십시오 .
omf install bang-bang
답변
!!
의 컨텍스트에서만 사용하는 경우 명령에 sudo를 추가 sudo !!
하는 ^s
(CTRL + s)에 키 바인딩을 정의 할 수 있습니다 .
function prepend_command
set -l prepend $argv[1]
if test -z "$prepend"
echo "prepend_command needs one argument."
return 1
end
set -l cmd (commandline)
if test -z "$cmd"
commandline -r $history[1]
end
set -l old_cursor (commandline -C)
commandline -C 0
commandline -i "$prepend "
commandline -C (math $old_cursor + (echo $prepend | wc -c))
end
이를 통해 모든 명령을 입력하고 입력 할 때 등을 대신하여 sudo를 추가 할 수 있습니다 sudo !!
github 토론에 대한 Ahti의 의견을 참조하십시오