지난 몇 달 간 마우스 없이 개발하는 능력을 기르는 데에 많은 노력을 쏟아보았고, 그 결과 지금은 마우스를 거의 사용하지 않고 개발을 하고 있습니다. 아직 갈 길이 멀어 보이지만 - 그래도 지금까지의 여정을 글로 기록해보려 합니다.
이 글이 단축키를 연마해보려는 분들께 도움을, 아니면 최소한 재미라도 드릴 수 있길 바랍니다.
마우스를 이용하지 않고 싶다고 생각하게 된 데에는 몇 가지 이유가 있었는데,
개발자로서 Slack
, GitHub
, Notion
, VS Code
, iTerm
등 많은 도구들을 이용하기에 이들의 단축키를 모두 마스터해야 진짜 마우스 없는 삶을 살 수 있겠다고 생각했고, 이 중 가장 많은 시간을 보내고 마우스를 이용할 때 가장 많은 부담이 온다고 느껴지는 VS Code
를 먼저 마스터해보기로 했습니다. 나머지 도구들에 대한 내용은 이후 글에서 차차 다뤄보려 합니다.
공식 명칭은 Visual Studio Code
또는 VS Code
이지만, 둘 다 좀 어색한 느낌이 있어서 좀더 익숙하고 일반적으로 쓰이는 vscode
라는 표현을 이용하겠습니다.
에디터를 유창하게 (fluency) 쓸 수 있게 하라.
유창해지는 것의 가장 큰 이점은 더는 에디터 사용법을 생각하지 않아도 된다는 것이다.- 실용주의 프로그래머 중
vim
을 시도했다가 포기했습니다에디터 에서 마우스를 이용하지 않겠다고 다짐할 때 처음으로 고려한 후보는 vim
이었습니다. vim
을 이용하고 계신 지인분들께서 하나같이 vim
을 이용하면 코드 생산성이 정말 많이 올라간다고 말해주셨고, 저 역시도 vim
이 그런 역할을 잘 해 줄 수 있는 도구라고 배워왔기에 2주 가량 vim
을 제대로 써 보려고 공부하고 적용해봤습니다.
처음에는 제일 멋있게 vscode
도 없이 터미널에서 바로 vim
만 이용해보려고 했으나, vscode
가 잘 제공해주는 ESLint
나 Prettier
확장프로그램, 저장 시 자동 포매팅, 엔터만 치면 되는 auto import, 그리고 너무나도 중요한 코파일럿 등을 활용할 수 없었으며 주변 동료들과 개발 환경 차이가 너무 커서 협업에도 어려움을 겪을 수 있을 것 같았습니다. (물론 찾아보면 방법이 다 있었을 것 같긴 한데.. 너무 험난한 여정이 예상되어 찾아보지 않았습니다.)
그래서 조금 타협하여 vscode
확장프로그램으로 제공되는 vscode-vim
을 설치해서 이용해보았는데, 며칠 써본 결과 왜인지 렉이 많이 걸렸고 한글 지원이 꽤나 애매하다는 생각이 들었습니다. 또한 숙련도 문제로 실수로 i
를 누르지 않은 상태에서 d
u
이런 걸 막 누르다가 엉망이 되는 경우도 종종 겪었습니다.
vim
은 훌륭한 도구가 맞았으나, 이런 과정을 거치고 나서 생각해보니 vscode
기본 단축키도 충분히 강력하고 이것만으로도 제가 달성하고자 하는 목표는 충분히 달성할 수 있을 것 같았습니다.
결국 vim
을 포기하고 vscode 단축키를 잘 마스터하기로 결정했습니다.
keybindings
설정을 하면 커스텀 단축키를 설정할 수 있지만, 저는 맥을 여러 대 이용하기도 하고 협업할 때 가능한 동료들과 단축키 설정이 동일하길 기대했습니다. 단축키는 손에 익어 숨쉬듯이 이용할 기능이기에 가능한 다양한 환경에서 이 역량이 빛을 발할 수 있도록 vscode
가 제공하는 기본 단축키만을 습득하려 했습니다.
vscode 를 4년간 이용하며 트랙패드를 사용하는 습관이 굳어졌고, 의지만으로는 이 습관을 변경하는 게 쉽지 않았습니다. 항상 습관적으로 트랙패드로 손이 갔습니다. 조금 리서치해본 결과 Disable Mouse
라는 플러그인을 발견하여 설치해서 이용했습니다.
이 플러그인은 vscode
에서 마우스 사용을 제한합니다. 모든 상황에서 마우스를 완벽하게 막아주지는 않지만, 최소한 커서 조정이라도 못 하게 해 주기에 제가 강제로 단축키를 공부하고 적용하게 되는 데에 많은 도움을 주었습니다.
최근에는 단축키 사용이 꽤나 유창해져서 이 플러그인보다 더한 강제성을 주고 싶어졌습니다. 요즘은 트랙패드 연결을 아예 끊어버리고 책상 위에 키보드만 둔 채로 개발하는 것을 연습하고 있습니다.
vscode
에서 단축키를 적극적으로 활용하며 유용하다고 느꼈던 것들을 위주로 이야기해보려 합니다.
모든 단축키는 맥 키보드를 기준으로 하고 있습니다. 같이 습득해보고 싶으시다면, 이 글과 함께 vscode
를 띄워두고 개발하시는 프로젝트에서 직접 입력해보시길 권장드립니다.
option + 좌우방향키
, cmd + 좌우방향키
, cmd + 상하방향키
, fn + 상하방향키
option + F5
F8
F12
cmd + 클릭
과 동일한 기능입니다.cmd + u
아래 방향키
를 누르려다가 실수로 cmd + 아래 방향키
를 눌러서 맨 밑으로 가버린다거나, 아니면 다중선택 열심히 해놨는데 잘못 눌러서 다중선택한 게 날아갈 때가 있는데 이럴 때 복구하기 좋습니다.cmd + shift + l
ctrl + g
cmd + option + 상하방향키
ctrl + shift + 오른쪽 방향키
option + cmd + [
option + cmd + ]
cmd + shift + \
검색 또는 전체검색 상태에서 option + cmd + c
, option + cmd + w
, option + cmd + r
대소문자 일치여부
, 단어 전체 일치 여부
, 정규식 모드
를 토글하는 단축키입니다.검색 상태에서 방향키 위아래
전체검색 후 F4
F4
를 활용해야 검색 결과로 이동합니다.cmd + p
cmd + t
cmd + t
를 활용하면 워크스페이스 내에 있는 모듈 정의로 즉시 이동할 수 있습니다.option + cmd + t
cmd + shift + .
.tsx
파일을 켠 상황에서 바로 옆 형제 위치에 있는 .css
파일을 열고 싶은 등의 상황에서 마우스 없이 파일을 꽤 빠르게 열 수 있습니다.option + cmd + 좌우방향키
.tsx
와 .css
) 을 개발할 때, 두 파일을 탭에 띄워두고 왔다갔다하면 편리합니다.cmd + \
cmd + 숫자
를 입력하면 됩니다.ctrl + 백틱
ctrl + 1
을 하면 에디터 첫 번째 탭으로 돌아갑니다.cmd + b
cmd + shift + e
cmd + shift + f
를 해서 전체검색을 한 다음, 다시 파일 목록을 보기 위해 원해 상태로 돌아가고 싶을 때 이용합니다.cmd + i
F2
이렇게 개인적으로 유용하다고 느끼고 많이 사용하고 있는 단축키들을 리스트업해봤는데요, 써놓고 보니 양이 상당한 것 같습니다. 단순 암기로는 습득하기가 너무나도 어려운 것들이기에 손이 기억할 수 있도록 많은 연습과 노력 (그리고 어느 정도의 강제성) 을 통해 습득해야 하는 것 같습니다. 저 역시도 앞서 언급했듯 마우스를 강제로 제한해버리고 나서야 겨우 익숙해지고 있는 것 같습니다.
이 글이 vscode
단축키를 공부하려는 누군가에게 도움이 되길 바라며 글 마칩니다. 감사합니다 :)
줄이는 것도 대단하지만, 완전히 끊어버린 건 정말 대단하시네요. 제가 자주 쓰는 현재 가리키는 단어 ctrl + d
도 꽤 편해요. cmd + shift + l
의 하위 호환 느낌이지만, 겹치는 것들 중 일부만 수정할 때 유용하더라고요 ㅎㅎ
'오른손이 키보드를 떠나 마우스까지 이동하고, 거기서 다시 FPS게임에서 에임을 맞추듯 커서 위치를 정확하게 조정해야 하는 게 꽤나 피로하고 은근히 많은 시간과 집중력을 잡아먹는다고 느껴졌습니다'
이유가 너무 공감되고 마음에 드네요 ㅋㅋㅋ
저도 vscode 단축키 하면 한가닥 한다고 생각했는데 제가 모르는 단축키도 많네요
저도 아는것 중 하나 풀자면...
제가 프로젝트 어딜 가나 vscode를 사용하는곳이라면 항상 알려드리는 단축키가 하나 있는데
mac: cmd + KI / window: ctrl + KI입니다 (누른상태에서 K랑 I 따닥)
소스코드에서 굳이 마우스를 올려서 타입이나 에러정보를 봐야만 하는 때가 있는데
그 마우스오버의 단축키입니다
아 그리고 저도 custom keybinding은 되도록 지양하는게 맞다고는 보고있지만
폴더생성이랑 새파일생성은 그냥 custom keybinding 쓰는게 맞는거같아요
이거 하고 안하고 너무 많이 차이나요...
lunarvim이라는 도구도 있습니다. vscode와 유사한 환경을 제공해줘요.