수색…


비고

Vim (또는 "Vi IMproved")은 콘솔 기반 다중 모드 ( 모달 ) 텍스트 편집기입니다. 널리 사용되며 모든 Unix, Linux 및 Apple OS X 시스템에서 기본적으로 사용 가능합니다. Vim은 활발한 커뮤니티와 광범위한 사용자 기반을 가지고 있습니다. 에디터는 널리 사용되는 모든 프로그래밍 언어를 지원하며 많은 플러그인이 기능을 확장 할 수 있습니다.

개발자는 속도, 다양한 구성 옵션 및 강력한 표현 기반 편집을 위해 편집기를 좋아합니다. "명령"모드에서 편집기는 키보드 명령으로 제어되므로 사용자는 GUI 또는 마우스 포인터에주의를 기울이지 않습니다.

Vim은 1970 년대에 만들어진 초기의 Unix "vi"편집기를 기반으로하며 1991 년부터 지속적으로 개발되어 왔습니다. 매크로 및 플러그인을 사용하여 편집기는 현대 IDE의 대부분의 기능을 제공합니다. 또한 스크립팅 언어 (vimscript)와 정규식을 사용하여 많은 양의 텍스트를 처리 할 수 ​​있습니다.

주요 주제 :

Vim 표준 시작 메시지

버전

번역 출시일
8.0 2016-09-12
7.4 2013 년 8 월 10 일
7.3 2010-08-15
7.2 2008-08-09
7.1 2007-05-12
7.0 2006-05-07
6.0 2001-09-26
5.0 1998-02-19
4.0 1996-05-29
3.0 1994-08-12
2.0 1993-12-14
1.14 1991-11-02

설치

컴퓨터에있는 Vim은 클립 보드 지원, 구문 강조 또는 플러그인 사용 기능과 같은 유용한 기능이 부족한 "작은"빌드 일 가능성이 큽니다.

필요한 것은 설정 파일을 편집하는 빠른 방법이지만, Vim을 기본 편집기로 만들려고한다면 많은 벽을 치게 될 것입니다.

따라서 일반적으로 전체 빌드를 설치하는 것이 좋습니다.

Linux / BSD에 설치

이러한 시스템에서 트릭은 단순히 GUI를 시작하기위한 gvim 명령과 TUI를 시작하기위한 vim 명령과 함께 제공되는 GUI 버전을 설치하는 것입니다.

아치 및 아치 기반 배포판

$ sudo pacman -R vim
$ sudo pacman -S gvim

데비안 및 데비안 기반 배포판

$ sudo apt-get update
$ sudo apt-get install vim-gtk

Gentoo 및 Gentoo 기반 배포판

$ sudo emerge --sync
$ sudo emerge app-editors/gvim

RedHat 및 RedHat 기반 배포판

$ sudo yum check-update
$ sudo yum install vim-X11

페도라

$ sudo dnf check-update
$ sudo dnf install vim-X11

슬랙웨어와 슬랙웨어 기반 배포판

$ sudo slackpkg update
$ sudo slackpkg install-new vim-gvim

OpenBSD 및 OpenBSD 기반 배포판

$ sudo pkg_add vim-x11

FreeBSD 및 FreeBSD 기반 배포판

$ sudo pkg install editors/vim

Mac OS X에서의 설치

이 전략은 Mac OS X와 ​​비슷합니다. 우리는 GUI 버전을 설치하여 GUI와 TUI를 모두 얻습니다. 결국 우리는 다음을 할 수 있어야합니다.

  • Finder에서 MacVim 아이콘을 두 번 클릭하고,
  • Dock에서 MacVim 아이콘을 클릭하고,
  • 셸에서 $ mvim 을 실행하여 MacVim GUI를 열고,
  • 셸에서 $ mvim -v 를 실행하여 MacVim TUI를 엽니 다.

일반 설치

다른 Mac OS X 응용 프로그램과 마찬가지로 공식 스냅 샷을 다운로드하여 설치 하십시오 .

$PATH 어딘가에 MacVim과 함께 번들로 제공되는 mvim 스크립트를 놓습니다.

패키지 관리자

MacPorts :
$ sudo port selfupdate
$ sudo port install macvim
자작 :
$ brew install macvim

MacVim을 기본 콘솔 Vim으로 만들려면,

$ brew install macvim --with-override-system-vim

Windows에서 설치

Windows 시스템에는 Vim이 기본적으로 없습니다. Tuxproject 사이트 에서 Vim을 다운로드하여 설치하여 최신 빌드를 완성하거나 공식 Vim 사이트 에서 Vim을 다운로드하여 설치할 수있다.

초콜릿

> choco install vim

소스에서 Vim 빌드하기

위의 방법이 여러분의 요구에 맞지 않는다면 필요한 옵션 만으로 Vim을 직접 빌드 할 수 있습니다.

이 주제는 자체 섹션에서 논의 될 것입니다 (현재 초안에 있습니다).

Vim 끝내기

Vim을 종료하려면 Esc 키 를 눌러 표준 모드에 있는지 확인하십시오.

  • :q Enter (저장하지 않은 변경 사항이 있으면 종료하지 못하도록합니다 - 짧음 : quit)

변경 사항을 취소 하고 Vim을 종료하려면 다음을 수행하십시오.

  • :q! 종료를 강제하고 변경 사항을 취소하려면 입력하십시오 ( :quit! 와 혼동하지 말고 :!q ),
  • ZQ 는 다음과 같은 단축키입니다 :q! ,
  • :cq quit를 입력 하고 오류를 반환 하십시오 (컴파일러가이 파일을 다시 컴파일하지 않도록 모든 변경 사항을 버립니다).

변경 사항을 저장 하고 Vim을 종료하려면 다음을 수행하십시오.

  • :wq Enter ( :write :quit and :quit )의 줄임말,
  • :x Enter (같은 :wq ,하지만 파일이 변경되지 않은 경우 쓰지 않습니다),
  • ZZ 는 다음과 같은 단축키입니다 :x (작업 영역 저장 및 편집기 종료),
  • :[range]wq! Enter ([범위]에 행 쓰기)

한 번에 여러 개의 버퍼를 닫으려면 (여러 개의 창 및 / 또는 탭에서도) 위의 명령 ( : 시작하는 명령)에 문자 a 를 추가하십시오. 예를 들어, 모든 창을 작성하고 종료하려면 다음을 사용하십시오.

  • :wqa Enter 또는
  • :xa Enter - 변경된 모든 버퍼를 기록하고 Vim을 종료하십시오. 파일 이름이없는 버퍼가 읽기 전용이거나 다른 이유로 쓰기가 불가능한 경우 Vim은 종료하지 않습니다.
  • :xa! Enter - 변경된 모든 버퍼를 읽기 전용 버퍼로 작성하고 Vim을 종료하십시오. 버퍼가 파일 이름이 없거나 다른 이유 때문에 쓸 수없는 경우 Vim은 종료하지 않습니다.
  • :qa Enter - 끝내려고하지만 저장되지 않은 파일이 있으면 중지하십시오.
  • :qa! 입력 - 저장하지 않고 (저장되지 않은 파일의 변경 내용 취소를) 종료

파일을 지정하지 않고 Vim을 열고 종료하기 전에 해당 파일을 저장하려면 E32: No file name 메시지가 나타납니다. 파일을 저장하고 다음을 사용하여 종료 할 수 있습니다.

  • :wq filename 입력하십시오 .
  • :x filename 을 입력

설명:

The : 키 입력은 실제로 명령 모드를 엽니 다. 명령 q 의 약자 quit , w 의, writex ,의 exit (당신은 또한 입력 할 수 있습니다 :quit , :write:exit 원하는 경우). 바로 가기로 시작하지 : 같은 ZZZQ 일반 모드 키 매핑을 참조하십시오. 단축키로 생각할 수 있습니다.

! 키 스트로크 (keystroke)는 명령어의 끝 부분에서 때때로 실행을 강제하기 위해 사용되기 때문에 다음 경우에 변경 사항을 무시할 수 있습니다 :q! . 배치 ! 명령의 시작 부분에는 다른 의미가 있습니다. 예를 들어 잘못 입력 할 수 있습니다 :!q 대신 :q! vim은 127 오류로 종료됩니다.

이것을 기억하는 쉬운 방법은 생각하는 것입니다 ! 뭔가를 실행하는 것을 고집하는 방법으로 당신이 쓸 때처럼 : "나는 그만두고 싶다!"

대화식 Vim 자습서 (vimtutor와 같은)

vimtutor 는 텍스트 편집의 가장 기본적인 측면을 다루는 대화 형 자습서입니다.

유닉스 계열 시스템에서는 다음과 같이 튜토리얼을 시작할 수있다.

$ vimtutor

Windows에서 "Vim tutor"는 Windows 메뉴의 "모든 프로그램"아래에있는 "Vim 7.x"디렉토리에서 찾을 수 있습니다.

자세한 내용 :help vimtutor 를 참조하십시오.

다른 대화식 자습서에는 다음 브라우저 기반 자습서가 포함됩니다.

  • Vim Adventures - 웹에서 사용할 수있는 vimtutor의 대화 형 게임 버전입니다. 처음 몇 레벨 만 무료입니다.
  • Open Vim - 피드백을 통해 기본 명령을 알려주 는 대화 형 터미널입니다.
  • Vim Genius - 매크로 및 arglist를 포함한 중급 및 상급 레슨을 포함하는 또 다른 대화 형 터미널입니다.

Vim에서 편집 한 읽기 전용 파일 저장하기

때로는 sudo 를 사용하지 않고 Vim에서 쓸 수있는 권한이없는 파일을 열 수 있습니다.

Vim에서 편집 한 읽기 전용 파일을 저장하려면이 명령을 사용하십시오.

:w !sudo tee > /dev/null %

어떤지도를 만들 수 있습니까 :w!! 귀하의 .vimrc :

cmap w!! w !sudo tee > /dev/null %

이미지에 표시된대로 프롬프트가 표시됩니다.

계속하려면 Enter 키를 누르거나 command를 입력하십시오. [O] K, (L) oad 파일 : .

O 누르면 파일이 저장됩니다. vi / vim에서 더 많은 편집 또는 읽기를 위해 열려 있으며, 다음을 입력하여 정상적으로 종료 할 수 있습니다 :q! 파일이 읽기 전용으로 열려 있기 때문입니다.

명령 설명

:w ............................ isn't modifying your file in this case, 
   ............................ but sends the current buffer contents to 
   ............................ a substituted shell command
   !sudo ...................... call the shell 'sudo' command
         tee .................. the output of the vi/vim write command is redirected 
                                using the 'tee' command
             > /dev/null ...... throws away the standard output, since we don't need 
                                to pass it to other commands
                         % .... expands to the path of the current file

출처 :

vim 일시 중지

명령 행에서 vim 을 사용할 때 실제로 vim 종료하지 않고 vim 을 일시 중단하고 프롬프트로 돌아갈 수 있습니다. 따라서 나중에 같은 프롬프트에서 vim 세션을 다시 가져올 수 있습니다.

정상 모드에 있을 때 (그렇지 않은 경우 esc 키 를 눌러) 다음 명령 중 하나를 실행하십시오.

:st enter

:sus 들어가기

:stop 입장 :stop

:suspend 입력

또는 일부 시스템에서는 표준 모드 나 시각 모드에서 Ctrl + Z를 눌러도 동일한 효과가 나타납니다.

참고 : autowrite 가 설정되면 변경 사항과 파일 이름이있는 버퍼가 기록됩니다. 추가 ! 피하기 위해 들어가기 전에, 예. :st! 입력하십시오 .

나중에 vim 세션으로 돌아가고 싶을 때 다른 작업을 일시 중지하지 않은 경우 다음을 실행하면 vim이 포 그라운드 작업으로 복원됩니다.

fg 입력

그렇지 않으면 jobs 입력 하여 vim 세션의 작업 ID를 찾아야합니다. fg %[job ID] 와 같이 일치하는 작업을 입력 한 다음 예를 들어 입력하십시오 . fg %1 입력하십시오 .

기초

대화식 vim 자습서 를 필요한만큼 여러 번 실행하여 기본 사항에 익숙해 지도록하십시오.

Vim은 정상 모드 , 삽입 모드명령 행 모드 와 같은 여러 모드를 제공 합니다 .

일반 모드 는 텍스트를 편집하고 탐색하는 모드 입니다. 이 모드에서 h , j , kl 은 커서 키 , , 합니다. 보통 모드의 대부분의 명령에는 "count"가 접두어로 붙습니다. 예를 들어 3j 는 3 줄 아래로 이동합니다.

삽입 모드 는 텍스트를 직접 삽입하는 모드 입니다.이 모드에서는 vim이 다른보다 간단한 텍스트 편집기와 비슷합니다. 삽입 모드로 들어가려면 i 를 일반 모드에서 누르십시오. 그것을 나가려면 <ESC> (이스케이프 키)를 누르 <ESC> .

명령 줄 모드 는 파일을 저장하고 vim을 종료하는 것과 같은 더 복잡한 명령을 실행하기위한 모드 입니다. 명령 줄 모드를 시작하려면 : 를 누르십시오. 이 모드를 종료하려면 <ESC> 누를 수도 있습니다. 변경 내용을 파일에 저장하려면 :w (또는 :write )를 사용하십시오. 변경 사항을 저장하지 않고 vim을 종료하려면 다음을 사용하십시오 :q! (또는 :quit! ).

다음은 vim에서 유용한 명령입니다.

명령 기술
i (삽입) 현재 커서 위치 전에 삽입 모드로 들어갑니다.
I 현재 줄의 첫 번째 인쇄 가능 문자 앞에 삽입 모드 입력합니다.
a (추가) 현재 커서 위치 다음에 삽입 모드로 들어갑니다
A 현재 줄의 마지막 인쇄 가능한 문자 다음에 삽입 모드로 들어갑니다.
x 현재 커서 위치에서 문자 삭제
X 왼쪽의 문자를 현재 커서 위치로 삭제합니다.
w 다음 단어로 이동
b 이전 단어로 이동
0 줄의 시작 부분으로 이동
$ 줄 끝으로 이동하다.
r 바꾸기 - 한 문자에 대해 바꾸기 모드로 전환합니다. 입력 한 다음 문자가 커서 아래의 문자를 대체합니다.
R 바꾸기 모드를 무한정 입력합니다. 입력 한 모든 문자가 커서 아래의 문자를 대체하고 커서를 하나씩 앞으로 이동합니다.
s substitute - 현재 커서 위치의 문자를 삭제 한 다음 삽입 모드로 전환합니다.
S 현재 커서가있는 현재 행을 삭제하고 삽입 모드로 들어갑니다
<Esc> , <Cc> 삽입 모드를 종료하고 정상 모드로 돌아갑니다.
u 끄르다
<Cr> 다시 하다
dd , dw , dl , d$ 현재 줄을 커서에서 다음 단어로, 또는 문자를 현재 줄에서 현재 줄 끝까지 자릅니다. 참고 : Dd$ 와 같습니다.
cc , cw , cl 현재 줄을 커서에서 다음 단어 또는 문자로 각각 변경합니다.
yy , yw , yl , y$ 현재 줄을 커서에서 다음 단어로, 또는 문자를 현재 줄에서 현재 줄의 끝까지 뽑아냅니다 ( "복사").
p , P 현재 위치 이전 또는 이후에 ( "붙여 넣기") 각각 넣습니다.
o , O 현재의 앞 또는 뒤에 새로운 빈 줄을 만들고 삽입 모드로 들어간다.
:w 현재 버퍼를 디스크에 쓴다.
:q! , ZQ 편지 쓰지 않고 그만 두다.
:x , :wq , ZZ 쓰기 및 종료
:help 도움말 파일로 창 열기
:help {subject} 특정 주제에 대한 도움말 표시
qz z 를 등록하는 작업을 녹음 시작, 녹음을 끝내려면 q , 작업을 재생하려면 @z . z 는 임의의 문자가 될 수 있습니다. q 는 종종 편의를 위해 사용됩니다. 더 읽기 : 매크로

충돌 사고시 대처 방법

Vim은 모든 저장되지 않은 편집 내용을 스왑 파일 에 저장합니다.이 파일은 변경 사항이 저장 됨으로써 삭제 된 추가 파일입니다. 스왑 파일의 이름은 일반적으로 앞에 편집 된 파일의 이름입니다 . .swp 접미어 ( :sw 와 함께 볼 수 있음)로 시작합니다.

따라서 편집을 저장하기 전에 vim 프로세스가 종료 된 경우 명령 행 옵션 -r 을 사용하여 스왑 파일에 포함 된 변경 사항을 현재 파일에 적용하여 작업을 복구 할 수 있습니다. 예를 들어, myFile 이 편집중인 파일이면 다음을 사용하십시오.

$ vi -r myFile

커밋되지 않은 변경 사항을 복구합니다.

스왑 파일이 존재한다면, vim은 복구 옵션을 요구할 것입니다

$ vi myFile
E325: ATTENTION
Found a swap file by the name ".myFile.swp"
...
Swap file ".myFile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

(R) ecover를 선택한 경우 swp 파일의 변경 사항이 적용되지만 스왑 파일은 삭제되지 않으므로 복구에 만족하면 나중에 스왑 파일을 삭제하는 것을 잊지 마십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow