[Android] 단축키 정리 -펌
좋은 자료가 있어서 퍼왔습니다.
Android 플랫폼이 발전을 하면서 개발 툴도 발전해왔다. 초창기 Eclipse로 Android 개발을 했었고 여러 가지 불편사항이 많았지만 무엇보다 무료이고 괜찮은 IDE였기 때문에 만족하며 사용하였었지만 그래도 아쉬움은 많았다. 그러던 와중에 Android 진영에서는 Jetbrains 사에서 만든 IntelliJ 기반의 Android Studio라는 IDE를 발표하며 홍보하기 시작했다.
필자는 Android Studio가 처음 나왔을 때 도입을 시도하려고 했으나 아무래도 안정화가 덜되어 마루타가 되는 느낌을 지울 수가 없었다.
그래서 눈치를 조금 보다가 도입하게 되었고 Gradle 빌드 시스템과 더불어 나를 감탄하게 만들었고 정말 Eclipse라는 존재를 새까맣게 잊게 해주었다.
Android Studio라는 IDE를 사용한 지도 몇 년이 지났지만 개발자스럽지 못하게 IDE 내의 다양한 단축키를 활용하지 못하고 있다는 느낌에 항상 찝찝한 기분이었다. 심지어 포토샵조차 단축키 거의 외우고 있는 나인데… 그래서 오늘 Android Studio 의 단축키에 대해서 정리하고자 한다.
- Save all(Control + S) : 대부분의 프로그램들의 공통적인 언어라고나 할까? 현재 상황을 저장한다.
- Synchronize(Control + Alt + Y) : Gradle 파일 동기화 시켜주는 기능인듯하다.
- Maximize/minimize editor(Control + Shift + F12) : Editor 화면을 제외한 Explorer 등 다른 부가 화면을 감추고 Editor 화면을 꽉 차게 확장시킨다. 한번 더 누르면 원상태로 복귀
- Add to favorites(Alt + Shift + F) : 정확히 어떤 기능인지 파악이 안된다.
- Inspect current file with current profile(Alt + Shift + I) : 현재 파일에 대한 code inspection을 진행한다.
- Quick switch scheme(Control + ` ): 팝업창이 하나 뜨는데 IDE 스타일이나 화면 구성에 대한 변환을 쉽게 해주는 기능이 모여있다. 코딩할 때 색다르게 해보고 싶다면 한번 View Mode 설정을 만져보길.
- Open settings dialogue(Control + Alt + S) : IDE Settings 창에 대한 단축키.
- Open project structure dialog(Control + Alt + Shift + S) : 현재 Project에 대한 project structure창에 대한 단축키.
- Switch between tabs and tool window(Control + Tab) : 이 기능도 참 유용한 것 같다. 각 메뉴에 대한 번호만 외우고 있다면 IDE에서 메뉴 전환 및 Open이 정말 편해진다.
General의 단축 키들은 코드를 작성하는 것과는 약간 거리가 있고 IDE 스타일 및 각각의 메뉴에 대한 접근 등이 용이할 수 있다는 장점이 있다.
- Search everything(including code and menus)(Press Shift twice) : 정말이지 유용한 기능이다. IDE가 인덱싱이 얼마나 잘되어 있는지 알 수 있다. 원하는 모든 것을 찾을 수 있고 Shift 키를 두번 누르면 되기 때문에 접근성도 뛰어나고 정말 강추하는 단축키.
- Find(Control + F) : 현재 파일 내에서 검색을 제공한다.
- Find next(F3) : 현재 파일 내에서 검색을 제공하고 F3을 계속 누르면 매칭 되는 위치를 위에서 아래로 하나씩 이동된다.
- Find previous(Shift + F3) : Find next의 반대라고 생각하면 된다. 아래에서 위로 이동된다.
- Replace(Control + R) : 예를 들어 ‘Text’라고 검색을 하고 ‘Text’ → ‘Text2’ 로 변경하고자 할 때 사용된다. find and replace로 이해하면 된다.
- Find action(Control + Shift + A) : IDE에서 제공하는 다양한 Action 들에 대한 단축키.
- Search by symbol name(Control + Alt + Shift + N) : Android에서 R로 생성되는 symbol만 검색하는 단축키.
- Find class(Control + N) : 이름에서 유추가 되겠지만 현재 프로젝트내에서 Class파일만 검색하는 단축키.
- Find file(instead of class)(Control + Shift + N) : 현재 프로젝트의 라이브러리에 있는 class까지 검색하는 단축키.
- Find in path(Control + Shift + F) : 검색 조건, 검색 범위, 검색 결과 등을 설정할수 있는 검색 단축키.
- Open file structure pop-up(Control + F12) : 현재 파일에 대한 Structure를 작은 팝업에 보여주는 단축키다. Structure 탭을 끄고 개발한다면 유용한 단축키.
- Navigate between open editor tabs(Alt + Right/Left Arrow) : Editor창과는 무관하고 Project, Packages, Android 등의 탭 등을 빠르게 변환해주는 단축키.
- Jump to source(F4 / Control + Enter) : 자주 사용되는 단축키 중 하나다. 소스를 분석할 때 유용.
- Open current editor tab in new window(Shift + F4) : 현재 파일을 새로운 에디터창에 로드한다. 별다른 기능 없는 아주 심플한 에디터 창이다.
- Recently opened files pop-up(Control + E) : 최근 이용한 파일들의 목록을 제공하는 단축키다.
- Recently edited files pop-up(Control + Shift + E) : 최근 편집했던 파일들의 목록을 제공하는 단축키다. 최근에 어떤 파일들을 수정했는지 히스토리를 알기 쉽다.
- Go to last edit location(Control + Shift + Backspace) : 마지막으로 코드를 수정했던 위치로 이동한다.
- Close active editor tab(Control + F4) : 현재 열려있는 파일을 닫는다. 이부분은 상당히 불만족스럽다. 자주 사용되어야 하는 기능임에도 불구하고 사용성 및 접근성이 전혀 고려가 안된 단축키다. Control + W가 아니라니.. Eclipse나 브라우저 등도 기본적으로 탭을 닫을때 Control + W 를 이용한다.
- Return to editor window from a tool window(ESC) : 이 기능은 editor창이 아닌 다른 window영역에 포커싱을 하면 editor창의 커서가 없어지는데 이 단축키를 이용하면 다시 editor창에 포커싱이 가고 커서가 나타난다.
- Hide active or last active tool window(Shift + ESC) : 별 쓸모도 없고 사용하기 불편하다. 그냥 활성화 되있거나 마지막에 사용한 tool window를 닫아주는 단축키.
- Go to line(Control + G) : Editor창에 line number를 보이게 하고 쓰면 가끔 유용하다. 입력된 창에 line number를 입력하고 엔터치면 소스코드의 해당 line으로 이동한다.
- Open type hierarchy(Control + H) : 선택된 class 등의 계층구조를 펼쳐서 보여주는 단축키.
- Open method hierarchy(Control + Shift + H) : 선택된 method의 계층구조를 펼쳐서 보여주는 단축키. 소스 분석이나 흐름등을 파악할 때 유용하다.
- Open call hierarchy(Control + Alt + H) : 선택된 method의 호출구조를 파악할때 유용하다. 어디서 호출되는지 펼쳐서 보여주는 단축키.
Navigation and Searching Within Studio 단축키들은 전반적으로 소스 분석에 유용한 단축키들이 많다.
- Generate code (getters, setters, constructors, hashCode/equals, toString, new file, new class) (Alt + Insert) : 오버라이딩 가능한 메소드가 무엇이 있는지 확인하거나 생성할 때 유용한 단축키.
- Override methods(Control + O) : 1번과 비슷하지만 1번은 getters, setters 등 조금 더 범위가 넓다.
- Implement methods(Control + I) : 구현해야되는 추상 메서드 목록을 보여주는 단축키.
- Surround with (if…else / try…catch / etc.)(Control + Alt + T) : Live Templates목록에 있는 코드 템플릿 목록을 제공한다. 코딩 시간을 단축시키기 위한 단축키.
- Delete line at caret (Control + Y) : 한 라인씩 코드 영역을 삭제하는 단축키.
- Collapse/expand current code block(Control + minus/plus) : 코드 블럭을 확장/축소 시키기 위한 단축키다. 중요하지 않은 코드 블럭등을 감춘다면 코드를 보는 양이 줄어들기 때문에 유용하다.
- Collapse/expand all code blocks( Control + Shift + minus/plus) : 해당 클래스의 모든 코드블럭을 확장/축소 시킨다. 별 쓸모는 없는듯.
- Duplicate current line or selection(Control + D) : 현재 라인에 있는 코드를 복사해서 아래줄에 붙여넣기 한다. 복사 붙여넣기를 대체할수 있는 유용한 단축키.
- Basic code completion(Control +Space) : 해당 클래스에서 호출 가능한 메서드 목록을 제공하는 단축키.
- Smart code completion (filters the list of methods and variables by expected type)(Control + Shift + Space) : 9번과 크게 다른점을 못느끼겠다.
- Complete statement(Control + Shift + Enter) : 보통 메서드 이름 사이에 커서를 두고 엔터를 입력하면 메서드가 분리(?) 된다고 해야되나.. 하지만 이 단축키를 사용하면 커서가 어느위치에 있던지 커서가 줄바꿈 처리되고 기존 커서가 있던 위치에 아무런 영향을 주지 않는다.
- Quick documentation lookup(Control + Q) : 주석등을 확인할 때 유용하다. 기존 Eclipse에서는 커서를 갖다 대면 주석등을 확인할 수 있었는데 Android Studio는 그런 기능이 없다. 대신 이 단축키를 사용하면 편리하고 접근성도 좋다.
- Show parameters for selected method(Control + P) : 선택된 메서드의 파라미터 목록을 툴팁형태로 제공하는 단축키.
- Go to declaration (directly)(Control + B or Control + Click) : F4 단축키와 동일한 기능이다. 손가락이 편한대로 사용하면 될듯.
- Go to implementations(Control + Alt + B) : 14번과 비슷하지만 14번은 실제 구현되어 있는 곳으로 바로 이동하지만 이 단축키는 같은 시그너처로 구현되어 있는 곳이 있다면 팝업으로 선택지를 제공한다.
- Go to super-method/super-class(Control + U) : 현재 커서가 위치해 있는 메서드의 super method가 있다면 해당 위치로 이동하는 단축키.
- Open quick definition lookup(Control + Shift + I) : 선택된 영역의 메서드나 클래스의 코드 구현 내용을 팝업 형태로 제공하는 단축키.
- Toggle project tool window visibility(Alt + 1) : Project tool window를 보여주고 감추고 토글 시켜주는 단축키.
- Toggle bookmark(F11) : 특정 코드 라인에 북마크를 설정해두면 Shift + F11 키를 통해 다른 코드를 보다가 북마크해둔 코드 영역을 팝업 형태로 볼 수 있다.
- Toggle bookmark with mnemonic(Control + F11) : 19번과 동일하지만 단순 북마크가 아니라 숫자나 영어 알파벳 등을 지정할수 있다.
- Comment/uncomment with line comment(Control + /) : 자주 사용되는 기능 중 하나인 주석 설정/해제 하는 단축키.
- Comment/uncomment with block comment(Control + Shift + /) : // 로 시작하는 주석이 아닌 /* */ 주석을 설정/해제하는 단축키.
- Select successively increasing code blocks(Control + W) : 선택되는 코드 블럭의 범위를 점점 넓혀주는 단축키.
- Decrease current selection to previous state(Control + Shift + W) : 23번이 증가라면 24번은 감소되는 단축키다.
- Move to code block start(Control + [ ) : 코드 블럭의 시작지점으로 이동하는데 점점 넓은 범위로 확장된다.
- Move to code block end(Control + ] ) : 코드 블럭의 종료지점으로 이동하는데 점점 넓은 범위로 확장된다.
- Select to the code block start(Control + Shift + [ ) : 커서의 위치부터 코드 블럭의 시작지점으로 넓은 범위로 확장되며 select 영역을 늘려가는 단축키.
- Select to the code block end(Control + Shift + ] ) : 27번과 동일하지만 코드 블럭으로 종료지점으로 확장되는게 다르다.
- Delete to end of word(Control + Delete) : word단위로 코드를 삭제해주는 기능인데 말로 설명하기 복잡하다. 한번 써보면 바로 이해가 될듯.
- Delete to start of word(Control + Backspace) : 28,29번 단축키는 커서의 위치 뒤로 삭제를 하지만 이건 커서의 앞으로 삭제를 진행한다.
- Optimize imports(Control + Alt + O) : import는 하였으나 사용하지 않는 클래스가 있을 경우 해당 import구문을 제거해준다.
- Project quick fix (show intention actions and quick fixes)(Alt + Enter) : 접근 제어자 변경 등 코드를 수정할 때 간단한 퀵메뉴 형태로 제공하는 단축키.
- Reformat code(Control + Alt + L) : 코드 포맷을 변경해준다.
- Auto-indent lines(Control + Alt + I) : 보통 IDE에서 코드 블럭을 축약된 형태로 제공하기도 하는데 이 단축키를 사용하면 축약된 코드 블럭이 다시 원상태로 보이게 된다.
- Indent/unindent lines( Tab/Shift + Tab) : 보통 코드 라인을 맞출 때 사용한다.
- Smart line join(Control + Shift + J) : 코드라인을 줄이거나 축약된 형태로 한줄로 표현하거나 할때 유용하다.
- Smart line split(Control + Enter) : 보통 엔터를 입력하면 줄바꿈이 되면서 커서도 이동하는데 이 단축키는 줄바꿈은 되지만 커서는 그대로의 위치에 있다.
- Start new line(Shift + Enter) : 커서를 메서드 시그너처나 코드 사이에 존재할때 엔터를 입력하면 코드가 깨지게 되지만 이 단축키는 해당 코드를 보존하고 줄바꿈 된다.
- Next/previous highlighted error(F2 / Shift + F2) : 보통 Lint에러나 컴파일 에러등 IDE에서 하이라이팅으로 처리되는 부분이 있는데 그부분으로 바로 이동하는 단축키다.
Writing Code 에 있는 단축키들은 전반적으로 코드 작성과 관련된 단축키들이다. 코드를 작성할 때 불필요한 반복 작업을 줄이고 작성시간을 줄이고자 한다면 유용하게 쓰일 수 있을 것이다.
- Copy(F5) : 해당 파일을 복사하는 단축키.
- Move(F6) : 보통 리팩토링할 때의 패키지 변경등 클래스의 위치를 변경할 때 사용하는 단축키.
- Safe delete(Alt + Delete) : 삭제를 할 때 삭제를 하므로써 발생하는 다른 문제 등에 대해서 팝업으로 우선 알려주는 단축키.
- Rename(Shift + F6) : 리팩토링할 때 제일 자주 사용되는 단축키다. 이름 변경해주는 단축키.
- Change signature(Control + F6) : 메서드 시그너처등을 변경하기 용이한 팝업을 제공하는 단축키.
- Inline(Control + Alt + N) : Inline 처리를 하는 단축키.
- Extract method(Control + Alt + M) : 해당 코드 블럭을 메서드로 추출하기 위한 단축키.
- Extract variable(Control + Alt + V) : 멤버 변수를 지역 변수로 변경하거나 할때 쓰는 단축키다.
- Extract field(Control + Alt + F) : 8번과 비슷하다 별 쓸모는 없는듯.
- Extract constant(Control + Alt + C) : 외부에 선언된 상수를 내부에 별도의 변수로 재정의 하는등의 작업을 처리하는 단축키.
- Extract parameter(Control + Alt + P) : 메서드 내부의 임시 변수 등을 파라미터로 추가하는 단축키.
- Commit project to VCS(Control + K) : commit의 단축키.
- Update project from VCS(Control + T) : merge, rebase 등을 팝업형태로 제공하는 단축키.
- View recent changes(Alt + Shift + C) : 최근 local 변경 사항을 확인할 수 있는 팝업을 제공하는 단축키.
- Open VCS popup(Alt + ` (backquote)) : VCS의 각종 오퍼레이션을 목록형태로 제공하는 단축키.
단축키를 정리해보면서 느낀거지만 정말이지 IDE를 제대로 써먹지 못했구나 하는 생각이 들었다. 단축키가 엄청 많지만 대부분 Control + Shift 등의 키와 기능의 알파벳 첫자 등의 조합이므로 기억이 안나도 생각해내는데 큰 어려움은 없었을 것이다.
앞으론 불필요한 타이핑을 줄이고 최대한 생산성을 향상시킬 수 있도록 단축키를 적극적으로 다양하게 활용해야겠다.