SlideShare uma empresa Scribd logo
1 de 88
Baixar para ler offline
kimkevin@DroidNights2018: ~
kimkevin@DroidNights2018: ~
1./**
2. * Created by kimkevin
3. * imkimkevin@gmail.com
4. * @imkimkevin
5. * github.com/kimkevin
6. */
7.
~
~
~
~
~
kimkevin@DroidNights2018: ~
What is Vim?
Vim is a highly configurable text editor
built to enable efficient text editing. It is
an improved version of the vi editor
distributed with most UNIX systems.
Vim is often called a "programmer's editor,"
and so useful for programming that many
consider it an entire IDE. Vim is perfect for
all kinds of text editing, from composing
email to editing configuration files.
– Johnny Appleseed
kimkevin@DroidNights2018: ~
What is Vim?
Vim is a highly configurable text editor
built to enable efficient text editing. It is
an improved version of the vi editor
distributed with most UNIX systems.
Vim is often called a "programmer's editor,"
and so useful for programming that many
consider it an entire IDE. Vim is perfect for
all kinds of text editing, from composing
email to editing configuration files.
– Johnny Appleseed
Vim는 유닉스 환경에서 가장 많이 사용되
는 문서 에디터이다. 리눅스에서 뿐만 아니
라 macOS에서도 기본 에디터로 사용되고
있다. 책이나 문서를 통해 혼자서 배우기는
어렵지만 익히고 나면 코드 생산성에 큰
도움을 준다.
kimkevin@DroidNights2018: ~
IdeaVim is a Vim emulation plugin for IDEs
based on the IntelliJ platform. IdeaVim can
be used with IntelliJ IDEA, PyCharm, CLion,
PhpStorm, WebStorm, RubyMine, AppCode,
DataGrip, GoLand, Cursive, and Android
Studio.
– Jetbrains ideavim GitHub
What is IdeaVim?
kimkevin@DroidNights2018: ~
IdeaVim is a Vim emulation plugin for IDEs
based on the IntelliJ platform. IdeaVim can
be used with IntelliJ IDEA, PyCharm, CLion,
PhpStorm, WebStorm, RubyMine, AppCode,
DataGrip, GoLand, Cursive, and Android
Studio.
– Jetbrains ideavim GitHub
What is IdeaVim?JetBrains에서 개발한 오픈 소스이며
IntelliJ 플랫폼 기반의 IDE에서 vim을 사용
할 수 있도록 플러그인으로 제공한다.
Android Studio의 Plugins 메뉴에
‘Browse Repositories’에서 검색하면 설치
할 수 있다.
kimkevin@DroidNights2018: ~
$ How to use Vim in
Android Studio
kimkevin@DroidNights2018: ~
1. Basic Vim Shortcuts
2.
3.
kimkevin@DroidNights2018: ~
kimkevin@DroidNights2018: ~
누구나 처음 이 시트를 보면 막막함을 느낀
다. “과연 언제 익숙해질 수 있을까?”
vi 치트시트를 보면 한 키마다 기능을 가지
고 있는데, 무엇을 어떻게 써야하는지 파악
하는데 오랜 시간이 걸린다.
kimkevin@DroidNights2018: ~
kimkevin@DroidNights2018: ~
그 중에서 자주 사용하는 키를 보면 주로 단
어부터 라인, 블럭 단위로 커서를 자유롭게
이동할 수 있는 키를 많이 사용한다.
추가적으로 복사, 삭제, 붙여넣기, 검색 등
을 자주 사용하고 있다.
kimkevin@DroidNights2018: ~
https://cdn.pixabay.com/photo/2016/11/19/10/46/apple-1838564_1280.jpg
navigate on a single line
Easy navigation on
a word
a line
a paragraph
without using Mouse
kimkevin@DroidNights2018: ~
https://cdn.pixabay.com/photo/2016/11/19/10/46/apple-1838564_1280.jpg
navigate on a single line
Easy navigation on
a word
a line
a paragraph
without using Mouse
vim의 가장 큰 장점은 단어, 라인, 블록간의
쉬운 네비게이션이다. 하나의 키 또는
여러 키의 조합으로 효율적인 편집이 가능
하다.
kimkevin@DroidNights2018: ~
public void setUser(User user)
// $ : the end of line
public void setUser(User user)
// 0 : the start of the line
public void setUser(User user)
// w : move forward word
public void setUser(User user)
// b : move backward word
public void setUser(User user)
kimkevin@DroidNights2018: ~
public void setUser(User user)
// 2w : move forward two words
public void setUser(User user)
// dw : delete forward word
public void (User user)
// u : undo
public void setUser(User user)
// db : delete backward word
public setUser(User user)
kimkevin@DroidNights2018: ~
dd : delete a line
[count]dd : delete [count] lines
// ex) 4dd : delete 4 lines
yy : copy a line
[count]yy : copy [count] lines
// ex) 4yy : copy 4 lines
{ : forward paragraph
// ex) 2{ : forward 2 paragraphs
} : backward paragraph
// ex) 2} : forward 2 paragraphs
kimkevin@DroidNights2018: ~
1. Basic Vim Shortcuts
2. Useful Mappings
in .ideavimrc
kimkevin@DroidNights2018: ~
1. Basic Vim Shortcuts
2. Useful Mappings
in .ideavimrc
vim을 사용하다 보면 기본키로 만족 못 할
때가 있다. 사용자 정의를 통해 단축키를 사
용하고 싶다면 .ideavimrc 파일을 생성해서
키맵을 추가하면 된다.
kimkevin@DroidNights2018: ~
The Most Used Action is ‘Run’
Ctrl + Shift + r or
in my case, rr
kimkevin@DroidNights2018: ~
The Most Used Action is ‘Run’
Ctrl + Shift + r or
in my case, rr
Android Studio에서 가장 많이 사용하는
액션으로는 ‘Run’이다. 단축키로는 Ctrl + R
또는 마우스로 Run을 클릭하면 된다.
하지만 키맵을 사용하면 ‘rr’을 입력해서
Run을 할 수 있다.
kimkevin@DroidNights2018: ~
vi ~/.ideavimrc
File for your specific Vim
initialization commands
kimkevin@DroidNights2018: ~
vi ~/.ideavimrc
File for your specific Vim
initialization commands
홈 폴더에 .ideavimrc를 생성해서 키맵을
정의할 수 있다.
IDE을 시작 또는 재시작하면 .ideavimrc
파일을 읽어서 명령어들을 초기화 해준다.
그리고 IDE의 Action(리팩토링, 깃, 디버
깅, 빌드 등) 또한 키맵을 추가해서 사용할
수 있다.
kimkevin@DroidNights2018: ~
./refactoring_by_keymap
DEMO
kimkevin@DroidNights2018: ~
.ideavimrc Keymap
nnoremap <leader>rr :action Run<cr>
nnoremap <leader>dd :action Debug<cr>
nnoremap <leader>cc :action CleanGradleProject<cr>
nnoremap <leader>ss :action Android.SyncProject<cr>
nnoremap <leader>fu :action FindUsages<cr>
nnoremap <leader>su :action ShowUsages<cr>
nnoremap <leader>ga :action GotoAction<cr>
nnoremap <leader>lc :action ActivateLogcatToolWindow<cr>
nnoremap <leader>sh :action ActivateTerminalToolWindow<cr>
nnoremap <leader>R :action Refactorings.QuickListPopupAction<cr>
nnoremap <leader>rm :action ExtractMethod<cr>
nnoremap <leader>rn :action RenameElement<cr>
nnoremap <leader>rf :action RenameFile<cr>
nnoremap <leader>rv :action IntroduceVariable<cr>
nnoremap <leader>rs :action ExtractSuperclass<cr>
nnoremap <leader>ri :action Inline<cr>
https://github.com/kimkevin/dotfiles/blob/master/.ideavimrc
kimkevin@DroidNights2018: ~
.ideavimrc Keymap
nnoremap <leader>rr :action Run<cr>
nnoremap <leader>dd :action Debug<cr>
nnoremap <leader>cc :action CleanGradleProject<cr>
nnoremap <leader>ss :action Android.SyncProject<cr>
nnoremap <leader>fu :action FindUsages<cr>
nnoremap <leader>su :action ShowUsages<cr>
nnoremap <leader>ga :action GotoAction<cr>
nnoremap <leader>lc :action ActivateLogcatToolWindow<cr>
nnoremap <leader>sh :action ActivateTerminalToolWindow<cr>
nnoremap <leader>R :action Refactorings.QuickListPopupAction<cr>
nnoremap <leader>rm :action ExtractMethod<cr>
nnoremap <leader>rn :action RenameElement<cr>
nnoremap <leader>rf :action RenameFile<cr>
nnoremap <leader>rv :action IntroduceVariable<cr>
nnoremap <leader>rs :action ExtractSuperclass<cr>
nnoremap <leader>ri :action Inline<cr>
kimkevin@DroidNights2018: ~
.ideavimrc Keymap
nnoremap <leader>rr :action Run<cr>
nnoremap <leader>dd :action Debug<cr>
nnoremap <leader>cc :action CleanGradleProject<cr>
nnoremap <leader>ss :action Android.SyncProject<cr>
nnoremap <leader>fu :action FindUsages<cr>
nnoremap <leader>su :action ShowUsages<cr>
nnoremap <leader>ga :action GotoAction<cr>
nnoremap <leader>lc :action ActivateLogcatToolWindow<cr>
nnoremap <leader>sh :action ActivateTerminalToolWindow<cr>
nnoremap <leader>R :action Refactorings.QuickListPopupAction<cr>
nnoremap <leader>rm :action ExtractMethod<cr>
nnoremap <leader>rn :action RenameElement<cr>
nnoremap <leader>rf :action RenameFile<cr>
nnoremap <leader>rv :action IntroduceVariable<cr>
nnoremap <leader>rs :action ExtractSuperclass<cr>
nnoremap <leader>ri :action Inline<cr>
Android Studio와 IntellJ 플랫폼에서 제공해주는
action이다. 키맵을 사용하는 이유는 단축키를 외우는
게 아니라 자신이 하고 싶은 행동을 줄여서 키맵을 설
정해 기억하기 쉽다.
예를 들어, 리팩토링을 하면서 중복되는 코드를 메소드
로 추출할 때, ‘Extract Method’를 사용하는데
Cmd + Opt + m 보다 ‘rm’ (refactoring method)
가 더 기억하기 쉬울 것이다.
kimkevin@DroidNights2018: ~
.ideavimrc Keymap
nnoremap <leader>rr :action Run<cr>
nnoremap <leader>dd :action Debug<cr>
nnoremap <leader>cc :action CleanGradleProject<cr>
nnoremap <leader>ss :action Android.SyncProject<cr>
nnoremap <leader>fu :action FindUsages<cr>
nnoremap <leader>su :action ShowUsages<cr>
nnoremap <leader>ga :action GotoAction<cr>
nnoremap <leader>lc :action ActivateLogcatToolWindow<cr>
nnoremap <leader>sh :action ActivateTerminalToolWindow<cr>
nnoremap <leader>R :action Refactorings.QuickListPopupAction<cr>
nnoremap <leader>rm :action ExtractMethod<cr>
nnoremap <leader>rn :action RenameElement<cr>
nnoremap <leader>rf :action RenameFile<cr>
nnoremap <leader>rv :action IntroduceVariable<cr>
nnoremap <leader>rs :action ExtractSuperclass<cr>
nnoremap <leader>ri :action Inline<cr>
kimkevin@DroidNights2018: ~
nnoremap <leader>rr :action Run<cr>
n + nore + map
normal mode + non-reculsive + map
{cmd} {attr} {lhs} {rhs}
kimkevin@DroidNights2018: ~
nnoremap <leader>rr :action Run<cr>
n + nore + map
normal mode + non-reculsive + map
{cmd} {attr} {lhs} {rhs}
nnoremap 은 나누어 보면 Normal 모드에서 비재
귀적인 키맵을 의미한다.
여기에서 ‘non-reculsive’는
예를 들어, A를 눌렀을 때 B가 실행되고 (A -> B)
B를 눌렀을 때 A가 실행되는 (B->A)
키맵 설정이 있다면 무한 루프에 빠질 수 있어서 이
를 방지하기 위해서다.
kimkevin@DroidNights2018: ~
nnoremap <leader>rr :action Run<cr>
<leader> :  (back slash)
<space> : Space
<C-A> : Ctrl + a
<tab> : Tab
{cmd} {attr} {lhs} {rhs}
kimkevin@DroidNights2018: ~
nnoremap <leader>rr :action Run<cr>
// {lhs} : left hand side
// {rhs} : right hand side
:actionlist (Show all actions)
ex) Run, RenameElement, FindUsages
<cr> : carriage return
{cmd} {attr} {lhs} {rhs}
kimkevin@DroidNights2018: ~
nnoremap <leader>rr :action Run<cr>
// {lhs} : left hand side
// {rhs} : right hand side
:actionlist (Show all actions)
ex) Run, RenameElement, FindUsages
<cr> : carriage return
{cmd} {attr} {lhs} {rhs}IDE에서 제공해주는 모든 action은 vim을
설치하고 ‘:actionlist’를 입력하면 모든
action들을 확인할 수 있다.
kimkevin@DroidNights2018: ~
$ Useful Customization
IdeaVim
kimkevin@DroidNights2018: ~
$ Useful Customization
IdeaVim
만약 키맵을 통해 해결할 수 없는 것이 있다
면 직접 ‘ideavim’을 커스터마이징해서 해
결할 수 있다.
kimkevin@DroidNights2018: ~
Write Codes
kimkevin@DroidNights2018: ~
kimkevin@DroidNights2018: ~
Search on Google
kimkevin@DroidNights2018: ~
Cmd + Tab
kimkevin@DroidNights2018: ~
Cmd + Tab
Cmd + Tab
Cmd + Tab
Cmd + Tab
kimkevin@DroidNights2018: ~
Cmd + Tab
Cmd + Tab
Cmd + Tab
Cmd + Tab
Android Studio에서 코드를 작성 Cmd + Tab
터미널에서 adb로 기기를 wifi로 연결 Cmd + Tab
구글 검색을 하기 위해 Cmd + Tab
터미널에서 Git 명령어로 소스 관리 Cmd + Tab
계속해서 반복되는 ‘Cmd + Tab’ 줄이거나 할 수 있
는 방법이 없을까를 고민하게 되었다.
kimkevin@DroidNights2018: ~
The problem is
So boring…
What’s Wifi address?…
and port…
EVERYDAY
EVERYTIME
kimkevin@DroidNights2018: ~
The problem is
So boring…
What’s Wifi address?…
and port…
EVERYDAY
EVERYTIME
Cmd + Tab의 사용을 줄여보자.
Wifi 주소나 Port 등 무엇인가 기억해야
하고 반복해서 입력해야 하는 것이 지루하
다.
kimkevin@DroidNights2018: ~
https://brunch.co.kr/@travel-heather/147
Be lazy wisely!
kimkevin@DroidNights2018: ~
OPEN
kimkevin@DroidNights2018: ~
OPEN
Android Studio에서 터미널에서 사용하는
명령어를 IDE안에서 실행하고,
Error 로그를 복사했을 때,
IDE에서 명령어를 입력하면 검색된 구글 페
이지가 크롬에 곧바로 실행되면 좋겠다고
생각했다.
kimkevin@DroidNights2018: ~
:
kimkevin@DroidNights2018: ~
:해결 하는데 도움을 준 것은
바로 ‘:’ 이다.
kimkevin@DroidNights2018: ~
1. EX mode is which is invoked
using the ex command.
2. This is for the Ex commands,
3. ”:", the pattern search
4. commands, "?" and "/", and the
5. filter command, "!".
~
~
~
~
:%s/command/cmd/g
kimkevin@DroidNights2018: ~
1. EX mode is which is invoked
using the ex command.
2. This is for the Ex commands,
3. ”:", the pattern search
4. commands, "?" and "/", and the
5. filter command, "!".
~
~
~
~
:%s/command/cmd/g
‘:’ 입력하면 EX 모드에서
EX 명령어를 실행할 수 있다.
kimkevin@DroidNights2018: ~
1. EX mode is which is invoked
using the ex cmd.
2. This is for the Ex cmds,
3. ”:", the pattern search
4. cmds, "?" and "/", and the
5. filter cmd, "!".
~
~
~
~
~
kimkevin@DroidNights2018: ~
!
kimkevin@DroidNights2018: ~
!‘:’ EX 모드에서 ‘!’를 입력하면
Shell 명령어를 실행할 수 있다.
kimkevin@DroidNights2018: ~
:! {command}
EX mode
Execute {command} with a shell
kimkevin@DroidNights2018: ~
:! {command}
EX mode
Execute {command} with a shell
만약, 디렉토리의 리스트를 확인할 때
사용하는 ‘:! ls’를 입력하면
IDE에서도 결과를 확인할 수 있다.
kimkevin@DroidNights2018: ~
:! adb tcpip 5555
kimkevin@DroidNights2018: ~
:! adb tcpip 5555
터미널에 하던 git, adb 명령어를 IDE의
vim를 사용해 외부 명령어로 실행할 수 있다.
kimkevin@DroidNights2018: ~
kimkevin@DroidNights2018: ~
VIM: Cannot run program “adb”:error=2
kimkevin@DroidNights2018: ~
VIM: Cannot run program “adb”:error=2
터미널에서는 ‘:! <command>’가 잘 실행
되지만 IDE에서는 동작하지 않았다.
kimkevin@DroidNights2018: ~
WHAT?
kimkevin@DroidNights2018: ~
Make adb run in
ideavim
kimkevin@DroidNights2018: ~
: adb tcpip 5555
EX command
kimkevin@DroidNights2018: ~
: adb tcpip 5555
EX command
‘!’로 외부 명령어로 실행하는 대신에
EX 명령어를 만들어 보기로 했다.
kimkevin@DroidNights2018: ~
What should I do first?
https://github.com/JetBrains/ideavim
kimkevin@DroidNights2018: ~
What should I do first?
https://github.com/JetBrains/ideavim
JetBrains의 ideavim를 fork 해서
README.md에 나와 있는대로, IntellJ로
실행해보았다.
kimkevin@DroidNights2018: ~
https://github.com/kimkevin/ideavim-as
kimkevin@DroidNights2018: ~
https://github.com/kimkevin/ideavim-as
Android Studio에서 사용할 수 있는 EX 명
령어를 추가해서 ideavim-as 프로젝트를
생성했다.
Git 명령어를 실행할 수 있는 부분은 별도로
ideavim 프로젝트에 PR을 넣을 예정이다.
kimkevin@DroidNights2018: ~
https://github.com/kimkevin/ideavim-as
git
git commands
adb
adb start <device_ip_address>
adb start : Once it's connected,
IP address will be existed.
Google Search
gg <query_string>
gg : If clipboard has a string
Supported:
kimkevin@DroidNights2018: ~
https://github.com/kimkevin/ideavim-as
git
git commands
adb
adb start <device_ip_address>
adb start : Once it's connected,
IP address will be existed.
Google Search
gg <query_string>
gg : If clipboard has a string
Supported:adb의 경우 한번 Wifi 주소를 입력하고 나면 캐
싱이 되기 때문에 ‘:adb start’를 통해 곧바로
디바이스와 연결할 수 있다.
구글 검색을 위해서 Cmd + Tab으로 브라우저
이동 없이 클립보드에 복사된 내용이 있으면
‘:gg’ 명령어를 통해 자동으로 브라우저가 실행
되고 검색된 결과를 한번에 확인할 수 있다.
kimkevin@DroidNights2018: ~
DEMO
./additional_ex_commands
kimkevin@DroidNights2018: ~
How it works?
kimkevin@DroidNights2018: ~
https://github.com/kimkevin/ideavim-as
git
git commands
adb
adb start <device_ip_address>
adb start : Once it's connected,
IP address will be existed.
Google Search
gg <query_string>
gg : If clipboard has a string
Supported:
kimkevin@DroidNights2018: ~
DataContext
- Data Object by
Identifier
ExCommand
- Command
- Arguments
Editor
- Project (path, document)
- EditorColorsScheme
- EditorSettings
kimkevin@DroidNights2018: ~
DataContext
- Data Object by
Identifier
ExCommand
- Command
- Arguments
Editor
- Project (path, document)
- EditorColorsScheme
- EditorSettings
하나 더 기능을 추가한다면
‘:morning’을 입력하면 IDE의 테마를 밝은 것으로
‘:night’을 입력하면 IDE의 테마를 어두운 것으로
변경해보는 Handler를 만들어 볼 예정이다.
‘execute’ 함수의 파라미터로 ‘Editor’ 클래스에서
제공해주는 API가 많고 다양하며,
EditorColorsSchemes에도 접근이 가능하다.
kimkevin@DroidNights2018: ~
1. Create EX command Handler and
Register CommandParser
2. Set command and flags on super
class
3. Write codes in execute()
4. Run and Test
kimkevin@DroidNights2018: ~
$ What I learned
kimkevin@DroidNights2018: ~
1. Fun to make something
suitable for your taste
2.
3.
kimkevin@DroidNights2018: ~
1. Fun to make something
suitable for your taste
2. Pair Programming
3.
kimkevin@DroidNights2018: ~
Pair Programming
- Disabled Vim Emulator
kimkevin@DroidNights2018: ~
1. Fun to make something
suitable for your taste
2. Pair Programming
3. Learning Curve
kimkevin@DroidNights2018: ~
https://pascalprecht.github.io/2014/03/18/why-i-use-vim
Vim Learning Curve
kimkevin@DroidNights2018: ~
https://pascalprecht.github.io/2014/03/18/why-i-use-vim
Vim Learning Curve
Vim은 조금씩 실력이 향상되기 보다는
큰 산을 넘어야 비로소 익숙해질 수 있는 도
구다.
kimkevin@DroidNights2018: ~
https://pascalprecht.github.io/2014/03/18/why-i-use-vim
Normally
kimkevin@DroidNights2018: ~
https://pascalprecht.github.io/2014/03/18/why-i-use-vim
Normally
많은 사람들이 시도 하지만, 실패하고
ideavim을 삭제한다. 그것은 남들처럼 보통
처럼 하기 때문이다.
kimkevin@DroidNights2018: ~
Make you lazy!
kimkevin@DroidNights2018: ~
Make you lazy!
vim을 끄고 싶을 때, 생각한 것은 ‘내가 더
게을러 지는 것이다.’ 누구나 오른손에 있는
마우스가 편하기 때문에 습관을 버리기가
어렵다. 이를 위해, 마우스를 왼쪽으로 옮겨
마우스 사용이 더 불편한 상황을 만들어 보
자.
kimkevin@DroidNights2018: ~
: wq!
thankYou()
~
~
~
~
~
~

Mais conteúdo relacionado

Mais procurados

JavaOne 2011 - JVM Bytecode for Dummies
JavaOne 2011 - JVM Bytecode for DummiesJavaOne 2011 - JVM Bytecode for Dummies
JavaOne 2011 - JVM Bytecode for DummiesCharles Nutter
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석iFunFactory Inc.
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례Hyung Lee
 
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015CODE BLUE
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx InternalsJoshua Zhu
 
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.Kwangsung Ha
 
Git을 조금 더 알아보자!
Git을 조금 더 알아보자!Git을 조금 더 알아보자!
Git을 조금 더 알아보자!Young Kim
 
Chrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptxChrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptxEunsu Kim
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들Chris Ohk
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편준철 박
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 introSeongyun Byeon
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010devCAT Studio, NEXON
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]Yurim Jin
 
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기CONNECT FOUNDATION
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 DjangoTaehoon Kim
 
The innerHTML Apocalypse
The innerHTML ApocalypseThe innerHTML Apocalypse
The innerHTML ApocalypseMario Heiderich
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2Chris Ohk
 

Mais procurados (20)

JavaOne 2011 - JVM Bytecode for Dummies
JavaOne 2011 - JVM Bytecode for DummiesJavaOne 2011 - JVM Bytecode for Dummies
JavaOne 2011 - JVM Bytecode for Dummies
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례
 
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx Internals
 
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.
 
Git을 조금 더 알아보자!
Git을 조금 더 알아보자!Git을 조금 더 알아보자!
Git을 조금 더 알아보자!
 
Chrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptxChrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptx
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
 
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 Django
 
The innerHTML Apocalypse
The innerHTML ApocalypseThe innerHTML Apocalypse
The innerHTML Apocalypse
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2
 

Semelhante a Android Studio에서 vim사용과 오픈소스 ideavim 커스터마이징

Vim for php
Vim for phpVim for php
Vim for phpSol Kim
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective GitChanwoong Kim
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Junyoung Lee
 
Python on Android
Python on AndroidPython on Android
Python on Android용 최
 
안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법chon2010
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~YEONG-CHEON YOU
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)Sang Don Kim
 
[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기Young-Ho Cho
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340Samsung Electronics
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17종인 전
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?williciousk
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)Sang Don Kim
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk
 
[shaderx6]8.2 3d engine tools with c++cli
[shaderx6]8.2 3d engine tools with c++cli[shaderx6]8.2 3d engine tools with c++cli
[shaderx6]8.2 3d engine tools with c++cli종빈 오
 
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기GDG Korea
 
그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기Sangkyoon Nam
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전James (SeokHun) Hwang
 

Semelhante a Android Studio에서 vim사용과 오픈소스 ideavim 커스터마이징 (20)

Vim for php
Vim for phpVim for php
Vim for php
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective Git
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
Python on Android
Python on AndroidPython on Android
Python on Android
 
안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
 
Php
PhpPhp
Php
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
 
[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
 
[shaderx6]8.2 3d engine tools with c++cli
[shaderx6]8.2 3d engine tools with c++cli[shaderx6]8.2 3d engine tools with c++cli
[shaderx6]8.2 3d engine tools with c++cli
 
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
 
그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
 

Mais de Yongjun Kim

Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)Yongjun Kim
 
Android Jetpack: ViewModel and Testing
Android Jetpack: ViewModel and TestingAndroid Jetpack: ViewModel and Testing
Android Jetpack: ViewModel and TestingYongjun Kim
 
Google I/O 2018: All of the News from Keynote
Google I/O 2018: All of the News from KeynoteGoogle I/O 2018: All of the News from Keynote
Google I/O 2018: All of the News from KeynoteYongjun Kim
 
How to use vim in Android Studio, Useful customization IdeaVim
How to use vim in Android Studio, Useful customization IdeaVimHow to use vim in Android Studio, Useful customization IdeaVim
How to use vim in Android Studio, Useful customization IdeaVimYongjun Kim
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in FlittoYongjun Kim
 

Mais de Yongjun Kim (6)

Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)
 
Android Jetpack: ViewModel and Testing
Android Jetpack: ViewModel and TestingAndroid Jetpack: ViewModel and Testing
Android Jetpack: ViewModel and Testing
 
Google I/O 2018: All of the News from Keynote
Google I/O 2018: All of the News from KeynoteGoogle I/O 2018: All of the News from Keynote
Google I/O 2018: All of the News from Keynote
 
How to use vim in Android Studio, Useful customization IdeaVim
How to use vim in Android Studio, Useful customization IdeaVimHow to use vim in Android Studio, Useful customization IdeaVim
How to use vim in Android Studio, Useful customization IdeaVim
 
Where is CEO?
Where is CEO?Where is CEO?
Where is CEO?
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
 

Android Studio에서 vim사용과 오픈소스 ideavim 커스터마이징