Vim

Vim(빔, Vi IMproved)은 Bram Moolenaar가 만든 vi 호환 텍스트 편집기이다. CLI용 Vim과 GUI용 gVim이 있다. 본래 아미가 컴퓨터 용 프로그램이었으나 현재는 마이크로소프트 윈도우, 리눅스, 맥 오에스 텐을 비롯한 여러 환경을 지원한다. Vim은 vi와 호환되면서도 독자적으로 다양한 기능을 추가하여 사용자의 편의를 돕고 있다. 특히 Vim 스크립트 등을 사용해서 자유롭게 편집 환경을 변경하거나, 확장된 정규 표현식 문법, 강력한 문법 강조 기능, 다중 되돌리기, 유니코드를 비롯한 다국어 지원, 문법 검사 등을 쓸 수 있다는 점이 강점으로 꼽힌다. 한편으로는 vi와 마찬가지로 처음에 배우기 어렵다는 점이 단점으로 지적되는데, 이를 극복하기 위해 쉬운 Vim 모드를 지원한다. Bram Moolenaar는 1988년 아미가 컴퓨터용 Vim에 대한 작업을 시작하였다. Moolenaar는 1991년에 Vim v1.14를 처음 공개하였다. Vim은 Tim Thompson, Tony Andrews, G.R. (Fred) Walter가 만든 아타리 ST용 초기 편집기 Stevie에 기반을 두었다. "Vim"은 "Vi IMproved"의 준말인데, 그 이유는 Vim이 프로그램 소스 코드 편집 시 유용한 수많은 추가 기능이 포함된 vi 편집기의 확장판이기 때문이다. 원래 "Vi IMitation"을 대표하는 말이었으나, 1993년 12월 Vim 2.0 출시와 함께 이처럼 변경되었다. vi처럼 Vim도 CUI(명령줄 사용자 인터페이스)를 기반으로 하며, gVim이라는 GUI(그래픽 사용자 인터페이스)용 프로그램에는 메뉴와 자주 사용하는 명령어 툴바를 추가했으나 여전히 대부분의 기능은 CUI방식을 이용한다. Vim은 초보자를 위한 내장 설명서가 있는데 터미널에서 'vimtutor'라는 명령어로 이를 볼 수 있다. 또한 더 상세한 사용자 설명서도 있다. 이 역시 Vim에서나 온라인에서 볼 수 있다. Vim에서 :help라는 명령어로 명령어나 기능을 검색해 볼 수도 있다. Vim은 vi 호환 모드를 갖고 있지만 이 모드가 아닌 경우 Vim은 vi에 비해 수많은 개선사항이 있다. 그러나 호환성 모드에서도 Vim은 단일 유닉스 규격, POSIX에 정의된대로 완전히 vi와 호환되는 것은 아니다. (예: Vim은 vi의 오픈 모드를 지원하지 않으며, 시각 모드만 지원한다) 그럼에도 Vim은 "Vi와 매우 호환성이 높은 것"으로 기술되고 있다. Vim의 개선 사항 중에는 파일의 완성, 비교, 병합(vimdiff), 통합된 도움말 시스템, 확장된 정규 표현식, 플러그인 지원을 포함한 스크립트 언어(네이티브 및 펄, 파이썬, 루비, Tcl 등의 기타 스크립트 인터프리터를 통해), 그래픽 사용자 인터페이스(gvim), 제한된 통합 개발 환경과 같은 기능, 마우스 상호작용(GUI와 함께/GUI 없이), 폴딩, 압축 파일(gzip, bzip2, zip, tar 포맷) 및 네트워크 프로토콜(SSH, FTP, HTTP)을 경유한 파일의 편집, 세션 상태 보존, 맞춤법 검사, 수직/수평 탭 창, 유니코드 및 기타 다언어 지원, 문법 강조, 세션 경유 명령, 검색 및 커서 위치 역사, 시각 모드 등이 포함된다. Vim 스크립트(Vim script, vimscript, VimL)는 Vim에 통합된 스크립트 언어이다. 오리지널 vi 편집기의 ex 편집기 언어에 기반한 초기 버전의 Vim은 제어 흐름과 함수 정의를 위한 명령들을 추가하였다. 버전 7 이후로 Vim 스크립트는 객체 지향 프로그래밍의 리스트와 사전과 같은 더 진보된 자료형을 지원한다. map()과 filter()와 같은 내장 함수들은 기본적인 형태의 함수형 프로그래밍을 지원하며, Vim 스크립트는 버전 8.0 이후로 람다를 포함하고 있다. Vim 스크립트는 대체적으로 명령형 프로그래밍 스타일로 작성된다. 다음은 while 루프의 예제이다. " This is a simple while loop in Vim script. let i = 1 while i < 5 echo "count is" i let i += 1 endwhile Neovim은 Vim의 확대집합이 되는 Vim의 리팩터(refactor) 판이다. Neovim은 Vim과 동일한 구성을 공유한다. 그러므로 동일한 구성 파일을 두 편집기에서 사용할 수 있다. 2015년 12월 출시된 버전 0.1을 기준으로, Neovim은 Vim 기능의 대부분과 호환된다. 편집기 전쟁 “Vim 9.1 is available”. 2024년 1월 2일. 2024년 1월 3일에 확인함.  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." http://moolenaar.net/vimstory.pdf Paul, Ryan (2011년 11월 2일). “Two decades of productivity: Vim's 20th anniversary”. 《Ars Technica》. 2011년 11월 4일에 확인함.  Vim (2015년 1월 20일). “intro.txt”. 《Vim Help》 (영어). Vim. 2016년 7월 9일에 원본 문서에서 보존된 문서. 2016년 7월 9일에 확인함.  “vim(1)”. 《die.net》. Vim. 2006년 4월 11일. 2016년 7월 9일에 원본 문서에서 보존된 문서. 2016년 7월 9일에 확인함. 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.  “ICCF Holland — helping children in Uganda”. ICCF Holland. 2007년 10월 23일에 확인함.  “Filewatcher”. 2011년 7월 11일에 원본 문서에서 보존된 문서. 2011년 2월 26일에 확인함.  Vim help system (type ":help" within Vim) The Open Group (2008), 《"vi — screen-oriented (visual) display editor", Single Unix Specification, Version 4 (IEEE Std 1003.1-2008)》, 2010년 12월 27일에 확인함  Peppe, Benji, Charles Campbell (2004년 1월 2일). “Vim FAQ”. 2010년 12월 27일에 확인함.  CS1 관리 - 여러 이름 (링크) (question 1.3) http://vimdoc.sourceforge.net/htmldoc/usr_41.html “Neovim: vim, out of the box”.  “Neovim Vision”.  “Switching to NeoVim”.  “How to start using Neovim instead of Vim”. 2017년 6월 4일에 원본 문서에서 보존된 문서. 2017년 5월 30일에 확인함.  위키미디어 공용에 Vim 관련 미디어 분류가 있습니다. Vim - 공식 웹사이트