갇혀 탈출 할 수 없습니다. 그것은 말한다 :
"type :quit<Enter> to quit VIM"
그러나 내가 입력하면 단순히 객체 본문에 나타납니다.
:quit
한 다음 [ENTER]
키 를 누르십시오 .
git commit
앞으로 당신을 vim으로 보내지 못하게하려면 : git config --global core.editor="nano"
갇혀 탈출 할 수 없습니다. 그것은 말한다 :
"type :quit<Enter> to quit VIM"
그러나 내가 입력하면 단순히 객체 본문에 나타납니다.
:quit
한 다음 [ENTER]
키 를 누르십시오 .
git commit
앞으로 당신을 vim으로 보내지 못하게하려면 : git config --global core.editor="nano"
답변:
히트 Esc"일반 모드"를 입력 키를. 그런 다음 :
"명령 줄 모드"를 입력하기 위해 입력 할 수 있습니다 . :
화면 하단에 콜론 ( )이 나타나고 다음 명령 중 하나를 입력 할 수 있습니다. 명령을 실행하려면 Enter키를 누르십시오 .
:q
종료 ( :quit
):q!
(대한 짧은 저장하지 않고 종료합니다 :quit!
):wq
쓰고 끝내다:wq!
파일에 읽기 권한 만있는 경우에도 쓰기 및 종료 (파일에 쓰기 권한이없는 경우 : 강제 쓰기):x
쓰기 및 종료 (와 유사 :wq
하지만 변경 사항이있는 경우에만 쓰기):exit
쓰고 끝내기 (와 동일 :x
):qa
모두 종료하려면 (의 줄임말 :quitall
):cq
저장하지 않고 종료하고 Vim이 0이 아닌 오류를 반환하도록 (즉 오류와 함께 종료)또한 "정상 모드"에서 Vim을 직접 ZZ
종료하여 저장 및 종료 (와 동일 :x
) 또는 ZQ
종료 (와 동일 :q!
)를 입력 할 수도 있습니다. (주는 경우가 여기에 중요하다. 것을 ZZ
과 zz
같은 일을 의미하지 않는다.)
Vim은 :help
모든 질문에 대한 답변과 초보자를위한 튜토리얼을 찾을 수 있는 명령으로 액세스 할 수있는 광범위한 도움말 을 제공합니다.
:x
== ZZ
그러나 :x
! = :wq
. :x
파일 쓰기 iff 파일이 변경되었습니다. :wq
항상 파일을 쓰십시오 (즉,를 사용할 때 중요 inotify
).
:w ! sudo tee %
그림은 수천 가지 유닉스 명령과 옵션의 가치가 있습니다.
나는 매 학기마다 학생들에게 이것을 그리고 그들은 나중에 vi를 파악하는 것 같습니다.
vi가 시작되면 명령 모드로 들어가서 짧고 적은 문자 명령을 맹목적으로 입력 할 수 있습니다 . 당신은 무엇을하고 있는지 알고 있습니다. 이것은 아마추어를위한 것이 아닙니다.
실제로 텍스트를 편집하려면 한 문자 명령으로 INSERT 모드로 이동해야합니다.
이제 질문에 대답 : 종료.
EX 모드에서 vi를 종료 할 수 있습니다 :
w
및 x
파일 이름 매개 변수를 받아들입니다. 파일 이름으로 vi를 시작한 경우 여기에 다시 지정할 필요가 없습니다.
마지막으로 가장 중요한 것은 어떻게 EX 모드에 도달 할 수 있습니까?
EX 모드는 화면의 맨 아래 줄에 입력하는 것을 볼 수있는 긴 명령입니다. 명령 모드에서 콜론 ()을 누르면 콜론 :
이 맨 아래 줄에 나타나고 위 명령을 입력 할 수 있습니다.
INSERT 모드에서 ESC (예 : Esc 버튼)를 눌러 COMMAND 모드로 이동 한 다음 :를 눌러 EX 모드로 이동해야합니다.
확실하지 않으면 ESC 키를 누르면 명령 모드로 이동합니다.
따라서 강력한 방법은 파일을 저장하고 종료하는 ESC-:-x-Enter입니다.
w
Ex에서 Command 모드로 변경하지는 않지만 변경 Esc
합니다. 내가 무엇을 잘못하고 있지?
:w
. 그렇다면 완벽하게 이해됩니다. 그건 그렇고, 디스크에서 다시로드하는 명령이 있습니까 (즉, 변경 사항을 되돌 리지만 파일을 닫지 않는)? 그렇다면 w
다이어그램 옆에있을 수 있습니다 .
:e
(또는 가능성 :e!
그것은없이 저장되지 않은 변경 사항에 대해 경고하기 때문에 !
)
당신이 명령을 입력하기 전에 히트 Esc키를 . 입력 한 후 Return를 눌러 확인하십시오.
Esc현재 명령을 마치고 Vim을 일반 모드로 전환합니다 . 이제 누르면 :의는 :
상기 나타납니다 아래 화면. 이것은 실제로 명령을 입력하고 파일을 편집하지 않음을 확인합니다.
대부분의 명령에는 약어가 있으며 선택적 부분은 대괄호로 묶습니다 c[ommand]
.
'*'로 표시된 명령은 Vim 전용입니다 (Vi에서는 구현되지 않음).
안전 종료 (저장되지 않은 변경 사항이있는 경우 실패) :
:q[uit]
현재 창을 종료합니다 . 이것이 마지막 창인 경우 Vim을 종료하십시오. 현재 버퍼 에서 변경 한 경우 실패합니다 .:qa[ll]
* 일부 버퍼가 변경되지 않은 경우 모든 창과 Vim을 종료하십시오.프롬프트 종료 (저장되지 않은 변경 사항이있는 경우 프롬프트)
:conf[irm] q[uit]
* 종료되었지만 일부 버퍼가 변경되면 프롬프트를 표시하십시오.:conf[irm] xa[ll]
* 변경된 모든 버퍼를 작성하고 Vim을 종료하십시오. 일부 버퍼를 쓸 수 없을 때 프롬프트를 표시하십시오.변경 사항 쓰기 (저장) 및 종료 :
:wq
변경되지 않은 경우에도 현재 파일을 작성하고 종료하십시오. 파일이 읽기 전용이거나 버퍼에 이름이 없으면 쓰기에 실패합니다. :wqa[ll]
* 모든 창에 적용됩니다.:wq!
동일하지만 읽기 전용 파일도 작성합니다. :wqa[ll]!
* 모든 창에 적용됩니다.:x[it]
, ZZ
( 세부 사항 포함 ). 파일 이 변경된 경우 에만 작성하고 :xa[ll]
모든 창 에서 *를 종료하십시오 .변경 사항을 취소하고 종료하십시오.
:q[uit]!
ZQ
* 보이는 버퍼가 변경 될 때에도 쓰지 않고 종료합니다. 숨겨진 버퍼가 변경된 경우 종료되지 않습니다.:qa[ll]!
*, :quita[ll][!]
* Vim 종료, 버퍼에 대한 모든 변경 사항 (숨김 포함)이 손실됩니다.Return명령을 확인하려면 누릅니다 .
이 답변은 모든 Vim 쓰기 및 종료 명령과 인수를 참조하지는 않습니다. 실제로 이들은 Vim documentation 에서 참조됩니다 .
Vim에는 광범위한 내장 도움말이 있으며, 입력 Esc:help
Return하여 엽니 다.
이 답변은 원래 @dirvine이 작성하고 다른 SO 사용자가 편집 한 다른 하나 에서 영감을 얻었습니다 . Vim 참조, SO 의견 및 기타 출처에서 더 많은 정보를 제공했습니다. Vi와 Vim의 차이점도 반영됩니다.
당신이 빔에 저장하지 않고 종료하려면 및 빔이 0이 아닌 종료 코드를 반환해야, 당신은 사용할 수 있습니다 :cq
.
에 대한 새끼 손가락 이동에 귀찮게 할 수 없기 때문에 나는 이것을 항상 사용합니다 !
. 나는 종종 파일로 저장할 필요가없는 것들을 Vim으로 파이프합니다. 또한 체크인을 중단하기 위해 0이 아닌 값으로 종료 해야하는 홀수 SVN 래퍼가 있습니다.
:q!
git이 0이 아닌 종료 코드가 아닌 비어 있지 않은 메시지를 검사하기 때문에 git commit을 중단하면 정상적으로 작동합니다.
Vim을 종료하는 최악의 시나리오입니다. 원하는 경우, 수행 한 작업에 대해 전혀 모르고, 열린 파일에서 어떤 일이 발생할지 신경 쓰지 않아도됩니다.
Ctrl-cEnterEntervi
EnterCtrl-\Ctrl-n:qa!
Enter
이것은 대부분의 시간을 보내 게 될 것입니다.
다음과 같은 것이 필요한 흥미로운 경우 :
i
Ctrl-ovg
(삽입 모드에 들어간 다음 시각 모드와 운영자 보류 모드로 들어갑니다)
Qappend
Enter
i
Ctrl-ogQ
Ctrl-r=
Ctrl-k (이 경우에는 죽에 감사합니다)
:set insertmode
(이것은 Ctrl-\Ctrl-n일반 모드로 돌아갈 때입니다 )
편집 :이 답변은 위의 경우로 수정되었습니다. 예전에는
EscEscEsc:qa!
Enter
그러나 Ex 모드로 들어가면 작동하지 않습니다. 이 경우 다음을 수행해야합니다.
vi
Enter:qa!
Enter
"내가 한 일을 알고 싶지 않고 아무것도 저장하고 싶지 않다." 될 것이다
vi
EnterEscEscEsc:qa!
시작하다
:q
나:wq
i<Ctrl-O>gQ<Ctrl-R>=<Ctrl-K>
어떨까요?
easy 모드 ( -y
옵션 을 사용하는 동안) 에서 Vim을 종료해야하는 경우 Ctrl+를 눌러 일반 Vim 모드로 들어갈 수 L있으며 정상적인 종료 옵션이 작동합니다.
Ctrl+O
INSERT 모드를 일시적으로 종료하고을 입력 하는 데 사용할 수 있습니다 :q
. 이 조합의 트릭은 단일 명령을 실행하고 INSERT 모드로 돌아 가기 위해 일반 vim에서 유용합니다.
Vim에는 입력 모드, 명령 모드 및 Ex 모드의 세 가지 작동 모드가 있습니다.
입력 모드 - 입력 한 모든 내용, 모든 키 입력이 화면에 표시됩니다.
명령 모드 또는 이스케이프 모드 -이 모드에서 입력하는 모든 것이 명령으로 해석됩니다.
Ex 모드 -다른 편집기입니다 (예 : 라인 편집기입니다. 그것은 라인 당 또는 라인 범위에 따라 작동합니다. 이 모드에서는 :화면 하단에가 나타납니다. 전 편집자입니다.
Vim을 종료하려면 ex 모드 또는 명령 모드에있는 동안 종료 할 수 있습니다. 입력 모드에있을 때는 Vim을 종료 할 수 없습니다.
전 모드에서 나가기
명령 모드에 있는지 확인해야합니다. 그렇게하려면 간단히 Esc키 를 누르십시오 .
:키 를 눌러 전 모드로 이동
ex 모드에서 다음 조합 중 하나를 사용하여 종료하십시오.
:q
-종료
:q!
- :wq
저장 하지 않고 종료
-저장 및 종료 또는 쓰기 및 종료
:wq!
-wq와 동일하지만 파일 권한이 읽기 전용 인 경우 강제 쓰기
:x
-쓰기 및 종료
:qa
-모두 종료 다음과 같이 여러 파일을 열 때 유용합니다.vim abc.txt xyz.txt
명령 모드에서 나가기
이스케이프 키를 누릅니다. 명령 모드에있는 경우이 작업을 이미 수행했을 수 있습니다.
프레스 자본 ZZ ( shift zz
)-저장 후 종료
자본 ZQ ( shift zq
)를 누릅니다 . 저장하지 않고 종료합니다.
Windows에 Git 클라이언트를 설치하여 Vim을 얻었습니다. :q
나를 위해 Vim을 종료하지 않습니다. :exit
그러나 ...
vim -version
7.3).
Git Bash
창에,에서 Vim
가끔 ESC
작동하지 않습니다. 사용 CTRL
+ [
대신.
^[
와 동일합니다 ESC
. Windows가 더 복잡해진다는 점이 흥미 롭습니다. 그리고 재미있는.
여기에 질문이 있습니다 .
q
번호와 명령은 해당 위치에서 소정의 분할을 닫는다.
:q<split position>
또는 :<split position>q
해당 위치에서 스플릿을 닫습니다.
Vim 창 레이아웃이 다음과 같다고 가정 해 봅시다.
-------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
-------------------------------------------------
q1
명령 을 실행 하면 첫 번째 분할이 닫힙니다.q2
두 번째 분할을 닫고 그 반대도 마찬가지입니다.
quit 명령에서 분할 위치의 순서는 중요하지 않습니다. :2q
또는 :q2
두 번째 분할을 닫습니다.
명령에 전달하는 스플릿 위치가 현재 스플릿 수보다 크면 마지막 스플릿이 닫힙니다.
예를 들어, q100
세 개의 분할이있는 위의 창 설정에서 를 실행 하면 마지막 분할이 닫힙니다 (Split 3).