vs code에서 마우스 안 쓰고 커서 이동하는 법을 찾아헤매다 여러 레퍼런스의 도움을 받아 드디어 쓸만한 키바인딩을 했다.
물론 내장 단축키로도 웬만한 이동과 에디팅은 가능하다.
간단하게 살펴보면 다음과 같다.
( ^는 맥의 ctrl키를 의미한다)
기본 단축키
- 커서 상하좌우 이동: ^p / ^n / ^b / ^f
- 커서 Line end/start로 이동 : ^e / ^a
- Line end/start까지 선택(드래그): shift+^e/shift+^a
- 커서 위치 고정하고 위아래로 한 줄씩 스크롤: ^pageUp/pageDown
- 앞뒤로 한 글자씩 지우기: ^h/^d
- 앞뒤로 단어 하나씩 지우기: alt+backspace/delete
- 라인 전체 지우기: command + shift + k
- 아래로 빈 라인 삽입: ^o 또는 command +enter

더 많은 기본 단축키는 이렇게 cmd+k+s를 눌러 cursor로 검색하면 확인 가능하다.
키 바인딩 추가하기
하지만 에디팅을 하다보면 키보드의 방향키나 pageUp/pageDown키를 입력하기가 생각보다 귀찮다는 것을 발견하게 된다.
그렇다고 새로 vim을 배우기엔... 힘들다.
그리하여 찾다보니 Productivity in Visual Studio Code 이 기사를 발견했다.
복붙할 수 있게 keybindings.json도 친절히 올려놓으셨다.
이를 적용하면 ctrl/alt/shift와 i/j/k/l 등의 키를 적당히 조합해 커서 이동과 셀렉팅을 할 수 있다.
line-jumper 익스텐션도 다운받는 것을 추천한다.
매우 유용하고 은혜롭다.

cmd+shift+p 로 커맨드 팔레트를 열어 위와 같이 검색하면 Preferences: Open Keyboard Shortcuts(JSON) 이 나온다.
여기에 링크에 나온 keybindings.json 코드를 붙여넣고 line-jumper 익스텐션도 다운받으면 된다.
하지만 여기까지 적용하면 일부 단축키가 작동이 안 되는 것을 볼 수 있다.
mac os에서 option+아무키를 누르면 åß©ƒ∂ˆ¬이런 식으로 특수문자가 출력되기 때문이다.
해결 방법은 시스템 환경설정-키보드-입력 소스에 가서 왼쪽 하단의 + 버튼을 누르고 유니코드 Hex 입력 을 추가해주는 것이다. (원래 있던 abc는 삭제한다.)

그러면 새로 추가한 모든 키바인딩이 잘 작동하는 것을 확인할 수 있다.
추가로, vs code에는 option+shift+↓/↑ 로 라인을 위아래로 복사할 수 있는 단축키가 있는데, line-jumper extension을 사용하면 이 디폴트값을 덮어쓴다.
이 커맨드를 다시 사용하고 싶다면 아래 코드를 아까 그 keybindings.json 파일에 추가해주면 된다.
원하는 단축키 조합을 "key": "단축키" 와 같이 입력해준다.
사용하고자 하는 단축키가 이미 존재하고 있는지 검사하려면 cmd+k+s 를 눌러 키조합을 입력해볼 수 있다.
{
"key": "shift+alt+cmd+i",
"command": "editor.action.copyLinesDownAction",
"when": "editorTextFocus"
},
{ "key": "shift+alt+cmd+k",
"command": "editor.action.copyLinesUpAction",
"when": "editorTextFocus"
}이제 ctrl/alt/shift와 j/k/i/l을 적당히 조합해주면 마우스에 손 안 대고 에디터 위를 날아다닐 수 있다.
참고:
Key Bindings for Visual Studio Code
Productivity in Visual Studio Code
Mac generating ∆˚¬ characters instead of executing VSCode shortcuts that involve alt / option key