만들고 배우기 bash 탭 보완, mix 명령을 보완
bash의 Programmable Completion으로 만들 수 있는 것 같습니다.
이번에는 그것을 만들었으므로 소개합니다.
환경
bash-completion이 설치되어 있다고 가정합니다.
설치되어 있지 않은 경우 다음과 같이 설치합니다.
# debian系
$ sudo apt install bash-completion
만드는 방법
이하가 매우 상세하므로 코코에서는 해설하지 않습니다.
# debian系
$ sudo apt install bash-completion
이하가 매우 상세하므로 코코에서는 해설하지 않습니다.
compgent 및 complete 명령은
이미 만들어진 구현
검색할 때 동일한 목적의 여러 구현이있었습니다.
촉촉하고 빨리 사용하고 싶은 경우는 이것들로부터 선택해 사용하는 것도 있다고 생각합니다.
직접 만들어 보았습니다.
이미 만들어진 것을 사용하는 것은 간단하다고 생각했지만,
bash의 탭 보완은 스스로 만들 수 있으면 그 밖에도 응용할 수 있을 것 같았기 때문에 만들어 보았습니다.
다음을 ~/.bash_completion으로 저장하고 terminal을 다시 열면 사용할 수 있습니다.
※디렉토리 이동 후의 1발째가 조금도 붙습니다.
_mix()
{
local cur prev words cword split
_init_completion || return
type mix 1> /dev/null || return
make_opts(){
_mix_opts=""
readarray -t _mix_task_list < <(mix help)
local task
for task in "${_mix_task_list[@]}"; do
task=$(echo "$task" | awk '{print $2}')
# ignore "mix" self and "iex -S mix"
case $task in
"#"|"-S")
;;
*)
_mix_opts+="$task "
;;
esac
done
}
local current_pwd=$(pwd)
if [[ -z "$_mix_task_list" ]] || [[ $_mix_last_pwd != $current_pwd ]]; then
make_opts
fi
_mix_last_pwd=$current_pwd
if [[ $prev == mix ]] || [[ $prev == help ]]; then
COMPREPLY=( $(compgen -W "$_mix_opts" -- "$cur") )
fi
} && complete -F _mix mix
끝
bash가 전혀 쓸 수 없어서 힘들었습니다
"좋아요"잘 부탁드립니다.
Reference
이 문제에 관하여(만들고 배우기 bash 탭 보완, mix 명령을 보완), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pojiro/items/7891000a4ffd708509fc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
_mix()
{
local cur prev words cword split
_init_completion || return
type mix 1> /dev/null || return
make_opts(){
_mix_opts=""
readarray -t _mix_task_list < <(mix help)
local task
for task in "${_mix_task_list[@]}"; do
task=$(echo "$task" | awk '{print $2}')
# ignore "mix" self and "iex -S mix"
case $task in
"#"|"-S")
;;
*)
_mix_opts+="$task "
;;
esac
done
}
local current_pwd=$(pwd)
if [[ -z "$_mix_task_list" ]] || [[ $_mix_last_pwd != $current_pwd ]]; then
make_opts
fi
_mix_last_pwd=$current_pwd
if [[ $prev == mix ]] || [[ $prev == help ]]; then
COMPREPLY=( $(compgen -W "$_mix_opts" -- "$cur") )
fi
} && complete -F _mix mix
bash가 전혀 쓸 수 없어서 힘들었습니다
"좋아요"잘 부탁드립니다.
Reference
이 문제에 관하여(만들고 배우기 bash 탭 보완, mix 명령을 보완), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pojiro/items/7891000a4ffd708509fc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)