실제로 내용을 확인하려면 which 명령을 실행한 다음 vim에서 열어야 하는 경우가 많습니다. 탭 완성 기능을 사용하여 이 작업을 수행하는 별칭이나 함수를 원합니다. 내가 시도한 것은 다음과 같습니다.
superwhich() {
which "$1" | vim
}
superwhich2() {
vim $(which $1)
}
이들 중 어느 것도 작동하지 않습니다. 내가 놓친 것이 있나요?
답변1
csh
그리고 tcsh
기능이 없습니다.
유일한 방법은 별칭을 사용하고 !
기록 대체를 통해 매개변수를 전달하는 것입니다.
alias superwhich 'vim "`which \!:1`"'
superwhich bzgrep
또는 더 나은 방법(오류 검사 포함):
alias superwhich 'set q = `which \!:1`; if(-r "$q") vim "$q"'
답변2
이에 대한 스크립트를 정의할 수 있습니다.
#! /bin/sh -
for cmd do
if
cmd_path=$(command -v -- "$cmd")
then
set -- "$@" "$cmd_path"
else
printf >&2 '"%s" not found\n' "$cmd"
fi
shift
done
[ "$#" -gt 0 ] && vim -- "$@"
그런 다음 모든 쉘에서 사용할 수 있습니다.
sh
내장 기능(예: echo
/ [
...) 에서는 작동하지 않습니다 .
를 사용하려면 zsh
다음을 실행하면 됩니다.
vim =cmd
또는
vim cmd(:P)
명령 파일을 편집합니다 cmd
.