Vim
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Vim은 1988년 Bram Moolenaar가 Amiga 컴퓨터용으로 개발을 시작한 텍스트 편집기이다. Vi 편집기를 기반으로 하여 "Vi IMproved"의 약자로 불리며, 다양한 기능 개선과 사용자 정의 기능을 제공한다. Vim은 일반 모드, 입력 모드, 시각 모드, 명령줄 모드 등 여러 모드를 지원하며, 플러그인, 자동 완성, 구문 강조, 다중 버퍼, 창 분할, 파일 비교, 퀵픽스 등 다양한 기능을 제공한다. Vim 스크립트를 통해 사용자 정의 및 확장이 가능하며, Neovim과 같은 포크 프로젝트도 존재한다. Vim은 다양한 운영체제에서 사용 가능하며, Atom, Sublime Text, Emacs, Visual Studio Code 등 다른 애플리케이션에서도 Vim과 유사한 조작 체계를 지원한다.
더 읽어볼만한 페이지
- Vi - 편집기 전쟁
편집기 전쟁은 리눅스와 유닉스 환경에서 널리 쓰이는 텍스트 편집기인 Emacs와 vi 사이의 설계 철학, 기능, 사용자 경험 차이로 인해 발생한 오랜 논쟁을 의미한다. - 헥사 편집기 - GNU 이맥스
GNU 이맥스는 1984년 리처드 스톨먼이 개발한 자유 소프트웨어 텍스트 편집기로, C 언어와 Emacs Lisp를 사용하며, 다양한 기능과 확장성을 통해 텍스트 편집, 프로그래밍, 파일 관리 등 다양한 용도로 사용된다. - 헥사 편집기 - 이맥스
이맥스는 리처드 스톨만이 개발한 텍스트 편집기로, GNU Emacs는 Emacs Lisp를 설정 언어로 사용하며 다양한 운영체제에서 사용 가능하고 많은 기능과 사용자 정의 옵션을 제공한다. - 아미가 소프트웨어 - 모르프OS
모르프OS는 1999년 Quark 마이크로커널 기반으로 개발되어 AmigaOS의 대안을 목표로 PowerPC 기반 컴퓨터를 위해 만들어진 운영체제로, 빠른 속도와 세련된 인터페이스를 지향하며 AmigaOne, Macintosh, Efika, Pegasos 등의 특정 하드웨어에서 실행되도록 설계되었다. - 아미가 소프트웨어 - 워드퍼펙트
워드퍼펙트는 브루스 바스티안과 앨런 애슈턴 교수가 개발한 워드 프로세서로, DOS 환경에서 인기를 얻었으나 윈도우 환경 전환이 늦어 마이크로소프트 워드에 밀려 현재는 코렐 워드퍼펙트 오피스의 일부로 개발되어 일부 사용자층에게 사용되고 있다.
| Vim - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 이름 | Vim (Vi 향상) |
![]() | |
![]() | |
| 종류 | 텍스트 편집기 |
| 라이선스 | Vim 라이선스 (기부웨어) |
| 웹사이트 | Vim 공식 웹사이트 |
| 개발 | |
| 개발자 | 브람 무레나르 |
| 프로그래밍 언어 | C, Vim 스크립트 |
| 출시 | |
| 최초 출시일 | 1991년 11월 2일 |
| 최신 버전 | 9.1 |
| 최신 버전 출시일 | 2024년 6월 22일 |
| 지원 환경 | |
| 운영 체제 | 유닉스, 리눅스, 윈도우 NT, MS-DOS, macOS, iOS, 안드로이드, 하이쿠, 아미가OS, MorphOS |
2. 역사
브람 물라나르는 1988년 아미가 컴퓨터용 Vim에 대한 작업을 시작하였고, 1991년에 Vim v1.14를 처음 공개하였다.[101] Vim은 아타리 ST용[102] 초기 편집기 Stevie에 기반을 두었다.[103][104]
Vim은 원래 "Vi IMitation"을 대표하는 말이었으나, 1993년 12월 Vim 2.0 출시와 함께 "Vi IMproved"로 변경되었다.[106] Vim은 vi 편집기의 확장판으로, 프로그램 소스 코드 편집 시 유용한 수많은 추가 기능이 포함되어 있다.
Vim의 전신인 스티비(Vi 애호가를 위한 ST 편집기)는 1987년 아타리 ST용으로 팀 톰슨이 개발했으며, 토니 앤드류스[10][12]와 G.R.(프레드) 월터가 추가 개발했다.[13][14] 이는 Vi의 최초의 대중적인 클론 중 하나였으며 Vi의 소스 코드를 사용하지 않았다.
Vim은 네덜란드 프로그래머인 브람 무르나르에 의해 Amiga용으로 개발되었다. 이후 Windows를 포함한 다양한 환경으로 이식되었으며, 특히 유닉스 계열 운영 체제(OS)에서는 Emacs와 함께 널리 사용되는 텍스트 에디터가 되었다.
Vim이라는 명칭은, 오리지널 vi 에디터에 가까워지는 것을 목표로 하여, 개발 초기에는 '''V'''i '''IM'''itation (vi의 모방)의 약자로 사용되었다. 그러나, 이후 vi를 뛰어넘는 것을 목표로 하여 '''V'''i '''IM'''proved (vi의 개량)로 바뀌게 되었고, 오늘날에는 오리지널 vi를 크게 능가하는 기능을 갖게 되었다.
Vim은 GUI를 필요로 하지 않고 CUI에서도 작동하므로, 유닉스 계열 OS에 표준 에디터로 탑재되는 경우가 많다. 2000년 이후의 OS에서는 vi 대신 더 고기능의 Vim, 혹은 그 기능 저하판이 표준으로 장착되게 되었다. 명령줄에서 vi를 실행하면 대신 Vim이 기동되는 배포판이 일반적이다.
Vim은 기본적으로 CUI로 작동하지만, GUI로 작동하는 Vim을 특히 '''GVim''' (gVim, gvim, 지빔)이라고 부르며 구별하고 있다.
Vim의 큰 특징은 높은 커스터마이징성이다. 오리지널 vi가 어떤 환경에서도 설정 없이 모든 기능을 사용할 수 있는 만인용 에디터였던 데 반해, Vim에서는 설정 파일을 사용함으로써 보다 개인의 취향에 맞는 에디터로 커스터마이징할 수 있다.
Vim은 다언어, 다코덱을 다룰 수 있으며, iconv로 대응하고 있는 것이라면 대개 이용할 수 있다.
Vim의 라이선스 형태는 GPL 호환의 자선 소프트웨어로 되어 있으며, 이른바 프리 오픈 소스 소프트웨어로서 배포되고 있다. Vim을 기동하면 우간다의 어린이들을 위한 원조를 호소하는 메시지가 표시된다. 브람 물라르[80]가 1980년대 말에 Amiga 컴퓨터를 구입한 것이 Vim 탄생의 계기가 되었다. 그는 에디터로 vi를 사용하려 했지만, 당시 Amiga용 vi는 존재하지 않았다. 그래서 vi의 클론인 Stevie를 기반으로 Vim 버전 1.0을 개발했다.
2. 1. 초기 개발
브람 물라나르는 1988년 아미가 컴퓨터용 Vim 개발을 시작했으며, 1991년에 첫 번째 공개 릴리스(Vim v1.14)를 출시했다.[15][16] Vim은 Vi와 호환되도록 설계된 스티비라는 텍스트 편집기를 기반으로 만들어졌다. 스티비는 1987년 아타리 ST용으로 팀 톰슨이 개발했으며, 토니 앤드류스와 G.R.(프레드) 월터가 추가 개발했다.[10]처음에 "Vim"이라는 이름은 "Vi IMitation"의 약자였지만, 1993년 말 "'Vi IMproved"로 변경되었다.[17] 이는 Vim이 프로그램 소스 코드 편집 시 유용한 수많은 추가 기능이 포함된 vi 편집기의 확장판이기 때문이다.
2. 2. Vi IMproved
브람 물라나르는 1988년 아미가 컴퓨터용 Vim 개발을 시작했으며, 1991년에 첫 번째 공개 릴리스(Vim v1.14)를 출시했다.[15][16]처음에는 "Vim"이라는 이름은 "Vi IMitation"의 약자였지만, 1993년 말 "'Vi IMproved"로 변경되었다.[17] Vim이 프로그램 소스 코드 편집 시 유용한 수많은 추가 기능이 포함된 vi 편집기의 확장판이기 때문에 "Vi IMproved"라는 이름이 붙었다.[105]
2. 3. 주요 버전 출시 역사
| 날짜 | 버전 | 변경 사항 및 추가 사항 |
|---|---|---|
| 1988년 | 1.0 | 브람 물레나르가 아미가용 Vi IMitation을 만들었지만, 공개적으로 출시되지는 않았다. |
| 1991년 11월 2일 | 1.14[18] | Fred Fish 디스크 #591에 아미가용 첫 공개 릴리스[19] |
| 1992년 | 1.22[18] | 유닉스로 포팅되었지만, 공개적으로 출시되지는 않았다.[17] 이제 Vim은 vi와 경쟁한다. |
| 1993년 12월 14일 | 2.0[20] | Vi IMproved라는 이름을 사용하는 첫 번째 릴리스이다.[17] |
| 1994년 8월 12일 | 3.0[18] | 여러 창 지원 |
| 1996년 5월 29일 | 4.0[18][21] | 그래픽 사용자 인터페이스 |
| 1998년 2월 19일 | 5.0[18][22] | 구문 강조, 기본적인 스크립트 언어 (사용자 정의 함수, 명령 등) |
| 1998년 4월 6일 | 5.1 | 소프트웨어 버그 수정, 다양한 개선 사항 |
| 1998년 4월 27일 | 5.2 | 긴 줄 지원, 파일 브라우저, 대화 상자, 팝업 메뉴, 선택 모드, 세션 파일, 사용자 정의 함수 및 명령, Tcl 인터페이스 등 |
| 1998년 8월 31일 | 5.3 | 버그 수정 등 |
| 1999년 7월 25일 | 5.4 | 기본 파일 암호화, 다양한 개선 사항 |
| 1999년 9월 19일 | 5.5 | 버그 수정, 다양한 개선 사항 |
| 2000년 1월 16일 | 5.6 | 새로운 구문 파일, 버그 수정 등 |
| 2000년 6월 24일 | 5.7 | 새로운 구문 파일, 버그 수정 등 |
| 2001년 5월 31일 | 5.8 | 새로운 구문 파일, 버그 수정 등 |
| 2001년 9월 26일 | 6.0[18][23] | 접기, 플러그인, 다국어 지원 등 |
| 2002년 3월 24일 | 6.1 | 버그 수정 |
| 2003년 6월 1일 | 6.2 | GTK2 및 libgnome2 지원, 아랍어 지원, :try 명령, 사소한 기능, 버그 수정 |
| 2004년 6월 7일 | 6.3 | 버그 수정, 번역 업데이트, 마크 개선 |
| 2005년 10월 15일 | 6.4 | 버그 수정, Perl, Python 및 Ruby 지원 업데이트 |
| 2006년 5월 7일 | 7.0[24] | 맞춤법 검사, 자동 완성, 탭 페이지 (다중 뷰포트/창 레이아웃), 현재 줄 및 열 강조 표시, 실행 취소 분기 등 |
| 2007년 5월 12일 | 7.1 | 버그 수정, 새로운 구문 및 런타임 파일 등 |
| 2008년 8월 9일 | 7.2[25] | 스크립트에서 부동 소수점 지원, 화면 그리기 코드 리팩터링, 버그 수정, 새로운 구문 파일 등 |
| 2010년 8월 15일 | 7.3 | Lua 지원, Python3 지원, 블로우피시 암호화, 영구적인 실행 취소/다시 실행 |
| 2013년 8월 10일 | 7.4[26] | 새롭고 더 빠른 정규식 엔진. |
| 2016년 9월 12일 | 8.0[27] | 비동기 I/O 지원, 작업, 람다 등 |
| 2018년 5월 18일 | 8.1[28] | 터미널 창 지원 및 터미널 gdb 플러그인. |
| 2019년 12월 13일 | 8.2[29] | 팝업 창, 텍스트 속성. |
| 2022년 6월 28일 | 9.0[30] | Vim9 스크립트 |
| 2024년 1월 2일 | 9.1[31] | Vim9 스크립트에 대한 클래스 및 객체 지원, 부드러운 스크롤, 가상 텍스트 |
Vi처럼 Vim도 명령 줄 사용자 인터페이스(CUI)를 기반으로 하며, gVim이라는 그래픽 사용자 인터페이스(GUI)용 프로그램에는 메뉴와 자주 사용하는 명령어 툴바를 추가했으나 여전히 대부분의 기능은 CUI 방식을 이용한다.[32]
3. 인터페이스
vi와 마찬가지로 Vim의 인터페이스는 메뉴나 아이콘이 아닌, 텍스트 사용자 인터페이스에서 제공되는 명령을 기반으로 한다. Vim의 GUI 모드인 '''gVim'''은 자주 사용되는 명령에 대한 메뉴와 툴바를 추가하지만, 전체 기능은 여전히 명령줄 인터페이스 모드를 통해 표현된다. Vi (그리고 확장된 Vim)는 타이피스트가 홈 로우에 손가락을 유지하도록 돕는 경향이 있으며, 이는 터치 타이피스트에게 유리할 수 있다.[32]
Vim은 기본적으로 CUI로 작동하지만, GUI로 작동하는 Vim을 특히 '''GVim''' (gVim, gvim, 지빔)이라고 부르며 구별하고 있다. 마우스 조작 등, X GUI (Unix, Linux) / Windows GUI (Windows)인 것을 살린 GVim에만 있는 기능도 있다.
vi 에디터와 마찬가지로, 키보드만으로 조작하는 것을 전제로 하고 있었기 때문에, 키보드만으로 모든 조작이 가능하다. 기본적인 조작 방법은 vi와 같으며, 상황에 따라 모드를 바꿔가며 텍스트를 편집하고, 작은 명령어의 조합을 통해 다양한 기능을 실현한다.
다른 에디터와는 조작 방법이 완전히 다르기 때문에, 익숙해질 필요가 있지만, 일단 익숙해지면 경쾌한 텍스트 편집이 가능하다는 장점이 있다.
3. 1. 내장 튜토리얼 및 도움말
Vim은 초보자를 위한 내장 튜토리얼인 'vimtutor'를 제공하며, 터미널에서 해당 명령어로 실행할 수 있다.[33] 더 상세한 사용자 설명서도 Vim 내부나 온라인에서 확인할 수 있다.[34][35] Vim에서는 :help 명령어를 통해 명령어와 기능을 검색할 수 있다.
Vim은 텍스트 형식의 방대한 문서를 갖추고 있다. :helpgrep 또는 :help 명령어를 사용하여 도움말 전체에서 특정 단어를 검색할 수 있다. 도움말 텍스트에는 태그 이름이 곳곳에 있어, 위키처럼 태그 점프를 통해 모르는 단어의 설명으로 쉽게 이동할 수 있다.
:helpgrep evim. 아래는 검색된 위치이고, 위는 선택된 위치에 대한 도움말 텍스트이다.
3. 2. 레지스터
Vim은 레지스터(하드웨어 또는 프로세서 레지스터와 혼동하지 않도록 주의)라고 하는 다양한 특수 메모리 항목을 제공한다. 사용자는 텍스트를 잘라내기, 삭제, 복사 또는 붙여넣기할 때 조작된 텍스트를 레지스터에 저장하도록 선택할 수 있다. 문자 및 숫자([a-z0-9])와 관련된 36개의 범용 레지스터와 특수 값(현재 파일 이름, 마지막 명령 등)을 포함하거나 특수한 용도로 사용되는 다양한 특수 레지스터가 있다.
레지스터는 텍스트 조각을 임시로 저장하는 공간으로, 클립보드와 거의 같은 개념이지만, 여러 개의 공간이 마련되어 있다는 점이 다르다. 알파벳 한 글자에 1개의 공간이 할당되어 있으며, 노멀 모드 중에 ''"''+(임의의 알파벳 1글자)를 입력하여 레지스터에 접근할 수 있다. 예를 들어, ''"a'' ''y'' ''$''를 입력하면 레지스터 a에 커서부터 문말까지 얀크(복사)할 수 있으며, ''"a'' ''p''를 입력하면 붙여넣을 수 있다.
3. 3. 모드
Vim은 vi와 마찬가지로 여러 편집 모드를 지원하며, 모드에 따라 입력된 문자가 명령으로 해석되거나 텍스트로 삽입된다. Vim은 14개의 편집 모드를 지원하는데, 그 중 7개의 기본 모드와 7개의 변형 모드가 있다.[36]
Vim은 여러 모드를 사용하여 텍스트 편집을 수행하며, 이는 초보자에게는 혼란스러울 수 있다. 하지만, 각 모드는 키 할당이 전환되어 마우스나 메뉴를 사용하지 않고 최소한의 메타 키 사용만으로 모든 편집 기능을 사용할 수 있게 해준다.
Vim에는 6개의 기본 모드와 5개의 파생 모드가 있지만, 실질적으로는 다음 4개의 모드가 주로 사용된다.
| 모드 | 상태 |
|---|---|
| 노멀 모드 | 커서 이동, 텍스트 삭제, 복사, 붙여넣기 등의 간단한 지시를 수행한다. |
| 비주얼 모드 | 텍스트를 선택한다. |
| 삽입 모드 | 텍스트를 입력한다. |
| 명령줄 모드 | 파일을 열거나, 검색·치환 등의 다양한 지시를 수행한다. |
기타 모드
- 선택 모드
- * 문자 선택 모드
- * 행 선택 모드
- * 직사각형 선택 모드
- Ex 모드
- 오퍼레이터 대기 모드
- 치환 모드
- * 가상 치환 모드
- (삽입 모드)
- * 삽입 노멀 모드
- * 삽입 비주얼 모드
- * 삽입 선택 모드
- (비주얼 모드)
- * 문자 비주얼 모드
- * 행 비주얼 모드
- * 직사각형 비주얼 모드
가장 간단한 사용 예시는 다음과 같다.
1. 명령줄 모드에서 파일을 연다.
2. 노멀 모드에서 커서를 이동한다.
3. 삽입 모드에서 텍스트를 입력한다. (ESC 키로 다시 노멀 모드로 돌아간다)
4. 명령줄 모드에서 파일을 저장한다.
노멀 모드에디터를 시작할 때 이 모드로 시작하며, 모든 조작의 중심이 된다. 다른 모드에서 ESC 또는 Ctrl+[、Ctrl+C를 누르면 이 모드로 전환된다.
| 키보드 조작 | 명령 표현 | 기능 |
|---|---|---|
| j | j | 아래로 커서 이동 |
| k | k | 위로 커서 이동 |
| h | h | 왼쪽으로 커서 이동 |
| l | l | 오른쪽으로 커서 이동 |
| d w | dw | 단어를 삭제 |
| y y | yy | 한 줄 복사 |
| Ctrl+F | 한 페이지 아래로 스크롤 |
오퍼레이터 대기 모드노멀 모드의 파생 모드이다. "실행 범위 지시가 필요한 명령어"를 실행했을 때 Vim이 지시를 기다리는 상태이다. 예를 들어, 노멀 모드에서 d 키[75]를 누르면 이 모드로 들어가고, 이어서 d 키를 누르면 한 줄이 삭제된다.[76]
비주얼 모드텍스트의 부분 선택을 수행하는 모드이다. 노멀 모드에서 다음 조작으로 이 모드로 전환할 수 있다.
| 키보드 조작 | 명령 표현 | 기능 |
|---|---|---|
| v | v | 문자 단위 비주얼 모드로 전환 |
| V | V | 행 단위 비주얼 모드로 전환 |
| Ctrl+V | 직사각형 선택 비주얼 모드로 전환 | |
| g v | gv | 이전에 선택한 범위를 다시 선택 |
선택 모드비주얼 모드와 거의 같지만, 인쇄 가능한 문자가 입력되면 선택 범위를 삭제하고 삽입 모드로 들어간다.
삽입 비주얼 모드삽입 모드에서 비주얼 선택을 시작했을 때의 모드이다.
삽입 선택 모드삽입 모드에서 선택 모드를 시작했을 때의 모드이다.
삽입 모드이 모드에서는 입력한 텍스트가 그대로 기록된다. 노멀 모드에서 i, I, a, A, o, O 등을 입력하여 삽입 모드로 전환할 수 있다.
| 키보드 조작 | 명령 표현 | 기능 |
|---|---|---|
| i | i | 커서 위치 앞에서부터 삽입 모드를 시작한다. |
| I | I | 행의 시작 부분부터 삽입 모드를 시작한다. |
| a | a | 커서 위치 뒤에서부터 삽입 모드를 시작한다. |
| A | A | 행의 끝에서부터 삽입 모드를 시작한다. |
| o | o | 커서 아래에 빈 행을 삽입하고, 그 시작 부분부터 삽입 모드를 시작한다 |
| O | O | 커서 위에 빈 행을 삽입하고, 그 시작 부분부터 삽입 모드를 시작한다 |
삽입 노멀 모드삽입 모드에서 한 번만 노멀 모드 명령을 실행할 수 있다.
치환 모드일반 모드에서 R 키를 눌러 이 모드로 전환한다.
명령줄 모드윈도우 하단에 한 줄의 텍스트를 입력할 수 있다. 일반 모드에서 : (콜론), / (슬래시), ? (물음표)를 누르면 이동할 수 있다.
| 키보드 조작 | 기능 |
|---|---|
| : | 콜론 다음에 명령어를 입력하고 Enter 키로 실행한다. |
| / | 전방 검색을 수행한다. |
| ? | 후방 검색을 수행한다. |
| ! | 외부 명령으로 필터 처리를 한다. |
Ex 모드명령줄 모드의 변종이다. 노멀 모드에서 Q, gQ로 Ex 모드로 전환할 수 있다.
4. 기능
Vim은 vi와의 호환 모드를 제공하지만, 이 모드를 사용하지 않을 경우 vi에 비해 많은 개선 사항을 제공한다.[107] Vim은 파일 자동 완성, 비교 및 병합(vimdiff), 통합된 도움말 시스템, 확장된 정규 표현식, 스크립트 언어 및 플러그인 지원, 그래픽 사용자 인터페이스(gvim), 제한적인 통합 개발 환경 기능, 마우스 상호작용, 폴딩, 압축 파일 및 네트워크 프로토콜을 통한 파일 편집, 세션 상태 보존, 맞춤법 검사, 수직/수평 탭 창, 유니코드 및 다국어 지원, 문법 강조, 세션 간 명령, 검색 및 커서 위치 히스토리, 다단계 및 분기 실행 취소/다시 실행 기록, 시각 모드 등 다양한 기능을 제공한다.
Vim은 사용자의 변경 사항을 ".swp" 확장자를 가진 스왑 파일에 저장하여 충돌 후 복구 기능을 제공한다.[44][45]
Vim은 연산자와 범위 지정 명령을 조합하여 텍스트 편집을 수행한다. 연산자는 복사(y), 삭제(d), 변경(c), 선택(v) 등의 조작을 의미하며, 범위 지정 명령은 이동 키(h, j, k, l, ^, $)와 텍스트 오브젝트(iw, i", a", a( 등)를 사용하여 지정한다.
| 명령어 | 연산자 | 범위 지정 |
|---|---|---|
| `yVim은 vi와의 호환 모드를 제공하지만, 이 모드를 사용하지 않을 경우 vi에 비해 많은 개선 사항을 제공한다.[107] Vim은 파일 자동 완성, 비교 및 병합(vimdiff), 통합된 도움말 시스템, 확장된 정규 표현식, 스크립트 언어 및 플러그인 지원, 그래픽 사용자 인터페이스(gvim), 제한적인 통합 개발 환경 기능, 마우스 상호작용, 폴딩, 압축 파일 및 네트워크 프로토콜을 통한 파일 편집, 세션 상태 보존, 맞춤법 검사, 수직/수평 탭 창, 유니코드 및 다국어 지원, 문법 강조, 세션 간 명령, 검색 및 커서 위치 히스토리, 다단계 및 분기 실행 취소/다시 실행 기록, 시각 모드 등 다양한 기능을 제공한다. Vim은 사용자의 변경 사항을 ".swp" 확장자를 가진 스왑 파일에 저장하여 충돌 후 복구 기능을 제공한다.[44][45] Vim은 연산자와 범위 지정 명령을 조합하여 텍스트 편집을 수행한다. 연산자는 복사(y), 삭제(d), 변경(c), 선택(v) 등의 조작을 의미하며, 범위 지정 명령은 이동 키(h, j, k, l, ^, $)와 텍스트 오브젝트(iw, i", a", a( 등)를 사용하여 지정한다. | 복사(y) | 커서 위치부터 행말까지($) |
| `daw` | 삭제(d) | 커서 아래 단어(a w) |
| `ci"` | 변경(c) | ""로 둘러싸인 텍스트(i ") |
| `vip` | 선택(v) | 빈 행으로 둘러싸인 문단 전체(i p) |
Vim은 커서 위치 히스토리를 기억하여 Ctrl+o 와 Ctrl+i 를 통해 이전/다음 커서 위치로 이동할 수 있다. 또한, `ctags`를 통해 태그 리스트를 작성하면 Ctrl+] 를 눌러 정의 위치로 점프하는 태그 점프 기능을 사용할 수 있다.
4. 1. 사용자 정의 및 확장성
Vim은 사용자가 원하는 대로 설정하고 기능을 확장할 수 있어, 텍스트 편집 환경을 자유롭게 제어하고 싶은 사용자에게 매우 유용하다.[38]사용자는 "키 바인딩"을 통해 복잡한 명령을 실행할 수 있는데, 이는 사용자가 직접 키 조합을 설정하여 원하는 기능을 수행하도록 하는 것이다. "녹화" 기능을 사용하면 일련의 키 입력을 자동화하는 매크로를 만들 수 있다. 이 매크로는 키 입력 순서를 저장하여 반복적인 작업을 간단하게 처리할 수 있도록 도와준다. 또한, "약어" 기능을 통해 짧은 문자열을 긴 문자열로 확장하거나 실수를 수정할 수 있다. Vim은 쉬운 모드도 제공하여 간단한 텍스트 편집을 원하는 사용자도 쉽게 사용할 수 있도록 배려했다.[39]
Vim의 기능을 확장하거나 새로운 기능을 추가하는 다양한 플러그인이 존재한다. 이러한 플러그인은 Vim의 내부 스크립팅 언어인 vimscript(VimL)로 작성되는 경우가 많지만,[40] 다른 언어로도 작성할 수 있다.
Vim을 특정 작업에 맞게 변경하거나 기능을 추가하기 위해 복잡한 스크립트와 사용자 정의를 묶은 프로젝트도 있다. 예를 들어, Cream은 Vim을 클릭 앤드 타입 편집기처럼 작동하도록 만들고, VimOutliner는 유닉스 계열 시스템 사용자를 위한 편리한 아웃라이너를 제공한다.
Vim은 높은 커스터마이징성을 제공한다. 사용자는 설정 파일을 통해 자신의 취향에 맞게 에디터를 커스터마이징할 수 있다. 에디터의 상세 설정은 주로 `~/.vimrc` (Windows 버전에서는 `%USERPROFILE%\_vimrc`) 파일에 작성하며, Vim은 시작할 때 이 파일을 읽어 설정을 적용한다. Vim은 자체 스크립트 언어(Vim script)를 사용하여 기능을 확장할 수 있으며, 다양한 기능 강화가 가능하다. 유용한 스크립트는 플러그인 형태로 [http://www.vim.org/ www.vim.org]나 개인 블로그에서 공개되어 있다. 이러한 플러그인 파일을 `~/.vim` (windows 버전에서는 `%USERPROFILE%\vimfiles`) 폴더에 넣어 기능을 확장할 수 있다.
매크로는 조작을 기록하여 동일한 조작을 반복할 때 유용하다. 노멀 모드에서 `q`와 임의의 알파벳 1자를 입력하면 기록 상태가 되고, 다시 `q`를 입력하면 기록이 종료된다. 노멀 모드에서 `@`와 앞서 지정한 알파벳 1자를 입력하면 기록된 조작을 재생할 수 있다.
노멀 모드, 삽입 모드, 비주얼 모드, 명령 모드의 키 매핑을 자유롭게 변경할 수 있다. 길어서 기억하기 어렵지만 유용한 키 바인딩을 짧게 재정의하는 데 사용된다. 독자적인 처리를 수행하는 명령도 정의할 수 있으며, 유용한 것은 플러그인으로 공개되어 있다.
Vim은 개인의 취향에 맞춰 커스터마이즈할 수 있다. 프로그래머를 위한 Vim은 설정을 많이 사용하여 각 개인에 맞게 사용하기 쉽게 하는 것이 일반적이다. 그 설정의 범위는 기본적인 인터페이스부터 키보드 매크로까지 광범위하다.
Vim은 고유한 스크립트 언어(Vim 스크립트, `:help vim-script-intro`)를 가지고 있으며, 커스터마이즈 처리는 주로 이 언어로 작성한다. [http://www.vim.org/ www.vim.org]나 개인 블로그에서 편리한 스크립트가 플러그인으로 공개되어 있다.
Vim의 초기 설정은 주로 `~/.vimrc`[77]라는 텍스트 파일로 하며, `~/.vim` 디렉터리[78]에 다수의 플러그인 스크립트를 배치함으로써 기능 확장을 실현한다. 개인 설정은 다양하지만 대부분의 사용자는 `~/.vimrc`에 옵션 (`:help options`)이나 키 맵 변경 등을 기술한다.
`set` 명령으로 옵션을 설정한다. 옵션 이름에 `no`를 붙이면 그 부정이 된다.
| 명령어 | 의미 |
|---|---|
| `set nocompatible` | vi와 호환 모드로 하지 않음 |
| `set number` | 행 번호를 표시 |
| `set autoindent smartindent` | 프로그래밍용 자동 들여쓰기 |
| `set expandtab` | 탭 문자를 스페이스 문자로 변환 |
| `set nobackup` | 백업을 하지 않음 |
| `syntax on` | 구문 강조 표시 기능을 활성화 |
| `nnoremap ; :` | 키 맵 변경 |
| `vnoremap ; :` | 키 맵 변경 |
| `inoremap | 키 맵 변경 |
| `inoremap 사용자는 "키 바인딩"을 통해 복잡한 명령을 실행할 수 있는데, 이는 사용자가 직접 키 조합을 설정하여 원하는 기능을 수행하도록 하는 것이다. "녹화" 기능을 사용하면 일련의 키 입력을 자동화하는 매크로를 만들 수 있다. 이 매크로는 키 입력 순서를 저장하여 반복적인 작업을 간단하게 처리할 수 있도록 도와준다. 또한, "약어" 기능을 통해 짧은 문자열을 긴 문자열로 확장하거나 실수를 수정할 수 있다. Vim은 쉬운 모드도 제공하여 간단한 텍스트 편집을 원하는 사용자도 쉽게 사용할 수 있도록 배려했다.[39] Vim의 기능을 확장하거나 새로운 기능을 추가하는 다양한 플러그인이 존재한다. 이러한 플러그인은 Vim의 내부 스크립팅 언어인 vimscript(VimL)로 작성되는 경우가 많지만,[40] 다른 언어로도 작성할 수 있다. Vim을 특정 작업에 맞게 변경하거나 기능을 추가하기 위해 복잡한 스크립트와 사용자 정의를 묶은 프로젝트도 있다. 예를 들어, Cream은 Vim을 클릭 앤드 타입 편집기처럼 작동하도록 만들고, VimOutliner는 유닉스 계열 시스템 사용자를 위한 편리한 아웃라이너를 제공한다. Vim은 높은 커스터마이징성을 제공한다. 사용자는 설정 파일을 통해 자신의 취향에 맞게 에디터를 커스터마이징할 수 있다. 에디터의 상세 설정은 주로 `~/.vimrc` (Windows 버전에서는 `%USERPROFILE%\_vimrc`) 파일에 작성하며, Vim은 시작할 때 이 파일을 읽어 설정을 적용한다. Vim은 자체 스크립트 언어(Vim script)를 사용하여 기능을 확장할 수 있으며, 다양한 기능 강화가 가능하다. 유용한 스크립트는 플러그인 형태로 [http://www.vim.org/ www.vim.org]나 개인 블로그에서 공개되어 있다. 이러한 플러그인 파일을 `~/.vim` (windows 버전에서는 `%USERPROFILE%\vimfiles`) 폴더에 넣어 기능을 확장할 수 있다. 매크로는 조작을 기록하여 동일한 조작을 반복할 때 유용하다. 노멀 모드에서 `q`와 임의의 알파벳 1자를 입력하면 기록 상태가 되고, 다시 `q`를 입력하면 기록이 종료된다. 노멀 모드에서 `@`와 앞서 지정한 알파벳 1자를 입력하면 기록된 조작을 재생할 수 있다. 노멀 모드, 삽입 모드, 비주얼 모드, 명령 모드의 키 매핑을 자유롭게 변경할 수 있다. 길어서 기억하기 어렵지만 유용한 키 바인딩을 짧게 재정의하는 데 사용된다. 독자적인 처리를 수행하는 명령도 정의할 수 있으며, 유용한 것은 플러그인으로 공개되어 있다. Vim은 개인의 취향에 맞춰 커스터마이즈할 수 있다. 프로그래머를 위한 Vim은 설정을 많이 사용하여 각 개인에 맞게 사용하기 쉽게 하는 것이 일반적이다. 그 설정의 범위는 기본적인 인터페이스부터 키보드 매크로까지 광범위하다. Vim은 고유한 스크립트 언어(Vim 스크립트, `:help vim-script-intro`)를 가지고 있으며, 커스터마이즈 처리는 주로 이 언어로 작성한다. [http://www.vim.org/ www.vim.org]나 개인 블로그에서 편리한 스크립트가 플러그인으로 공개되어 있다. Vim의 초기 설정은 주로 `~/.vimrc`[77]라는 텍스트 파일로 하며, `~/.vim` 디렉터리[78]에 다수의 플러그인 스크립트를 배치함으로써 기능 확장을 실현한다. 개인 설정은 다양하지만 대부분의 사용자는 `~/.vimrc`에 옵션 (`:help options`)이나 키 맵 변경 등을 기술한다. `set` 명령으로 옵션을 설정한다. 옵션 이름에 `no`를 붙이면 그 부정이 된다. | 키 맵 변경 |
`~/.vim` 이하는 어느 정도 용도별로 디렉터리가 나뉘어져 있다. 다운로드한 플러그인은 지정된 디렉터리에 둠으로써 동작한다.
~/.vimrc
~/.vim/
after/
autoload/
compiler/
colors/
doc/
plugin/
ftdetect/
ftplugin/
syntax/
indent/
macros/
4. 2. 자동 완성 및 맞춤법 검사
Vim은 코드 및 텍스트 작성을 돕는 자동 완성 기능과 맞춤법 검사 기능을 제공한다.[107]
삽입 모드에서 Ctrl+n, Ctrl+p를 누르면 문장 내 단어를 팝업으로 표시하여 자동 완성이 가능하다. 명령 모드에서도 자동 완성이 가능하며, 기능 이름을 잘 기억하지 못해도 제안해 준다. 플러그인을 사용하면 코드 스니펫, 시각, 함수 이름 등 자유도가 높은 자동 완성도 가능하다.
Vim은 맞춤법 검사 기능을 제공하여 텍스트의 오탈자를 확인하고 수정할 수 있도록 돕는다.[107]
4. 3. 파일 관리
Vim은 저장 시 자동 백업 기능을 제공한다.[107] 또한, 에디터가 강제 종료된 경우에도 직전 위치부터 편집을 재개할 수 있다.[107]4. 4. 구문 강조 및 접기
Vim은 다양한 프로그래밍 언어 및 파일 형식에 대해 구문 강조 기능을 제공하여 코드 가독성을 높인다. Vim은 기본적으로 400가지 이상의 구문 강조를 제공하며, 이는 다른 텍스트 편집기에 비해 매우 많은 숫자이다. 특히 Vim은 UNIX 설정 파일을 편집하는 경우가 많기 때문에 `/etc` 하위의 많은 파일이 색상으로 구분되어 표시된다. 이 기능은 gVim뿐만 아니라 색상 표시가 가능한 터미널에서도 사용할 수 있다.[107]구문 강조 정의 파일은 정규 표현식을 사용하여 필요에 따라 확장할 수 있다. 또한, 색상 구분 방식(컬러 스킴)도 자유롭게 변경할 수 있으며, 개인 취향에 따라 다양하게 활용할 수 있다.[107]
Vim은 코드 가독성을 높이는 접기(폴딩) 기능을 제공한다. 긴 단락이나 함수 등을 접어서 간결하게 표시하면 전체적인 내용을 파악하기 쉬워진다. 몇 가지 접기 방법이 있으며, 직접 범위를 지정하여 접을 수도 있고, 자동으로 판단하여 접히게 할 수도 있다.[107]
4. 5. 다중 버퍼, 창 분할, 탭 페이지
Vim은 여러 텍스트를 동시에 편집할 수 있다. 하나의 Vim 창 안에서 윈도우를 상하좌우, 임의의 개수로 분할하여 사용할 수 있다. 이를 통해 파일 트리, 셸, 도움말 등을 한 화면에 표시할 수 있다.4. 6. 차분 표시 (vimdiff)
Vim은 파일의 변경 사항을 쉽게 비교할 수 있도록 창을 좌우로 분할하여 차분 표시를 수행하는 기능을 제공한다. 이때 변경점은 색상으로 구분되고 접기가 이루어지며, 좌우 화면이 동시에 스크롤된다. 비교 및 병합 기능은 vimdiff를 통해 제공된다.[41]
4. 7. Quickfix
통합 개발 환경과 마찬가지로 소스 파일을 편집한 후 Vim에서 직접 컴파일할 수 있다. 컴파일 오류가 발생하면 Quickfix라는 또 다른 창이 표시된다. 오류 메시지를 기반으로 다른 창에 표시된 소스 파일의 오류가 발생한 위치로 직접 이동할 수 있다.5. Vim 스크립트
Vim 스크립트(VimL)는 Vim에 내장된 스크립트 언어이다.[110] 초기 Vim은 vi 편집기의 ex 명령어에 기반하여 제어 흐름 및 함수 정의 기능을 추가했다. 버전 7부터는 리스트, 사전 같은 고급 자료형과 간단한 객체 지향 프로그래밍을 지원한다. `map()`, `filter()` 등의 내장 함수로 기본적인 함수형 프로그래밍이 가능하며, 버전 8.0부터는 람다를 지원한다. Vim 스크립트는 주로 명령형 프로그래밍 방식으로 작성된다.
Vim 매크로는 일련의 ''normal-mode'' 명령을 포함할 수 있지만, 더 복잡한 작업은 Vim 스크립트로 작성된 ex 명령이나 함수를 호출하기도 한다. Vim 기능 확장의 대부분은 Vim 스크립트로 작성되지만, Perl,[49] Python,[50] Lua,[51] Ruby,[52] Tcl,[53] Racket[54] 등 다른 언어를 활용하는 플러그인도 있다. 플러그인은 수동 설치하거나 Vundle, Pathogen, Vim-Plug 같은 관리자로 설치할 수 있다.
Vim 스크립트 파일은 텍스트로 저장되며 확장자는 `.vim`이다. 예외적으로 Vim 설정 파일은 `.vimrc`이다. Vim 스크립트는 Vim 설정 파일(vimrc, 플러그인, 들여쓰기, 구문, 색상 구성, 파일 유형 판별 등)에 사용되어 동작을 세밀하게 조정한다.
Vim 스크립트는 JavaScript와 유사하며, while 문, if 문 등 제어 구문과 리스트, 해시 등의 자료 구조를 지원한다. 단, 엄격한 클래스, 상속 개념은 없다.
컴파일 시 Vim영어에 Perl, Python영어, Ruby영어 등의 인터페이스를 추가하면 Vim 스크립트 내에서 다른 언어를 사용할 수도 있다.
5. 1. 예제
vim" Vim 스크립트의 Hello World 프로그램
:echo "Hello, world!"
" Vim 스크립트의 간단한 while 루프
:let i = 1
:while i < 5
: echo "count is" i
: let i += 1
:endwhile
:unlet i
```
변경 사항 설명:1. 코드 블록 형식 변경: `
5. 2. Vim9 스크립트
Vim 9.0 버전부터 새로운 Vim9 스크립트 언어가 추가되었다.[95] 성능 향상을 주요 목표로 하며, 스크립트를 컴파일함으로써 10~100배의 실행 속도 향상을 기대할 수 있다. 또한 문법이 자바스크립트와 같은 더욱 일반적인 프로그래밍 언어와 비슷해졌다.기존 Vim 스크립트 지원은 계속된다.
6. Neovim
'''Neovim'''은 Vim의 확장성과 유지보수성을 개선하기 위해 만들어진 포크이다.[60][61] Vim의 리팩토링 버전으로,[111][112] 기본적인 부분은 Vim과 거의 차이가 없지만, 신기능 추가 및 더 이상 사용되지 않는 기능 삭제 등이 이루어지고 있다.
Neovim은 Vim과 동일한 구성을 공유하기 때문에 동일한 구성 파일을 두 편집기에서 사용할 수 있다.[113][64] 2015년 12월에 출시된 버전 0.1 기준으로, Neovim은 Vim 기능 대부분과 호환된다.[114] Neovim 추가 기능을 사용하지 않으면 Neovim은 거의 모든 Vim 기능과 호환된다.[65]
Neovim 주요 기능은 다음과 같다.
Neovim 프로젝트는 멀티 스레딩을 지원하는 Vim 패치가 거부된 후 2014년에 시작되었다.[66] 2014년 3월에 성공적인 자금 모금을 통해 최소 한 명의 정규직 개발자를 지원했다.[67][68]
2021년 7월 2일 Neovim 0.5 릴리스를 통해 LSP, Tree-sitter에 대한 내장 지원과 VimL 대신 Lua로 작성된 구성 스크립트 지원을 포함하여 보다 완벽한 Lua 지원을 하게 되었다.[72]
Neovim 기능을 활용하는 여러 프런트 엔드가 개발 중이다.[69][70][71] GUI 아키텍처 개선, 스크립트 고속화, 다른 애플리케이션에 임베딩이 용이해지는 것이 강조되고 있다.
7. 플러그인
Vim은 플러그인을 통해 기능을 확장하거나 새로운 기능을 추가할 수 있다.[40] 플러그인은 보통 Vim의 내부 스크립팅 언어인 vimscript(VimL)로 작성되지만, 다른 언어로도 작성 가능하다.
Vim을 특정 작업용 도구로 만들거나 동작에 주요한 특색을 추가하기 위해 복잡한 스크립트와 사용자 정의를 함께 묶는 프로젝트가 있다. 예를 들어 Vim을 클릭 앤드 타입 편집기처럼 작동하게 만드는 Cream이나, Unix 계열 시스템 사용자를 위한 편안한 아웃라이너를 제공하는 VimOutliner가 있다.
Vim 스크립트 플러그인은 `~/.vim` 아래의 적절한 위치에 배치하여 동작한다. 초기에는 Vim.org에서 호스팅되는 작은 기능을 가진 스크립트가 많았다. 그러나 2000년대 후반 이후 컴퓨터 성능 향상과 Vim 스크립트 개발 활성화로 고성능, 다기능 플러그인이 급격히 증가했다. 다만 Vim.org에서 받은 플러그인 파일은 여러 디렉토리에 직접 압축을 풀고 설치해야 했기 때문에, 플러그인이 늘어남에 따라 관리가 복잡해지는 경우가 많았다.
7. 1. 플러그인 관리
Vim 버전 7부터 '''Vimball'''(빔볼)이라는 플러그인 관리 기능이 탑재되었다. Vimball은 플러그인을 압축하여 단일 파일로 제공하며, 설치 및 제거를 간편하게 해준다. Vimball 형식의 플러그인을 설치하려면, Vim.org에서 다운로드한 파일(확장자 '''.vba''')을 Vim 에디터로 열어:so %를 실행하면 된다. 제거는 :RmVimball [플러그인의 이름] 명령어를 사용한다. (자세한 내용은 :help vimball을 참조한다.)그러나 Vimball 형식에 대응하는 스크립트가 적고, 플러그인 버전 관리를 지원하지 않아 Git을 이용한 방법으로 전환되었다. GitHub의 등장으로 많은 플러그인이 Git으로 관리되기 시작했고, 사용자들은 자신의 설정 파일(
~/.vim)을 GitHub에서 관리하며 플러그인도 Git으로 관리하려는 요구가 생겨났다.이러한 요구에 부응하여, pathogen(패소겐, Tim Pope 作)이라는 플러그인이 등장했다. pathogen은
~/.vim 전체를 Git으로 관리하고, Git의 submodule 기능을 사용하여 제3자 플러그인을 관리하도록 했다. 이를 통해 Vimball 형식의 문제점이 거의 해결되었고, 플러그인 관리 부담이 획기적으로 줄었다.하지만 플러그인별로 업데이트와 설치를 관리해야 하는 문제는 여전했다. 2010~2011년에는 이 부분을 자동화하고 개선한 Vundle(번들, gmarik 作)과 같은 Vim 스크립트가 등장했다. 이러한 스크립트를 사용하면 플러그인 이름이나 저장소를 나열하는 것만으로 일괄 설치 및 업데이트가 가능해졌다. 이에 따라 Vim.org에 업로드되었던 플러그인 대부분이 GitHub로 이식되었다.[79]
8. 이식된 환경
Vim은 원래 유닉스 운영 체제에서만 사용할 수 있었던 vi 에디터와는 달리, 다양한 운영 체제로 이식되었다. 초기 대상 플랫폼이었던 아미가OS를 비롯하여, 아타리 MiNT, BeOS, DOS, Windows (Windows NT 3.1부터), OS/2, OS/390, MorphOS, OpenVMS, QNX, RISC OS, 리눅스, BSD, 클래식 맥 OS 등 다양한 운영 체제에서 사용할 수 있다.[55] 특히 애플의 macOS에는 Vim이 기본적으로 제공된다.[56]
한국에서 많이 사용되는 안드로이드[57][58] 및 iOS[59]용 Vim도 존재한다.
9. 다른 애플리케이션과의 유사성
Vi 및 Vim의 조작 체계는 수많은 소프트웨어에 계승되거나 에뮬레이트되고 있다. 한국에서도 Vim 사용자층이 넓기 때문에, 이러한 유사 기능은 많은 사용자들에게 유용하다. 다음은 그 일부 예시이다.
다른 텍스트 편집기에서도 Vim의 단축키 조작 방식을 지원하는 플러그인이 많이 존재한다.
- Atom (Vim-mode 플러그인)
- Sublime Text (Vintage, Vintageous 플러그인)
- Emacs (Evil 플러그인)
- 이클립스 (Vrapper 플러그인)
- Kate (VI Input mode)
- Xcode (Vim mode, Xvim 플러그인)
- JetBrains IDE ([https://plugins.jetbrains.com/plugin/164-ideavim JetBrains 플러그인])
- Visual Studio Code ([https://marketplace.visualstudio.com/items?itemName=vscodevim.vim Vim 플러그인])
Vim의 조작 방식은 한 손가락으로 이동할 수 있다는 점에서 PDF, 이미지 뷰어 및 웹 브라우저와도 잘 맞는다.
- 모질라 파이어폭스 (Vimperator, Pentadactyl, VimFx 애드온)
- 구글 크롬 ([https://chromewebstore.google.com/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb Vimium] 확장)
- Gmail이나 구글 드라이브 등 구글이 제공하는 웹 서비스는 Vim과 유사한 단축키 기능을 가지고 있다. (예: j 키로 한 칸 아래 내용으로 이동)
- Vivaldi (Vimium 확장)
- Safari ([https://apps.apple.com/jp/app/vimari/id1480933944?mt=12 Vimari] 확장)
- W3m (텍스트 브라우저)
- MuPDF (PDF 열람)
- feh (이미지 열람)
- bash (`set -o vi`로 Vi 모드), zsh, fish 등의 셸
참조
[1]
웹사이트
vim/LICENSE
https://github.com/v[...]
2021-10-20
[2]
웹사이트
Vim License
https://spdx.org/lic[...]
[3]
웹사이트
Vim: uganda.txt
https://vimhelp.org/[...]
[4]
Webarchive
Vim documentation: intro
https://vimhelp.org/[...]
2019-01-13
[5]
인터뷰
Rozhovor: Bram Moolenaar
http://www.linuxexpr[...]
2024-01-03
[6]
서적
Pro vim
https://www.worldcat[...]
2014
[7]
웹사이트
Best Editor {{!}} Linux Journal
https://www.linuxjou[...]
2023-04-20
[8]
웹사이트
Stack Overflow Developer Survey 2015 § IV. Text Editor
https://insights.sta[...]
Stack Overflow
2016-07-25
[9]
웹사이트
Stack Overflow Developer Survey 2019 Results
https://insights.sta[...]
Stack Overflow § VII. Development Environments
2019-07-20
[10]
웹사이트
Stevie
http://nosuch.com/tj[...]
2000-03-26
[11]
뉴스그룹
A mini-vi for the ST
http://groups.google[...]
1987-06-28
[12]
뉴스그룹
v15i037: Stevie, an "aspiring" VI clone for Unix, OS/2, Amiga
http://groups.google[...]
1988-06-06
[13]
웹사이트
intro.txt
https://vimhelp.apps[...]
Vim
2015-01-20
[14]
웹사이트
vim(1)
http://linux.die.net[...]
Vim
2006-04-11
[15]
웹사이트
The continuing story of Vim
http://moolenaar.net[...]
2000-10-10
[16]
웹사이트
The history of Vim – Jovica Ilic
https://jovicailic.o[...]
2014-06-05
[17]
웹사이트
VILE (Vi Like Emacs) – Frequently Asked Questions (FAQ)
https://invisible-is[...]
2019-09-07
[18]
웹사이트
Vim, an open-source text editor
http://www.free-soft[...]
2002-01-15
[19]
웹사이트
Textfiles.com
http://cd.textfiles.[...]
2009-10-02
[20]
웹사이트
Filewatcher
http://www.filewatch[...]
2011-02-26
[21]
웹사이트
Official Vim Manual, Version 4 summary
http://www.vim.org/h[...]
2004-03-12
[22]
웹사이트
Official Vim Manual, Version 5 summary
http://www.vim.org/h[...]
2004-01-17
[23]
웹사이트
Official Vim Manual, Version 6 summary
http://www.vim.org/h[...]
2004-03-12
[24]
웹사이트
Vim Reference Manual, Version 7
https://vimhelp.org/[...]
2016-07-17
[25]
웹사이트
Google Groups
http://groups.google[...]
[26]
Webarchive
Google Discussiegroepen
https://groups.googl[...]
2011-01-22
[27]
웹사이트
Vim 8.0 released!
https://groups.googl[...]
2016-09-12
[28]
웹사이트
Vim 8.1 is released!
https://www.vim.org/[...]
2018-05-18
[29]
웹사이트
Vim 8.2 is released!
https://www.vim.org/[...]
2019-12-13
[30]
웹사이트
Vim 9.0 is released!
https://www.vim.org/[...]
2022-06-30
[31]
웹사이트
Vim 9.1 is released!
https://www.vim.org/[...]
2024-01-04
[32]
서적
Learning the Vi Editor
https://archive.org/[...]
O'Reilly Media, Inc.
1998
[33]
웹사이트
Vim documentation: usr_01
http://vimdoc.source[...]
2010-11-03
[34]
Webarchive
Vim help files
https://vimhelp.org/
2019-01-13
[35]
서적
Vi IMproved (VIM)
http://ftp.vim.org/p[...]
New Riders Publishers
2001-04
[36]
웹사이트
Vim: intro.txt
https://vimhelp.org/[...]
2023-09-01
[37]
웹사이트
CS107 The Vim Editor
https://web.stanford[...]
2023-01-27
[38]
웹사이트
Why Vim, An '80s Text Editor, Is Still The UI Of Choice For Power Users
https://www.fastcomp[...]
2019-05-05
[39]
웹사이트
Tips: Making Vim easy
https://www.linux.co[...]
2019-05-06
[40]
웹사이트
Vim documentation: usr_41
https://vimhelp.org/[...]
2019-01-13
[41]
문서
Vim help system (type "[https://vimhelp.org/ :help]" within Vim)
[42]
간행물
"vi — screen-oriented (visual) display editor", Single Unix Specification, Version 4 (IEEE Std 1003.1–2008)
http://pubs.opengrou[...]
2010-12-27
[43]
웹사이트
Vim FAQ
https://vimhelp.org/[...]
2010-12-27
[44]
웹사이트
Vim documentation: recover
http://vimdoc.source[...]
2020-12-17
[45]
웹사이트
How to handle swapfiles in Vim
https://cs.longwood.[...]
2020-12-17
[46]
웹사이트
'swapfile' option
https://vimhelp.org/[...]
2020-12-18
[47]
웹사이트
The VimL Primer: Edit Like a Pro with Vim Plugins and Scripts by Benjamin Klein | The Pragmatic Bookshelf
https://pragprog.com[...]
2020-01-25
[48]
웹사이트
Vim documentation: usr_41
https://vimhelp.org/[...]
2019-01-13
[49]
웹사이트
Vim documentation: if_perl
http://vimdoc.source[...]
2019-08-27
[50]
웹사이트
Vim documentation: if_pyth
http://vimdoc.source[...]
2019-08-27
[51]
웹사이트
Vim documentation: if_lua
http://vimdoc.source[...]
2019-08-27
[52]
웹사이트
Vim documentation: if_ruby
http://vimdoc.source[...]
2019-08-27
[53]
웹사이트
Vim documentation: if_tcl
http://vimdoc.source[...]
2019-08-27
[54]
웹사이트
Vim documentation: if_mzsch
http://vimdoc.source[...]
2019-08-27
[55]
웹사이트
Vim Online: Downloads
http://www.vim.org/d[...]
2007-01-07
[56]
웹사이트
Mac OS X Manual Page For vim(1)
https://developer.ap[...]
Apple Inc.
2010-01-12
[57]
웹사이트
VimTouch, the development has stalled on this app
https://github.com/m[...]
2015-08-09
[58]
웹사이트
DroidVim, under active development
https://github.com/s[...]
2017-03-05
[59]
웹사이트
Vim – Applidium, mobile agency in Paris
http://applidium.com[...]
2015-08-11
[60]
웹사이트
Neovim: vim, out of the box
http://neovim.io/
2024-05-02
[61]
웹사이트
Neovim Vision
https://neovim.io/ch[...]
2016-02-18
[62]
웹사이트
Nvim documentation: vim_diff
https://neovim.io/do[...]
2019-10-02
[63]
웹사이트
GitHub – neovim/neovim: Vim-fork focused on extensibility and usability
https://github.com/n[...]
2016-02-18
[64]
웹사이트
Switching to NeoVim
http://arusahni.net/[...]
2016-02-18
[65]
웹사이트
How to start using Neovim instead of Vim
http://veelenga.com/[...]
2016-02-18
[66]
웹사이트
Vim's 25th anniversary and the release of Vim 8 [LWN.net]
https://lwn.net/Arti[...]
2023-06-13
[67]
웹사이트
Vimcasts.org blog post
http://vimcasts.org/[...]
2016-02-18
[68]
웹사이트
Neovim
https://www.bountyso[...]
2021-03-20
[69]
웹사이트
NyaoVim frontend
https://github.com/r[...]
2016-02-18
[70]
웹사이트
Mac OS X frontend
https://github.com/r[...]
2016-02-18
[71]
웹사이트
Neovim-Qt frontend
https://github.com/e[...]
2020-07-21
[72]
웹사이트
New features in Neovim 0.5 [LWN.net]
https://lwn.net/Arti[...]
2023-06-13
[73]
문서
Vim documentation: intro - pronounce
http://vimdoc.source[...]
[74]
문서
Vim日本語ドキュメント intro - pronounce
http://vim-jp.org/vi[...]
[75]
문서
delete
[76]
문서
word
[77]
문서
ヴィムアールシー、Windows版では _vimrc
[78]
문서
Windows
[79]
Github
vim-scripts - GitHub
https://github.com/v[...]
[80]
문서
Bram Moolenaar
[81]
문서
ST editor for VI enthusiasts
[82]
웹사이트
Stevie
http://nosuch.com/tj[...]
2010-12-27
[83]
뉴스
A mini-vi for the ST
https://groups.googl[...]
2010-12-27
[84]
뉴스
v15i037: Stevie, an "aspiring" VI clone for Unix, OS/2, Amiga
https://groups.googl[...]
2010-12-27
[85]
문서
Vi IMitation
[86]
웹사이트
Vim, an open-source text editor
http://www.free-soft[...]
2005-10-24
[87]
문서
Textfiles.com
http://cd.textfiles.[...]
[88]
웹사이트
Official Vim Manual, Version 4 summary
http://www.vim.org/h[...]
2008-08-06
[89]
웹사이트
Official Vim Manual, Version 5 summary
http://www.vim.org/h[...]
2008-08-06
[90]
웹사이트
Official Vim Manual, Version 6 summary
http://www.vim.org/h[...]
2008-08-06
[91]
웹사이트
Official Vim Manual, Version 7 summary
http://vimdoc.source[...]
2008-08-06
[92]
문서
groups.google.com
https://groups.googl[...]
[93]
웹사이트
Vim 8.0 新機能解説
http://vim-jp.org/bl[...]
2018-04-13
[94]
웹사이트
Vim 8.2 is available!
https://www.vim.org/[...]
vim.org
2020-02-12
[95]
웹사이트
Vim 9.0 : vim online
https://www.vim.org/[...]
2023-07-03
[96]
웹사이트
Vim Online: Downloads
http://www.vim.org/d[...]
2007-01-07
[97]
웹사이트
Macの「ターミナル」でコマンドライン・テキスト・エディタを使用する
https://support.appl[...]
2020-02-12
[98]
웹사이트
Vim Touch
https://github.com/m[...]
2020-02-12
[99]
웹사이트
App Store - Vim
http://itunes.apple.[...]
Apple Inc.
2012-02-05
[100]
문서
Vim documentation: intro
http://vimdoc.source[...]
[101]
문서
http://moolenaar.net[...]
[102]
뉴스
Two decades of productivity: Vim's 20th anniversary
http://arstechnica.c[...]
2011-11-04
[103]
웹인용
intro.txt
http://vimhelp.appsp[...]
Vim
2015-01-20
[104]
웹인용
vim(1)
http://linux.die.net[...]
Vim
2006-04-11
[105]
웹인용
ICCF Holland — helping children in Uganda
http://iccf-holland.[...]
ICCF Holland
2007-10-23
[106]
웹인용
Filewatcher
http://www.filewatch[...]
2011-02-26
[107]
문서
Vim help system
http://vimdoc.source[...]
[108]
간행물
"vi — screen-oriented (visual) display editor", Single Unix Specification, Version 4 (IEEE Std 1003.1-2008)
http://pubs.opengrou[...]
2010-12-27
[109]
웹인용
Vim FAQ
http://vimdoc.source[...]
2010-12-27
[110]
웹사이트
http://vimdoc.source[...]
[111]
웹인용
Neovim: vim, out of the box
http://neovim.io/
[112]
웹인용
Neovim Vision
https://neovim.io/ch[...]
[113]
웹인용
Switching to NeoVim
http://arusahni.net/[...]
[114]
웹인용
How to start using Neovim instead of Vim
http://veelenga.com/[...]
2017-05-30
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
