안녕하세요. nano입니다.
Terminal, iTerm 2, Hyper 및 Visual Studio Code에서 사용 가능한 Tab Completion 소프트웨어인 Fig의 사용권을 얻게 되어 간단히 사용해보고 소개, 사용기와 함께 Waiting List Invite 코드를 제공하기 위해 글을 작성했습니다.
소개
출처: Fig 공식 웹사이트
Your terminal, reimagined.
Fig는 지원되는 또는 사용자에 의하여 등록된 명령의 Parameters 및 Options에 대하여 Auto Completion을 가능하게 하는 소프트웨어입니다. 현재 Waiting List 제도를 통하여 제한적으로 서비스 중이므로 바로 내려받아 사용할 수 없습니다.(저의 경우 약 2개월의 대기가 필요했습니다.)
• 호환되는 운영체제: macOS
• 호환되는 아키텍처: Apple Silicon, Intel(Universal)
• 호환되는 터미널: Terminal(Apple 기본 앱), iTerm 2, Hyper, Visual Studio Code
• 호환되는 명령: Git, Brew, NPM, Kubernetes, Docker, SSH(SSH 명령), Heroku, AWS CLI, Google Cloud, 현재 경로 상의 파일 및 폴더, ...더 보기
사용기
iTerm 2를 기준으로 합니다. iTerm 2 외의 터미널 환경에서는 아래 내용과 다른 부분이 있을 수 있습니다. Fig의 코어 영역은 오픈소스로 운영되지 않아 내부 구현의 확인 없이 작성된 내용이니 참고만 하시기 바랍니다.
기본 기능의 구현 수준 및 성능
기능과 관계 없이 구현 수준이나 성능이 부족하면 되려 사용에 방해가 되어 사용하지 않는 것만 못한 상황이 발생될 수 있어 구현 수준과 성능은 중요하게 살펴봐야 하는 항목입니다.
Fig 앱은 daemon 형태로 백그라운드에서 상시 실행됩니다. 앱이 실행 중인 동안 호환되는 터미널 앱이 활성화되면 키보드 입력을 감지하여 별도의 자동 완성 제안 창을 표시하며 사용자가 항목을 선택하면 해당하는 값이 입력되는 방식으로 동작합니다. 텍스트를 입력하는 동안 자동 완성 제안 창 창이 기존 입력된 내용을 가리거나, 터미널에 대한 포커스를 빼앗는 등의 문제가 없었습니다. 반응 속도 또한 즉시 수준으로 빨랐습니다.
장점
익숙하지 않은 명령을 사용할 때 매뉴얼을 찾아보는 수고를 덜어줍니다.
이 사람은 명령어 숙지 안하나? 싶으실 수도 있지만 저의 경우 brew 명령을 대부분 복사 및 붙여넣기에 의존할 뿐만 아니라 자주 사용하지 않고 있습니다. Brew 패키지를 삭제하려고 할 때 APT, YUM, DNF, NPM 같은 패키지 관리자의 parameter와 서로 달라서 uninstall인지, remove인지, purge인지 모호한 경우 도움이 되었습니다.
Git 명령 사용 경험을 개선시켜줍니다.
Commit hash를 commit message와 함께 제안해주기 때문에 git log 명령을 사용할 필요 없이 바로 필요한 명령을 실행할 수 있어 편리합니다. 한 가지 아쉬운 점은 각 commit에 포커스를 둬야만 commit message가 표시된다는 것입니다. 매 commit hash 뒤에 commit message가 함께 표시되면 더 직관적일 것으로 생각됩니다.(코드 기여가 가능하긴 한데 개인 취향의 영역인 것 같아서 미뤄두고 있습니다. 참고)
사용자화된 기능 추가가 가능합니다.
NPM과 TypeScript에 대한 기초적인 이해만 있으면 간단하게 사용자화된 기능(명령의 자동 완성 제안)의 추가가 가능합니다. 참고
SSH로 접속한 원격 서버에 대해서도 적용이 가능합니다.
원격 서버에 별도의 설치나 추가 작업 없이 즉시 Fig의 기능 적용이 가능합니다.
단점
한글 파일 및 폴더에 대한 처리가 매끄럽지 않습니다.
파일 및 폴더에 대한 자동 완성 제안 시 경로에 한글이 포함되면 제대로 인식하지 못합니다. 저의 경우 한글을 경로 상에 거의 포함하지 않고 일부 한글이 포함된 파일 및 폴더를 터미널로 사용하는 경우가 없어 사용에 큰 방해가 되지 않았습니다. Fig Team에서 CJK와 관련한 이슈를 이미 인지•처리하고 있기 때문에 근시일 내에 해결될 것으로 기대하고 있습니다. 참고
Waiting List Invite 코드
상술한 바와 같이 Fig는 제한적으로 서비스 중인 소프트웨어입니다. Early Access 권한을 받게 되면 친구를 초대할 수 있습니다.
2021년 7월 31일 오후 6시(KST) 이전까지 댓글로 남겨주신 분 중 세 분을 무작위로 추첨하여 일주일 이내에 쪽지로 초대 링크를 발송해 드리겠습니다.
확인된 신청에 대해서는 댓글에 공감을 남기겠습니다.
마감되었습니다.
Fig 앱의 Early Access 신청은 https://fig.io에서 가능합니다.
궁금하신 점은 댓글로 남겨주세요.
감사합니다.
zsh 에서도 자동완성 기능? 은 있다보니...... 혹시 두개 비교한 짦막한 평을 해주실수 있을까요?
자동완성기능이 터미널뿐만 아니라 각 언어별(인코딩형식)로 호환되는 명령어별로 지원되는듯하군요
명령어 선택까지 자동으로 되는거면 정말 좋은듯 합니다.
• 쉘 내장 플러그인으로는 텍스트만으로 표시가 가능하다는 분명한 한계가 있습니다. 별도의 창으로 표시되는 형식이 사용하기에 더 편리하다고 생각합니다.
• Fig의 기능이 조금 더 풍부합니다. 예를 들어 Git에서 commit hash를 참조해야 하는 부분에서 ZSH와 다르게 Fig는 제안을 해줍니다.
* Oh my zsh와 관련한 위 설명에 잘못된 점이 있다면 지적 부탁드립니다.
댓글 달고서 Fig 홈페이지도 가보고 설명문도 다시 읽어보고 해보니 확실히 차이가 많은듯 합니다.
좋은 나눔해주시는데 저도 줄 서 봅니다. +_+
당첨은 혹 되지 않더라도 좋은글 좋은 나눔 응원 합니다. !!
궁금한게 shell의 자동완성와 fig의 추천이 겹치면, 어떻게 처리되는지 궁금합니다.
/Vollago