Git, CocoaPods, Xcode, Shell
[iOS - swift] 3. custom shortcut (커스텀 단축키) 만드는 방법 - shell script 입력, 정렬, 출력 (import문 알파벳 순으로 정렬 단축키)
jake-kim
2023. 3. 30. 01:01
1. custom shortcut (커스텀 단축키) 만드는 방법 - 기본 개념 (plistbuddy, defaults, NSUserKeyEquivalents)
2. custom shortcut (커스텀 단축키) 만드는 방법 - Xcode의 import 부분을 정렬하는 단축키 만들기 개념 (Services)
3. custom shortcut (커스텀 단축키) 만드는 방법 - shell script 입력, 정렬, 출력 (import 정렬 단축키 만들기)<
프로젝트 준비
- 2번글까지 알아본 개념
- Xcode > Services 항목에 키보드 맵핑까지 완료했고, .sh파일에서 테스트 용으로 echo test만 입력되어, 단축키 입력 시 test만 뜨는 상황
- 초기세팅인 github에서 clone 후 root로 이동
.
├── install.sh
├── my custom shortcut.workflow
│ └── Contents
│ ├── Info.plist
│ └── document.wflow
└── myCustomShortcut.sh
- 목표: myCustomShorcut.sh를 변경하여 Xcode에서 읽어온 문자열들을 저장한 후, 정렬하고나서 다시 출력하는것
myCustomShortcut.sh 수정) shell script 입력, 정렬, 출력
- 많은 입력이 들어올때 한줄씩 eof (end of file)까지 입력하는 명령어
#!/bin/sh
# eof 까지 파일 입력
while read line || [[ -n "$line" ]]; do
arr+=("$line")
done < /dev/stdin
- 정렬
# 정렬
arr_length=${#arr[@]}
for (( i=0; i<${arr_length}-1; i++ ))
do
for (( j=$i+1; j<${arr_length}; j++ ))
do
if [[ "${arr[$i]}" > "${arr[$j]}" ]]; then
temp=${arr[$i]}
arr[$i]=${arr[$j]}
arr[$j]=$temp
fi
done
done
- 출력
# 출력
for item in "${arr[@]}"
do
echo "$item"
done
(shell script 완성)
import문 알파벳 순으로 정렬 단축키 사용해보기
- ./install.sh 실행
% ./install.sh
copying Service into ~/Library/Services/ ...
copying myCustomShortcut.sh into ~/Library/Services/ ...
add custom shortcut for XCode ...
restart xcode
- Xcode 오픈
- 지정한 단축키 (ctrl + shift + cmd + 1) 입력하면 정렬 완료
- 단축키 쉽게 변경 방법
- 시스템 환경설정의 키보드 -> 키보드 단축키 -> 서비스 탭 -> 오른쪽 목록 텍스트 하위에서 키보드 단축키 등록
응용) impot 길이 순서 정렬하기
* 전체 코드
- (알파벳 순으로 정렬): https://github.com/JK0369/xcode_custom_shortcut
- (길이 순으로 정렬): https://github.com/JK0369/sort_by_length_shortcut_xcode
* 참고
https://github.com/kudinovdenis/Xcode-headers-sorting
https://apple.stackexchange.com/questions/115675/set-services-keyboard-shortcut-via-script-osx