[[TableOfContents]] = 개요 = Text Editorì¸ VI ì˜ í™•ìž¥íŒ. [[NoSmok:CharityWare]], [[WikiPedia:Careware]] ì¸ ì•„ì£¼ ìœ ì—°í•œ ì—디터. 처ìŒì— ì ‘ê·¼í•˜ê¸° ì–´ë µì§€ë§Œ, ìµìˆ™í•´ì§€ë©´ 여러모로 편리한 ì‘ìš©ì´ ê°€ëŠ¥í•˜ë‹¤. 사실 다들 ì˜¤í•´í•˜ê³ ìžˆëŠ” 것 ì¤‘ì˜ í•œê°€ì§€ë¡œëŠ” vimì€ ë¶ˆíŽ¸í•˜ë‹¤ëŠ” 것ì´ë‹¤. ìµœê·¼ì˜ vimì€ í”ŒëŸ¬ê·¸ì¸ì„ 통해 여러가지 ê¸°ëŠ¥ì„ ì§€ì›í•˜ë©° ê·¸ 중ì—는 단어 ìžë™ì™„ì„±ì„ ë¬¼ë¡ ë¬¸ë§¥ ìžë™ì™„성ë¿ë§Œ ì•„ë‹ˆë¼ ëŒ€ë¶€ë¶„ ì–¸ì–´ì— ëŒ€í•œ syntax highlight를 ì§€ì›í•œë‹¤. 요즘ì—는 í”히 볼수있는 íƒê¸°ëŠ¥ë„ ì§€ì›í•˜ê¸° 시작한지 오래ë˜ì—ˆìœ¼ë©° ì¢Œì¸¡ì— íŒŒì¼ íŠ¸ë¦¬ë¥¼ ë„워ë‘ê³ ìž‘ì—…í• ìˆ˜ë„ ìžˆë‹¤. ë˜í•œ .vimrc파ì¼ì„ 통한 ê°•ë ¥í•œ 커스텀마ì´ì§•ì´ ê°€ëŠ¥í•˜ë©° ì´ë¥¼ ì´ìš©í•˜ì—¬ ì´í´ë¦½ìŠ¤ë¥¼ 능가하는 편ì˜ì„±ì„ ì§€ë‹ˆê¸°ë„ í•œë‹¤. == 모드 == viì—는 여러가지 모드가 존재한다. vi를 ì²˜ìŒ ì¼°ì„ë•Œì˜ ëª¨ë“œëŠ” ëª…ë ¹ëª¨ë“œ(command mode)ì´ë‹¤. ê° ëª¨ë“œëŠ” ëª…ë ¹ëª¨ë“œì—서 ì§„ìž…í• ìˆ˜ ìžˆê²Œë” ë˜ì–´ìžˆë‹¤. ëª¨ë“ ëª¨ë“œì—서는 기본ì 으로 esc를 눌러서 ëª…ë ¹ëª¨ë“œë¡œ ëŒì•„ 올수 있다[* ì´ë•Œë¬¸ì— CAPSLACKì„ ESC키로 매핑해 놓는 ì‚¬ëžŒë„ ìžˆë‹¤]. ì´ë¥¼ [state diagram]으로 나타내면 다ìŒê³¼ 같다. [attachment:ViImproved/vim_mode.png] === ëª…ë ¹ëª¨ë“œ === ëª¨ë“ í‚¤ê°€ 하나하나 ëª…ë ¹ìœ¼ë¡œ ë™ìž‘하는 모드ì´ë©° ì´ ëª¨ë“œì—서는 주로 문서내ì—ì„œì˜ ì´ë™ì´ë‚˜ íŽ¸ì§‘ì„ ë‹´ë‹¹í•˜ê²Œ ëœë‹¤. í‚¤ì¡°í•©ì„ í†µí•´ ìƒë‹¹ížˆ ë§Žì€ ëª…ë ¹ì´ ê°€ëŠ¥í•˜ë©° ì´ëª¨ë“ ëª…ë ¹ì„ ë‹¤ 외우는 ì‚¬ëžŒì€ ì—†ë‹¤ê³ ë´ë„ 무방하다. 하지만 주로 쓰는 ëª…ë ¹ì€ ê·¹ížˆ ì œí•œì ì´ê³ 논리ì 으로 ì •ë¦¬ë˜ì–´ 있는 편ì´ê¸° ë•Œë¬¸ì— ì‚¬ìš©í•˜ëŠ” ë°ì—는 í° ë¬´ë¦¬ê°€ 없다. === 편집모드 === ì‹¤ì œë¡œ 문서를 편집하는 모드ì´ë©° ëª…ë ¹ëª¨ë“œì—서 i키를 눌러 ì§„ìž…í• ìˆ˜ ìžˆê³ ESC키를 눌러 ë¹ ì ¸ 나올수 있다. ì´ ëª¨ë“œëŠ” 글ìžì˜ ìž…ë ¥ì—ë§Œ 사용ë˜ë¯€ë¡œ 극히 ì¼ë¶€ 키만 ì œì™¸í•˜ê³ ëŠ” windowì˜ ë©”ëª¨ìž¥ 처럼 ê·¸ì ¸ ìž…ë ¥ë§Œ í• ìˆ˜ 있다. ìƒë‹¨ì— 위치한 Function Key[* F1~ F12]ë“¤ë„ ê·¸ëƒ¥ ìž…ë ¥ì´ ë ë¿ ë™ìž‘하지 않는다. === ex모드 === ëª…ë ¹ëª¨ë“œì—서는 í• ìˆ˜ 없는 ë™ìž‘ë“¤ì„ ìˆ˜í–‰í•œë‹¤. 주로 ëª…ë ¹ì— ì¸ìžê°€ 필요한 경우가 대부분ì´ë©° 편집기를 닫거나 새로운 파ì¼ì„ 열거나 í• ë•Œ 사용ëœë‹¤. ëª…ë ¹ëª¨ë“œì—서 :를 눌러서 ex모드로 들어갈수 있으며 í•˜ë‹¨ì— :ê³¼ ë”불어 ëª…ë ¹ì˜ ë‚´ìš©ì„ í™•ì¸í• 수 있다. === 비주얼 모드 === ìž˜ë¼ ë¶™ì´ê¸°ë‚˜ ë³µì‚¬í• ë•Œì˜ ì˜ì—ì„ ì§€ì •í• ìˆ˜ 있는 모드로 ëª…ë ¹ëª¨ë“œì™€ ìœ ì‚¬í•˜ë‚˜ 범위를 ì§€ì •í• ìˆ˜ 있는 ê²ƒì´ í° ì°¨ì´ì ì´ë‹¤. 주로 문서를 편집하기 위해 ëª…ë ¹ëª¨ë“œì™€ ê°™ì´ ë§Žì´ ì‚¬ìš©ë˜ë©° ìžì‹ ì´ ì„ íƒí•œ ì˜ì—ì´ ì–´ë””ì—서부터 어디까지ì¸ì§€ 알수 있다. 다만 ë‹¹ì—°í•˜ê²Œë„ ë§ˆìš°ìŠ¤ë¡œ ì§€ì •í• ìˆ˜ëŠ” ì—†ê³ [* gvim ê°™ì€ê²½ìš°ì—는 마우스로 ì„ íƒí•˜ë©´ ìžë™ìœ¼ë¡œ 비주얼모드로 ì „í™˜ëœë‹¤] 키보드로 ì§€ì •í• ìˆ˜ 있다. === 찾기 모드 === íŠ¹ì •í•œ 문구를 찾기 위한 모드ì´ë©° 별ë„ì˜ ëª¨ë“œë¡œ 취급하지 않ì„때가 많다. ex모드처럼 í•˜ë‹¨ì— ëª…ë ¹ì´ ë³´ì´ë‚˜ :으로 시작하지 ì•Šê³ /로 시작한다. [ì •ê·œí‘œí˜„ì‹]ì„ ì‚¬ìš©í•˜ì—¬ ê²€ìƒ‰í• ìˆ˜ 있으며 ì •ê·œí‘œí˜„ì‹ì— ìµìˆ™í•˜ë‹¤ë©´ 누구보다 ë¹ ë¥´ê²Œ 문서를 ê²€ìƒ‰í• ìˆ˜ 있다. = 단축키 = vimì—서는 단축키ë¼ê¸° 보다는 ì‹¤ì œ ëª…ë ¹ì´ë¼ í• ìˆ˜ 있다. 왜ëƒë©´ 해당하는 ìž‘ì—…ì„ í•˜ê¸° 위한 ë°©ë²•ì´ í•´ë‹¹ 키를 누르는 것 ë°–ì— ì—†ê¸° 떄문ì´ë‹¤. vimì€ console기반ì´ê¸° ë–„ë¬¸ì— ë‹¹ì—°ížˆ 마우스는 ë°°ì œë˜ë©° 마우스로 í• ìˆ˜ 있는 ì¼ì„ 쉽게 í• ìˆ˜ 있는 방법으로ì¨ì˜ keyê°€ 아니기 ë•Œë¬¸ì— ì—„ë°€ížˆ ë§í•˜ë©´ 단축키는 아니다. ì˜¤ížˆë ¤ ëª…ë ¹ì–´ë¼ëŠ” í‘œí˜„ì´ ë§Žì´ ì‚¬ìš©ë˜ì§€ë§Œ GUI íŽ¸ì§‘ê¸°ì— ìµìˆ™í•œ 사람들입장ì—서는 단축키로 ë³´ì´ë¯€ë¡œ ë‹¨ì¶•í‚¤ë¼ í•˜ê² ë‹¤. == ëª…ë ¹ëª¨ë“œ == === ì´ë™ === ì´ë™ ëª…ë ¹ì–´ë“¤ì€ ì•„ì£¼ 중요하다. ê³¼ê±°ì— ì˜¤ë¦¬ì§€ë„ vi는 방향키를 ì¸ì‹í•˜ì§€ 못하며[* ì´ì „ì—는 í‚¤ë³´ë“œì— ë°©í–¥í‚¤ê°€ 없었다] ë”°ë¼ì„œ ì´ë™í‚¤ë¥¼ ì´ìš©í•˜ëŠ” ê²ƒì´ ìœ ì¼í•˜ê²Œ 커셔를 옯길수 있는 수단ì´ì—ˆë‹¤. ||앞으로 한칸 ì´ë™ || h || ||위로 한칸 ì´ë™ || j || ||아래로 한칸 ì´ë™ || k || ||뒤으로 한칸 ì´ë™ || l || ||다ìŒë‹¨ì–´ì˜ 처ìŒìœ¼ë¡œ || w || ||다ìŒë‹¨ì–´ì˜ 처ìŒìœ¼ë¡œ (íŠ¹ìˆ˜ë¬¸ìž ë¬´ì‹œ) || W || ||다ìŒë‹¨ì–´ì˜ 마지막으로 || e || ||다ìŒë‹¨ì–´ì˜ 마지막으로 (íŠ¹ìˆ˜ë¬¸ìž ë¬´ì‹œ)|| E || ||ì´ì „ë‹¨ì–´ì˜ ì²˜ìŒìœ¼ë¡œ || b || ||다ìŒë‹¨ì–´ì˜ 처ìŒìœ¼ë¡œ (íŠ¹ìˆ˜ë¬¸ìž ë¬´ì‹œ) || B || ìœ„ì˜ í‚¤ë“¤ì€ ìˆ«ìž í‚¤ì™€ ë”불어 사용ë 수 있으며 ì´ë¥¼ ì´ìš©í•´ ë¹ ë¥´ê²Œ ì´ë™ì´ 가능하다. {{{3j}}}는 위로 ì„¸ì¹¸ì„ ì´ë™í•˜ëŠ” 것ì´ë©° {{{40w}}}는 40단어 ë’¤ì˜ ì²˜ìŒìœ¼ë¡œ ì´ë™í•˜ëŠ” 것ì´ë‹¤. 처ìŒì— J와 Kê°€ ë§Žì´ í—·ê°ˆë¦¬ê²Œ ë˜ëŠ”ë° ì¤‘ê°„ì— ìŠ¬ëž˜ì‰¬ë¥¼ 넣어 HJ/KL로 외우면 ì¢€ë” ì‰½ê²Œ 외우는 ê²ƒì´ ê°€ëŠ¥í•˜ë‹¤. ||줄 ë으로 ì´ë™ || $ || ||줄 처ìŒìœ¼ë¡œ ì´ë™ || ^ || ||ì¼ì¹˜í•˜ëŠ” 괄호로 ì´ë™ || % || ||문장 시작 || ( || ||문장 ë || ) || ||í™”ë©´ì˜ ì²˜ìŒ || H || ||í™”ë©´ì˜ ë§ˆì§€ë§‰ || L || ||ë¬¸ì„œì˜ ì²˜ìŒ || gg || ||ë¬¸ì„œì˜ ë§ˆì§€ë§‰ || G || 여기서 문장ì´ëž€ 빈 줄로 구분ëœê²ƒì„ ë§í•œë‹¤. 즉, 문장과 문장 사ì´ì—는 ë¹ˆì¤„ì´ ì¡´ìž¬í•˜ê³ ì•½ê°„ ì–´ë µê²Œ ë§í•˜ë©´ 줄바꿈 문ìžê°€ ë‘ê°œ ì—°ì†ëœ ê³³ì„ ë¬¸ìž¥ì´ êµ¬ë¶„ëœ ê³³ì´ë¼ê³ ì¸ì‹í•œë‹¤. ì´ë™í‚¤ëŠ” ë‚˜ì¤‘ì— íŽ¸ì§‘í‚¤ë“¤ê³¼ 조합하여 범위를 ì§€ì •í•˜ëŠ”ë° ì‚¬ìš©í• ìˆ˜ 있다. === 편집 === íŽ¸ì§‘ì€ í¬ê²Œ ìžë¥´ê³ ë¶™ì´ëŠ” ê²ƒì„ ë§í•œë‹¤. ||ìžë¥´ê¸° || d || ||복사 || y || ||ë’¤ì— ë¶™ì´ê¸° || p || ||ì•žì— ë¶™ì´ê¸° || P || ìœ„ì˜ í‚¤ë“¤ì€ ê¸°ë³¸ì ì¸ íŽ¸ì§‘ 키들ì´ë‹¤. ìžë¥´ê±°ë‚˜ ë³µì‚¬í• ë•Œì—는 범위가 í•„ìš”í•œë° ì´ë•Œì˜ 범위는 ìœ„ì˜ ì´ë™í‚¤ë¡œ ì§€ì •í•œë‹¤. 예를들어 {{{y3j}}}는 아래로 3번째줄까지 복사하ë¼ëŠ” ì˜ë¯¸ì´ë©° {{{d$}}}는 í˜„ìž¬ì¤„ì˜ ë§ˆì§€ë§‰ê¹Œì§€ 잘ë¼ë‚´ë¼ëŠ” ì˜ë¯¸ê°€ ëœë‹¤. ì´ë•Œ ì£¼ì˜ í• ì ì€ í•´ë‹¹í•˜ëŠ” ì»¤ì…”ì˜ ìœ„ì¹˜ê¹Œì§€ ì ìš©ì´ ëœë‹¤ëŠ” 것ì´ë‹¤. 예를 들어 다ìŒê³¼ ê°™ì€ í…스트가 ìžˆë‹¤ê³ í•˜ìž {{{ var express = require('express') var routes = require('./routes') var http = require('http') var path = require('path'); }}} ì»¤ì…”ì˜ ìœ„ì¹˜ê°€ expressë‹¨ì–´ì˜ ì²˜ìŒì— ìžˆë‹¤ê³ í•˜ë©´ {{{d3j}}}ëª…ë ¹ì€ ì „ì²´ ë‚´ìš©ì„ ì§€ìš°ê²Œ ëœë‹¤. ì´ëŠ” ì»¤ì…”ì˜ ìœ„ì¹˜í•´ 해당하는 범위까지 íŽ¸ì§‘ëª…ë ¹ì´ ì ìš©ë˜ê¸° 때문ì¸ë° 비 ì§ê´€ì ì¸ê²ƒ 같다면 ê³ ì³ì§€ì§€ ì•Šê³ ê·¸ëŒ€ë¡œ ì‚¬ìš©í•˜ê³ ìžˆë‹¤. ì•„ë¬´ëž˜ë„ íŽ¸ì§‘ëª…ë ¹ì—서 ì´ë™í•˜ëŠ” 거리와 ì´ë™ëª…ë ¹ì—서 ì´ë™í•˜ëŠ” 거리를 ë™ì¼í•˜ê²Œ 하는 것ì¸ê²ƒ 같긴 하다. === 창간ì´ë™ === vi는 ì—¬ëŸ¬ê°œì˜ ì°½ì„ ì§€ì›í•œë‹¤. 가장 ë§Žì´ ì“°ì´ëŠ” ì°½ì˜ í˜•íƒœëŠ” 좌우 ë¶„í• ì°½ì´ë‹¤. ||<c-w><c-w>[* ì»¨íŠ¸ë¡¤ì„ ëˆ„ë¥¼ 채로 w를 ë‘번 누른다.]||ë‹¤ìŒ ë¶„í• ì°½ìœ¼ë¡œ ì´ë™|| ||gt||ë‹¤ìŒ íƒìœ¼ë¡œ ì´ë™|| ||gT||ì´ì „ íƒìœ¼ë¡œ ì´ë™|| === 커셔 === ||<c-k>[* ctrl + k]||커셔아래 단어 man page검색|| ||gt||커셔아래 ë‹¨ì–´ì˜ íŒŒì¼ë¡œ 간다[* go file]|| ||<c-w>F||새창ì—서 열기|| ||<c-w>gF||새íƒì—서 열기|| [[include(í‹€:작성중)]] == ex모드 == ||tabnew||새íƒì„ 연다|| ||tabnext||ë‹¤ìŒ íƒìœ¼ë¡œ 간다.|| ||tabprev||ì´ì „ íƒìœ¼ë¡œ 간다.|| ||vs||수ì§ìœ¼ë¡œ 분리|| ||sp||수í‰ìœ¼ë¡œ 분리|| ---- * http://www.vim.org - Vim ì„ ì–»ì„ ìˆ˜ 있는 ê³³. * http://www.vim.org/scripts - vim plugin * [http://vim-scripts.org/ Vim Scripts] = ì°¸ê³ ë§í¬ = * [Linux/Development UsingVIM] * [[http://vim.wikia.com/wiki/Vim_Tips_Wiki|Vim Tips Wiki]] * [[http://doc.kldp.org/KoreanDoc/html/Vim_Guide-KLDP/Vim_Guide-KLDP.html|Vim Guide]] * [[http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html|Graphical vi-vim Cheat Sheet and Tutorial]] * [[http://kldp.org/node/102947|Vi/Vim 단축키 ëª¨ìŒ -KLDP]] ~ ìœ„ì˜ ë§í¬ 한글 ë²„ì „ * http://kltp.kldp.org/stories.php?topic=25 - kltp ì˜ vi ê´€ë ¨ íŒ ëª¨ìŒ, 홈페ì´ì§€ ìžì²´ëŠ” ì§€ì› ì¤‘ë‹¨ë¨ - DeadLink * [[http://kldp.org/node/125263|vim 사용ìžë¥¼ 위한 í”ŒëŸ¬ê·¸ì¸ ë§¤ë‹ˆì € vundle ì„ ì†Œê°œ 합니다. - KLDP]] ---- ["ë„구분류"]