{{위키데이터 속성 추적}}
{{소프트웨어 정보
|이름      = Vim
|로고      = Vimlogo.svg
|화면      = Vim-(logiciel)-console.png
|설명      = 터미널에서 실행 중인 Vim
|원저자    = Bram Moolenaar
|개발자    = 
| released = {{시작 날짜와 나이|1991|11|02|df=yes|paren=yes|br=yes}}
| latest release version = {{wikidata|property|edit|reference|Q131382|P348|P548=Q2804309}}
| latest release date = {{시작 날짜와 나이|{{wikidata|qualifier|Q131382|P348|P548=Q2804309|P577}}}}
|프로그래밍 언어      = [[C (프로그래밍 언어)|C]]
|운영체제  = 크로스 플랫폼
|언어      = 영어, 중국어, 프랑스어, 이탈리아어, 폴란드어, 러시아어, 독일어, 스페인어, 페르시아어
| 플랫폼      = 
|종류      = [[텍스트 편집기]]
|라이선스  = [[채러티웨어]] ([[GNU GPL]] 호환)
|웹사이트  = http://www.vim.org/
}}
[[파일:Vim.png|섬네일|221px|[[GTK+|GTK+ 2]] 환경에서 실행 중인 gVim]]
'''Vim'''(빔<ref name="pronounc">[http://vimdoc.sourceforge.net/htmldoc/intro.html Vim documentation: intro]: "Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a capital, since it's a name, again like Jim."</ref>, {{lang|en|Vi IMproved}})은 Bram Moolenaar가 만든 [[vi]] 호환 [[텍스트 편집기]]이다. CLI용 Vim과 GUI용 '''gVim'''이 있다. 본래 [[아미가]] 컴퓨터 용 프로그램이었으나 현재는 [[마이크로소프트 윈도우]], [[리눅스]], [[맥 오에스 텐]]을 비롯한 여러 환경을 지원한다.

Vim은 vi와 호환되면서도 독자적으로 다양한 기능을 추가하여 사용자의 편의를 돕고 있다. 특히 [[#Vim 스크립트|Vim 스크립트]] 등을 사용해서 자유롭게 편집 환경을 변경하거나, 확장된 [[정규 표현식]] 문법, 강력한 [[문법 강조]] 기능, 다중 [[되돌리기]], [[유니코드]]를 비롯한 다국어 지원, [[문법 검사]] 등을 쓸 수 있다는 점이 강점으로 꼽힌다. 한편으로는 vi와 마찬가지로 처음에 배우기 어렵다는 점이 단점으로 지적되는데, 이를 극복하기 위해 쉬운 Vim 모드를 지원한다.

== 역사 ==
[[Bram Moolenaar]]는 1988년 [[아미가]] 컴퓨터용 Vim에 대한 작업을 시작하였다. Moolenaar는 1991년에 Vim v1.14를 처음 공개하였다.<ref>http://moolenaar.net/vimstory.pdf</ref> Vim은 Tim Thompson, Tony Andrews, G.R. (Fred) Walter가 만든 [[아타리 ST]]용<ref name="Ryan">{{뉴스 인용 |title=Two decades of productivity: Vim's 20th anniversary |url= http://arstechnica.com/open-source/news/2011/11/two-decades-of-productivity-vims-20th-anniversary.ars |first=Ryan |last=Paul |work=Ars Technica |date=2011-11-02 |accessdate=2011-11-04}}</ref> 초기 편집기 Stevie에 기반을 두었다.<ref>{{웹 인용|author1=Vim|title=intro.txt|url=http://vimhelp.appspot.com/intro.txt.html|website=Vim Help|publisher=Vim|accessdate=9 July 2016|archiveurl=https://web.archive.org/web/20160709041643/https://vimhelp.appspot.com/intro.txt.html |language=영어|date=20 January 2015|archivedate=9 July 2016}}</ref><ref>{{웹 인용|title=vim(1)|url=http://linux.die.net/man/1/vim|website=die.net|publisher=Vim|accessdate=9 July 2016|archiveurl=https://web.archive.org/web/20160709133642/http://linux.die.net/man/1/vim |archivedate=9 July 2016|date=11 April 2006|quote=Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and G.R. (Fred) Walter. Although hardly any of the original code remains.}}</ref>

"Vim"은 "Vi IMproved"의 준말인데<ref>{{웹 인용 |url=http://iccf-holland.org/click5.html#oualline |title=ICCF Holland&nbsp;— helping children in Uganda |publisher=ICCF Holland |accessdate=2007-10-23}}</ref>, 그 이유는 Vim이 프로그램 [[소스 코드]] 편집 시 유용한 수많은 추가 기능이 포함된 [[vi]] 편집기의 확장판이기 때문이다. 원래 "Vi IMitation"을 대표하는 말이었으나, 1993년 12월 Vim 2.0 출시와 함께 이처럼 변경되었다.<ref name="filewatcher">{{웹 인용 |title=Filewatcher |url=http://www.filewatcher.com/b/ftp/ftp.twaren.net/pub/Unix/Editors/Vim/old.0.0.html |accessdate=February 26, 2011 |보존url=https://web.archive.org/web/20110711001335/http://www.filewatcher.com/b/ftp/ftp.twaren.net/pub/Unix/Editors/Vim/old.0.0.html |보존날짜=2011년 7월 11일 |url-status=dead }}</ref>

== 인터페이스 ==
[[vi]]처럼 Vim도 CUI(명령줄 사용자 인터페이스)를 기반으로 하며, gVim이라는 GUI(그래픽 사용자 인터페이스)용 프로그램에는 메뉴와 자주 사용하는 명령어 툴바를 추가했으나 여전히 대부분의 기능은 CUI방식을 이용한다.

Vim은 초보자를 위한 내장 설명서가 있는데 터미널에서 'vimtutor'라는 명령어로 이를 볼 수 있다. 또한 더 상세한 사용자 설명서도 있다. 이 역시 Vim에서나 온라인에서 볼 수 있다. Vim에서 <code>:help</code>라는 명령어로 명령어나 기능을 검색해 볼 수도 있다.

== Vi에 비해 개선된 사항과 기능 ==
Vim은 vi 호환 모드를 갖고 있지만 이 모드가 아닌 경우 Vim은 vi에 비해 수많은 개선사항이 있다.<ref name="vimhelp">Vim help system (type "<code>[http://vimdoc.sourceforge.net/htmldoc/help.html :help]</code>" within Vim)</ref> 그러나 호환성 모드에서도 Vim은 [[단일 유닉스 규격]]<ref>{{인용 | url = http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html | title= "vi&nbsp;— screen-oriented (visual) display editor", Single Unix Specification, Version 4 (IEEE Std 1003.1-2008) | author = The Open Group | accessdate = 2010-12-27 | year = 2008 }}</ref>, [[POSIX]]에 정의된대로 완전히 vi와 호환되는 것은 아니다. (예: Vim은 vi의 오픈 모드를 지원하지 않으며, 시각 모드만 지원한다) 그럼에도 Vim은 "Vi와 매우 호환성이 높은 것"으로 기술되고 있다.<ref name=vimfaq>{{웹 인용 |url=http://vimdoc.sourceforge.net/htmldoc/vimfaq.html#1.3|title=Vim FAQ|author=Peppe, Benji, Charles Campbell|date=2004-01-02|accessdate=2010-12-27}} (question 1.3)</ref>

Vim의 개선 사항 중에는 파일의 [[자동 완성|완성]], [[파일 비교|비교]], [[병합]](vimdiff), 통합된 도움말 시스템, 확장된 [[정규 표현식]], 플러그인 지원을 포함한 [[스크립트 언어]](네이티브 및 펄, 파이썬, 루비, Tcl 등의 기타 스크립트 인터프리터를 통해), [[그래픽 사용자 인터페이스]](gvim), 제한된 [[통합 개발 환경]]과 같은 기능, [[마우스]] 상호작용(GUI와 함께/GUI 없이), 폴딩, 압축 파일([[gzip]], [[bzip2]], [[ZIP (파일 포맷)|zip]], [[tar (파일 포맷)|tar]] 포맷) 및 네트워크 프로토콜([[시큐어 셸|SSH]], [[파일 전송 프로토콜|FTP]], [[HTTP]])을 경유한 파일의 편집, 세션 상태 보존, [[맞춤법 검사기|맞춤법 검사]], 수직/수평 탭 창, [[유니코드]] 및 기타 다언어 지원, [[문법 강조]], 세션 경유 명령, 검색 및 커서 위치 역사, 시각 모드 등이 포함된다.

== Vim 스크립트 ==
Vim 스크립트(Vim script, vimscript, VimL)는 Vim에 통합된 [[스크립트 언어]]이다.<ref>http://vimdoc.sourceforge.net/htmldoc/usr_41.html</ref> 오리지널 vi 편집기의 [[ex (유닉스)|ex]] 편집기 언어에 기반한 초기 버전의 Vim은 제어 흐름과 함수 정의를 위한 명령들을 추가하였다. 버전 7 이후로 Vim 스크립트는 [[객체 지향 프로그래밍]]의 [[리스트 (컴퓨팅)|리스트]]와 [[연관 배열|사전]]과 같은 더 진보된 자료형을 지원한다. <code>map()</code>과 <code>filter()</code>와 같은 내장 함수들은 기본적인 형태의 [[함수형 프로그래밍]]을 지원하며, Vim 스크립트는 버전 8.0 이후로 [[익명 함수|람다]]를 포함하고 있다. Vim 스크립트는 대체적으로 [[명령형 프로그래밍|명령형 프로그래밍 스타일]]로 작성된다.
=== 예 ===
다음은 <code>[[while]]</code> 루프의 예제이다.
<syntaxhighlight lang="vim">
" This is a simple while loop in Vim script.
let i = 1
while i < 5
  echo "count is" i
  let i += 1
endwhile
</syntaxhighlight>

== Neovim ==
[[파일:Neovim-logo.svg|섬네일|upright=.8|Neovim]]
Neovim<ref>{{웹 인용|url=http://neovim.io/|title=Neovim: vim, out of the box}}</ref>은 Vim의 확대집합이 되는 Vim의 리팩터(refactor) 판이다.<ref>{{웹 인용| url = https://neovim.io/charter/|title = Neovim Vision}}</ref> Neovim은 Vim과 동일한 구성을 공유한다. 그러므로 동일한 [[구성 파일]]을 두 편집기에서 사용할 수 있다.<ref>{{웹 인용| url = http://arusahni.net/blog/2015/03/switching-to-neovim-part-1.html|title = Switching to NeoVim}}</ref> 2015년 12월 출시된 버전 0.1을 기준으로, Neovim은 Vim 기능의 대부분과 호환된다.<ref>{{웹 인용| url=http://veelenga.com/editors/how-to-start-using-neovim-instead-of-vim/| title=How to start using Neovim instead of Vim| 확인날짜=2017-05-30| 보존url=https://web.archive.org/web/20170604054638/http://veelenga.com/editors/how-to-start-using-neovim-instead-of-vim/| 보존날짜=2017-06-04| url-status=dead}}</ref>

== 같이 보기 ==
* [[편집기 전쟁]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{위키공용분류-줄}}
* {{공식 웹사이트}}

{{HTML 편집기}}
{{자유-오픈 소스 소프트웨어}}
{{전거 통제}}

[[분류:유닉스 문서 편집기]]
[[분류:C로 작성된 자유 소프트웨어]]
[[분류:크로스 플랫폼 자유 소프트웨어]]
[[분류:리눅스 문서 편집기]]
[[분류:윈도우 문서 편집기]]
[[분류:자유 문서 편집기]]
[[분류:아미가 소프트웨어]]
[[분류:Vi]]
[[분류:콘솔 애플리케이션]]
[[분류:명령줄 소프트웨어]]
[[분류:헥사 편집기]]