SlideShare a Scribd company logo
1 of 44
Download to read offline
Vim for <?PHP
About me 
김예솔 at NAVER Labs 
ngleader@gmail.com 
XpressEngine Project Leader 
#docker #php #hhvm #opensource #beer
What is VIM ? 
Vi IMproved 
Version 7.4.460 (Current) 
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. 
- http://www.vim.org
Why Vim ? 
가볍고, 빠르다 
터미널에서 실행 가능 
다양한 부가기능 
Vim Script와 함께 강력한 기능 
XE 사용자 대응이 편하다
KEYBOARD 
수 많은 단축키 
HARD TO LEARN
싫어하는 계기가 될 수도 ...
Goals 4 어떤 활용이 가능한지 
4 Plugin 설치법 
4 vim script
My Case 
데스크탑을 ubuntu로... 
Vim Cheat Sheet 출력 
.vimrc 과 plugin 검색 
훌륭한 멘토
Basic
Open & Save & Quit 
$ vim ~/.vimrc 
$ vim *.php 
:e 
:w :w! 
:q :q!
Help 
:h {KEY WORD}
Move 
h j k l 
:줄 번호 
첫 줄 - gg 또는 :1 
마지막 줄 - G 또는 :$
Mode 
Command Mode - esc 
Bottom-line Mode - : 
Insert Mode - i A o O I a
Mode 
Visual Mode - v 
Visual-Line Mode - Shift + v 
Visual-Block Mode - CTRL + v
Copy & Paste 
y yy Y 
p P
Multiple Copies 
" , 1 , y 
" , 2 , y 
" , 1 , p 
" , 2 , p 
:reg
Undo & Redo 
u 
CTRL + r
Auto-Completion 
CTRL + n
Search 
/{KEY WORD} 
?{KEY WORD} 
shift + 3 
:%s/old/new/g
Windows Split 
:sp :vs 
:sp {fimeName} 
CTRL + w , w 
CTRL + w , 방향
VIM Plugins
Plugin Manager 
4 Vundle 
https://github.com/gmarik/Vundle.vim 
4 NeoBundle 
https://github.com/Shougo/neobundle.vim 
4 Pathogen 
https://github.com/tpope/vim-pathogen 
...
Install Vundle 
4 git clone 
4 ~/.vimrc 추가 
4 :so ~/.vimrc 
4 :PluginInstall
Usage 
:PluginSearch {KEY WORD} 
:PluginList 
:PluginInstall 
:PluginClean
NERDTree 
파일과 디렉토리 네비게이터 
4 Plugin 'The-NERD-tree' => ~/.vimrc 추가 
4 :so ~/.vimrc 
4 :PluginInstall 
4 :NERDTree
VIM + ctags 
코드를 분석하여 함수, 변수 등을 DB화 
이를 이용해 정의된 구현체로 이동 가능 
코드 자동 완성에도 반영
Install 
$ sudo yum -y install ctags 
$ ctags -f .php.tags --languages=PHP -R 
$ echo "set tags=.php.tags" >> ~/.vimrc
Usage 
CTRL + ] : 구현체로 이동 
CTRL + t : 돌아오기
Taglist 
코드 브라우져 
functions, classes, structures, enumerations, 
definitions 등을 보여주고 이동이 가능 
Plugin 'taglist-plus' 
:TList
PHP Syntax Check 
1. $ vim check.php 
2. CTRL + Z 
3. $ php -l check.php 
4. fg
PHP Syntax Check 
:!php -l %
PHP Syntax Check 
nmap <leader>s :!clear && php -l %<CR> 
"nmap" : 단축키 설정 
"<leader>s" : 단축키 
"<leader>" : prefix dafault  
":!" shell script 실행 
"clear && php -l %" : shell script 
"%" : 현재 파일 
"<CR>" : 실행
PHPQA 
PHP quality checking tools 
4 Syntax errors 
4 Coding standard violations 
4 Code coverage 
https://github.com/joonty/vim-phpqa
Check Code Convension 
https://github.com/squizlabs/PHP_CodeSniffer 
$ composer global require "squizlabs/php_codesniffer=*" 
or 
$ pear install PHP_CodeSniffer
Phpunit 
:!phpunit % 
vimscript
phpcomplete-extended 
Composer Project의 Auto complete 
https://github.com/m2mdas/phpcomplete-extended
Etc
코드 정렬 
gg=G 
<< 
5> visual mode 
:set paste
Text-Object 
dit - delete inner tag 
dib - delete inner '(' ')' block 
diB - delete inner '{' '}' block 
dab, daB, dat, cib, ciB, cit
Multiple Cursors 
https://github.com/terryma/vim-multiple-cursors 
CTRL + n 커서 선택 
CTRL + x 커서 건너뛰기
Jump 
열었던 파일의 위치로 이동 
CTRL + o 
CTRL + i 
:ju
Shell Script 
1 에서 100 까지 입력 
:r! for i in {1..100}; do echo $i; done 
:r! php -r 'foreach(range(1,100) as $i) echo $i,"n";'
.vimrc 
https://gist.github.com/ngleader/ 
28fea0312c5086d3acb4
Thank you

More Related Content

What's hot

What's hot (20)

Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
Django beginning
Django beginningDjango beginning
Django beginning
 
Ninja
NinjaNinja
Ninja
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP
 
2017 새싹교실 1교시
2017 새싹교실 1교시2017 새싹교실 1교시
2017 새싹교실 1교시
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 Django
 
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 
2015 deploy gate 시작 가이드
2015   deploy gate 시작 가이드2015   deploy gate 시작 가이드
2015 deploy gate 시작 가이드
 
워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1
 
초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHub초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHub
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법
 
상속과 다형성
상속과 다형성상속과 다형성
상속과 다형성
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 
Grunt
GruntGrunt
Grunt
 

Viewers also liked

XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
경원 홍
 
『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기
복연 이
 
6장 지능형 웹 크롤링
6장 지능형 웹 크롤링6장 지능형 웹 크롤링
6장 지능형 웹 크롤링
Chanil Kim
 
Mysql old password 깨기
Mysql old password 깨기Mysql old password 깨기
Mysql old password 깨기
HyunSeung Kim
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
KTH, 케이티하이텔
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
현찬 양
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4
현찬 양
 

Viewers also liked (20)

XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
 
제 2주차. PHP 기초
제 2주차. PHP 기초제 2주차. PHP 기초
제 2주차. PHP 기초
 
XECon2015 :: [2-5] 변용훈 - Laravel 동영상 서비스 만들기
XECon2015 :: [2-5] 변용훈 - Laravel 동영상 서비스 만들기XECon2015 :: [2-5] 변용훈 - Laravel 동영상 서비스 만들기
XECon2015 :: [2-5] 변용훈 - Laravel 동영상 서비스 만들기
 
『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기
 
PHP 기초 문법
PHP 기초 문법PHP 기초 문법
PHP 기초 문법
 
How to make beer in House
How to make beer in HouseHow to make beer in House
How to make beer in House
 
php 시작하기
php 시작하기php 시작하기
php 시작하기
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
PHP 함수와 제어구조
PHP 함수와 제어구조PHP 함수와 제어구조
PHP 함수와 제어구조
 
웹 개발 스터디 01 - PHP
웹 개발 스터디 01 - PHP웹 개발 스터디 01 - PHP
웹 개발 스터디 01 - PHP
 
6장 지능형 웹 크롤링
6장 지능형 웹 크롤링6장 지능형 웹 크롤링
6장 지능형 웹 크롤링
 
The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)
 
Mysql old password 깨기
Mysql old password 깨기Mysql old password 깨기
Mysql old password 깨기
 
쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
 
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTPHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
 
Exception&log
Exception&logException&log
Exception&log
 
PHP Profiling
PHP ProfilingPHP Profiling
PHP Profiling
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4
 

Similar to Vim for php

망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324
종인 전
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
Jae Sung Park
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용
지원 이
 

Similar to Vim for php (20)

Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1
 
Php
PhpPhp
Php
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Android Studio에서 vim사용과 오픈소스 ideavim 커스터마이징
Android Studio에서 vim사용과 오픈소스 ideavim 커스터마이징Android Studio에서 vim사용과 오픈소스 ideavim 커스터마이징
Android Studio에서 vim사용과 오픈소스 ideavim 커스터마이징
 
Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)
 
Web2.0mission
Web2.0missionWeb2.0mission
Web2.0mission
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
 
망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324망고100 메뉴얼 환경부터포팅까지-2011-0324
망고100 메뉴얼 환경부터포팅까지-2011-0324
 
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
 
우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용
 
보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
nexus helm 설치, docker/helm repo 설정과 예제
nexus helm 설치, docker/helm repo 설정과 예제nexus helm 설치, docker/helm repo 설정과 예제
nexus helm 설치, docker/helm repo 설정과 예제
 
Windows Debugging Technique #3
Windows Debugging Technique #3Windows Debugging Technique #3
Windows Debugging Technique #3
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발
 

More from Sol Kim

Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2
Sol Kim
 
2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)
Sol Kim
 
2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)
Sol Kim
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngine
Sol Kim
 
2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드
Sol Kim
 

More from Sol Kim (12)

XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기
 
XECon + PHPFest 2014 Keynote
XECon + PHPFest 2014 KeynoteXECon + PHPFest 2014 Keynote
XECon + PHPFest 2014 Keynote
 
Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2
 
2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(2/2)
 
2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)
2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
 
2014년 02월 XE세미나 About XE 1.7.4
2014년 02월 XE세미나 About XE 1.7.42014년 02월 XE세미나 About XE 1.7.4
2014년 02월 XE세미나 About XE 1.7.4
 
2014년 02월 XE 세미나 XE with Community
2014년 02월 XE 세미나 XE with Community2014년 02월 XE 세미나 XE with Community
2014년 02월 XE 세미나 XE with Community
 
Network path reference
Network path referenceNetwork path reference
Network path reference
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngine
 
2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드
 
20110702 xeuser
20110702 xeuser20110702 xeuser
20110702 xeuser
 

Vim for php