SlideShare a Scribd company logo
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()
~
~
~
~
~
~

More Related Content

What's hot

Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & Celery
Mauro Rocco
 
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudyスローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
Yusuke Yamamoto
 
BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会
Shinji Kobayashi
 

What's hot (20)

Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
Linuxカーネルを読んで改めて知るプロセスとスレッドの違いLinuxカーネルを読んで改めて知るプロセスとスレッドの違い
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
 
llvm入門
llvm入門llvm入門
llvm入門
 
Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & Celery
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
Page reclaim
Page reclaimPage reclaim
Page reclaim
 
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudyスローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
スローダウン、ハングを一発解決 スレッドダンプはトラブルシューティングの味方 #wlstudy
 
Domain Modeling Made Functional (DevTernity 2022)
Domain Modeling Made Functional (DevTernity 2022)Domain Modeling Made Functional (DevTernity 2022)
Domain Modeling Made Functional (DevTernity 2022)
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
100%Kotlin ORM Ktormを試してみた
100%Kotlin ORM Ktormを試してみた100%Kotlin ORM Ktormを試してみた
100%Kotlin ORM Ktormを試してみた
 
ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!!
ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!!ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!!
ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!!
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
 
[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階
 
BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会
 
モナドをつくろう
モナドをつくろうモナドをつくろう
モナドをつくろう
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 

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

[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
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
Samsung Electronics
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
종인 전
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
Sang Don Kim
 
[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
종빈 오
 
그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기
Sangkyoon Nam
 

Similar to 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
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
Python on Android
Python on AndroidPython on Android
Python on Android
 
안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법
 
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
 
프로그래밍 언어의 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. - 그루비로 안드로이드 앱 개발하기
 
그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
 

More from 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
 

Recently uploaded

캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
cho9759
 
INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
ahghwo99
 

Recently uploaded (7)

인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
 
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
 
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
 
INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
 
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
 
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 

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