Paper Plane xUI (PPx)의 ListFile과 peco의 관계
여기에서는 (각각을 사용해 느낀 나 나름의) 용도의 차이를 해설하고 싶습니다.
peco의 예
스크립트로 대화식 처리
예를 들어, 뭔가 스크립트를 실행하는 동안 대화식 처리를 넣고 싶다면 peco의 차례입니다.
※동작 확인은 cygwin의 mintty상에서 하고 있어 peco를 동작시키기 위해winpty를 인스톨 하고 있습니다.
peco_test.sh#!/bin/sh
while : ;do
echo Paper Plane xUIを使いますか?
sleep 2
select=`echo -e "Hai\nYes\nNo" | peco`
case $select in
Hai|Yes)
echo Welcome Paper Plane xUI!
break
;;
*)
echo そんな、ひどい
sleep 1
;;
esac
done
위와 같이, 매우 간편하게 선택사항을 만들 수 있습니다.게다가 입력이 아니므로 코너 케이스의 고려도 어느 정도 하지 않아도 좋고, 예를 들면 Yes의 경우에 "[Yy]([Ee][Ss])?"
라고 하는 입력 체크를 하지 않아도 좋다 됩니다, 또, 복수 선택의 때도 *에 가게 되어 있습니다.
상기의 경우는 선택사항 때문에, cho 명령 쪽이 적절할까 생각합니다만, 일례로서 소개합니다.
git 브랜치를 선택하고 checkout
다음은 리눅스 커맨드와의 제휴시에 peco를 사용하는 경우입니다.
$ git checkout `git branch | peco`
그렇다면 브랜치 목록에서 선택하여 checkout을 할 수 있습니다 1. 합니다.
PPx 예
PPx에서는 후자의 「git로, 선택한 브랜치를 checkout」와 같은 부분에 이용할 수 있습니다, 전자의 스크립트내의 대화적인 처리는 peco(나 cho)가 좋을 것입니다.
PPx에서 git 브랜치를 선택하고 checkout
우선, 단순히 커멘드의 실행 결과를 ListFile에 토출하는 커멘드군을 준비합니다.이것은 간단합니다만, 범용적입니다.
Shift + s로 명령 실행 결과를 ListFile화합니다.
여기서 git branch 실행
분기 목록이 항목으로 표시됩니다.
이 중에서 엔트리를 선택해 checkout을 하기 위해서, Paper Plane xUI (PPx)를 git의 프런트 엔드로 사용 에서 준비한 checkout 메뉴를, 커서상의 엔트리가 초기치가 되도록 조금 개조합니다.
Shift + g, o의 초기 값 변경
이제 선택한 항목에 checkout할 수 있습니다.
도구 구성
entry.js
선택한 첫 번째 엔트리를 반환합니다.
entry.js//! script
for (var items = new Enumerator(PPx.Entry); !items.atEnd(); items.moveNext()) {
PPx.Result = items.item().Name;
break;
}
PPx 설정
차이만입니다 2 .
※자신의 설정이 사라지지 않도록, 적용전에 백업을 취하거나 추가 혼잡을 해 주세요
※GitExtensions나 스크립트의 패스는 자신의 환경에 맞추어 주세요
PPX.CFGKC_main = { ; PPcメイン窓
\S ,
*set dummy='command実行'
*set CIN_LSTFILE=%'temp'\cin2listfile.tmp
*set CMD=%"コマンド?"%{command%}
%Obsq %'CMD' | ruby %0\script\shell\tolistfile.rb | nkf -Lw -s > %'CIN_LSTFILE'
*jumppath %'CIN_LSTFILE'
}
M_menuCustomGit2 = { ** comment **
git check&out <target> =
*set ENTRY=%*script(%0\script\entry.js)
*set ARG=%"git checkout <target>(入力1/2)"%{%'ENTRY'%}
%"git checkout <target>(Enterで実行2/2)"%{%}
%OB git checkout %'ARG'
}
끝에
몸도 뚜껑도 없습니다만, 이번과 같이 이용 빈도가 높은 경우는 전용 메뉴를 준비해도 좋을까 생각합니다, 이쪽이 ListFile를 중계하지 않고, 1 액션으로 끝나기 때문에 부드럽습니다.
PPx.CFGM_menuCustomGit2 = { ** comment **
git check&out <branch> <PECO> = %OB git branch | peco | xargs git checkout
}
현재 브랜치에 "*"가 남아 있지만, 제 경우에는 후보 밖의 표식으로 남기도록 합니다↩
「Shift+g」는 엔트리 이외의 자신 룰이 있습니다만 「Shift+g, o」로 엔트리를 초기치로 하고 있습니다. 이것은 초기치의 「.」는 곧 입력할 수 있고, 최초의 하나 밖에 사용되지 않기 때문에 「Ctrl+g」와는 다른, 무엇보다 사용하기 편하다고 하는 일로 이렇게 했습니다. ↩
Reference
이 문제에 관하여(Paper Plane xUI (PPx)의 ListFile과 peco의 관계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/wordijp/items/9f144af8f28a211c9448
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/bin/sh
while : ;do
echo Paper Plane xUIを使いますか?
sleep 2
select=`echo -e "Hai\nYes\nNo" | peco`
case $select in
Hai|Yes)
echo Welcome Paper Plane xUI!
break
;;
*)
echo そんな、ひどい
sleep 1
;;
esac
done
$ git checkout `git branch | peco`
PPx에서는 후자의 「git로, 선택한 브랜치를 checkout」와 같은 부분에 이용할 수 있습니다, 전자의 스크립트내의 대화적인 처리는 peco(나 cho)가 좋을 것입니다.
PPx에서 git 브랜치를 선택하고 checkout
우선, 단순히 커멘드의 실행 결과를 ListFile에 토출하는 커멘드군을 준비합니다.이것은 간단합니다만, 범용적입니다.
Shift + s로 명령 실행 결과를 ListFile화합니다.
여기서 git branch 실행
분기 목록이 항목으로 표시됩니다.
이 중에서 엔트리를 선택해 checkout을 하기 위해서, Paper Plane xUI (PPx)를 git의 프런트 엔드로 사용 에서 준비한 checkout 메뉴를, 커서상의 엔트리가 초기치가 되도록 조금 개조합니다.
Shift + g, o의 초기 값 변경
이제 선택한 항목에 checkout할 수 있습니다.
도구 구성
entry.js
선택한 첫 번째 엔트리를 반환합니다.
entry.js//! script
for (var items = new Enumerator(PPx.Entry); !items.atEnd(); items.moveNext()) {
PPx.Result = items.item().Name;
break;
}
PPx 설정
차이만입니다 2 .
※자신의 설정이 사라지지 않도록, 적용전에 백업을 취하거나 추가 혼잡을 해 주세요
※GitExtensions나 스크립트의 패스는 자신의 환경에 맞추어 주세요
PPX.CFGKC_main = { ; PPcメイン窓
\S ,
*set dummy='command実行'
*set CIN_LSTFILE=%'temp'\cin2listfile.tmp
*set CMD=%"コマンド?"%{command%}
%Obsq %'CMD' | ruby %0\script\shell\tolistfile.rb | nkf -Lw -s > %'CIN_LSTFILE'
*jumppath %'CIN_LSTFILE'
}
M_menuCustomGit2 = { ** comment **
git check&out <target> =
*set ENTRY=%*script(%0\script\entry.js)
*set ARG=%"git checkout <target>(入力1/2)"%{%'ENTRY'%}
%"git checkout <target>(Enterで実行2/2)"%{%}
%OB git checkout %'ARG'
}
끝에
몸도 뚜껑도 없습니다만, 이번과 같이 이용 빈도가 높은 경우는 전용 메뉴를 준비해도 좋을까 생각합니다, 이쪽이 ListFile를 중계하지 않고, 1 액션으로 끝나기 때문에 부드럽습니다.
PPx.CFGM_menuCustomGit2 = { ** comment **
git check&out <branch> <PECO> = %OB git branch | peco | xargs git checkout
}
현재 브랜치에 "*"가 남아 있지만, 제 경우에는 후보 밖의 표식으로 남기도록 합니다↩
「Shift+g」는 엔트리 이외의 자신 룰이 있습니다만 「Shift+g, o」로 엔트리를 초기치로 하고 있습니다. 이것은 초기치의 「.」는 곧 입력할 수 있고, 최초의 하나 밖에 사용되지 않기 때문에 「Ctrl+g」와는 다른, 무엇보다 사용하기 편하다고 하는 일로 이렇게 했습니다. ↩
Reference
이 문제에 관하여(Paper Plane xUI (PPx)의 ListFile과 peco의 관계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/wordijp/items/9f144af8f28a211c9448
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
//! script
for (var items = new Enumerator(PPx.Entry); !items.atEnd(); items.moveNext()) {
PPx.Result = items.item().Name;
break;
}
KC_main = { ; PPcメイン窓
\S ,
*set dummy='command実行'
*set CIN_LSTFILE=%'temp'\cin2listfile.tmp
*set CMD=%"コマンド?"%{command%}
%Obsq %'CMD' | ruby %0\script\shell\tolistfile.rb | nkf -Lw -s > %'CIN_LSTFILE'
*jumppath %'CIN_LSTFILE'
}
M_menuCustomGit2 = { ** comment **
git check&out <target> =
*set ENTRY=%*script(%0\script\entry.js)
*set ARG=%"git checkout <target>(入力1/2)"%{%'ENTRY'%}
%"git checkout <target>(Enterで実行2/2)"%{%}
%OB git checkout %'ARG'
}
몸도 뚜껑도 없습니다만, 이번과 같이 이용 빈도가 높은 경우는 전용 메뉴를 준비해도 좋을까 생각합니다, 이쪽이 ListFile를 중계하지 않고, 1 액션으로 끝나기 때문에 부드럽습니다.
PPx.CFG
M_menuCustomGit2 = { ** comment **
git check&out <branch> <PECO> = %OB git branch | peco | xargs git checkout
}
현재 브랜치에 "*"가 남아 있지만, 제 경우에는 후보 밖의 표식으로 남기도록 합니다↩
「Shift+g」는 엔트리 이외의 자신 룰이 있습니다만 「Shift+g, o」로 엔트리를 초기치로 하고 있습니다. 이것은 초기치의 「.」는 곧 입력할 수 있고, 최초의 하나 밖에 사용되지 않기 때문에 「Ctrl+g」와는 다른, 무엇보다 사용하기 편하다고 하는 일로 이렇게 했습니다. ↩
Reference
이 문제에 관하여(Paper Plane xUI (PPx)의 ListFile과 peco의 관계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wordijp/items/9f144af8f28a211c9448텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)