vim을 더 빠르게 종료


124

Vim을 주로 긴 작업 세션이 아닌 빠른 편집에 사용합니다. : 그런 의미에서, 나는 특히 힘든 종료를위한 키보드 시퀀스를 찾을 수 있습니다 Esc, Shift+ ;, w, q,를 Enter.

최소한의 키 입력으로 Vim을 종료하는 방법 (문서 저장 가능)? 특히 삽입 모드에서.


50
전원 버튼은 단 한 번의 클릭으로 알 수 있습니다.
Renan

2
@jasonwryan이 맞습니다-명령 모드에 있으면 ZZ가 꽤 빠르지 만 비교는 정확하지 않습니다. 키 순서는 삽입 모드에 있다고 가정합니다. 삽입 모드에서 빠져 나오려면 Ctrl- [이 Esc보다 빠릅니다. Shift- :는 한 번의 키 입력입니다. 직접 입력 할 수는 없습니다. 그래서 당신은 일부를 저장하지만 많이는 아닙니다.
Dominic Cronin

2
키가 최신 키보드의 다른 키와 거리가 멀기 Esc때문에 삽입 모드를 종료 하는 데 사용해서는 안됩니다 Esc. Ctrl+를 사용 ]하거나 나만의 매핑을 만드십시오.
void 포인터

3
프랑스어 키보드를 사용하면 쉬프트를 없앨 수 있습니다.
Rich

1
void 포인터, Esc 대신 Ctrl + [대신 Ctrl + C가 작동하지 않습니까?
zumalifeguard

답변:


154

Shiftzz 명령 모드에서 파일을 저장하고 종료합니다.


4
이것이 절대적으로 Shift 가 필요합니까 아니면 단순히 Z Z(대문자)입니까? 또한 명령 모드에서 작동하지 않아도 작동 Esc Z Z합니까?
CVn

35
또한, ESC Z Q저장하지 않고 종료하려면
Carlos Campderrós

Strg + zz는 잘못되었습니다. 그것은 배경에 정력 프로세스를 보내드립니다
hek2mgl

2
@ MichaelKjörling : ZZ는 대문자 여야합니다.
LarsH

2
그래도 하나의 파일 만 닫힙니다. 많은 탭이 열려 있으므로 많은 Z가 필요합니다.
Philip

41

ZZ일반 모드에서는 현재 파일을 수정 한 경우 저장하고 현재 창 / 탭을 종료하거나 닫습니다 ( 수정되지 않은 경우에도 파일을 :x쓰지 않는 것과 동일 :wq).

모든 창, 탭 및 숨겨진 버퍼에 수정 된 파일을 모두 작성한 후 무조건 종료하려면 필요합니다 :xa(일부 또는 다른 이유로 파일을 쓸 수없는 경우 여전히 종료되지 않음)

아무 것도 변경하지 않고 무조건 종료하려면 : ZQ(와 동일 :q!).


1
나는 당신이 정상 모드를 의미한다고 생각합니다. "명령 모드"는 명령 행 모드
David Brown

@DavidBrown command mode은 전통적인 이름이지만 normal mode덜 모호하다는 데 동의 합니다. 답을 수정했습니다.
Stéphane Chazelas

33

:x 하나의 키보다 작다 :wq


11
별로 좋지 Shift + Z Z않습니다!
CodeMedic

당신이 가지고있는 경우에 @CodeMedic 그것은 단연코 가장 빠른있어 nno : ;하고 nno ; :, 그래도. (플러스와 동일). 나는 스왑에 대해 의심 스러웠지만 다시는 돌아 가지 않을 것입니다. :nno ,: :silent! unmap :<CR>:silent! unmap ;<CR>:nno ,; :nno ; :<CR>:nno : ;<CR>:vno ; :<CR>:vno : ;<CR>홀수 지원 yap@"등을.
jthill

20

자주 사용하는 작업에 대한 사용자 지정 매핑을 만듭니다. vim을 자주 종료하면 몇 가지 키 입력만으로 매핑을 만듭니다 (예 :

nnoremap <leader><leader> :xa<cr>

이 경우 <leader>사용하여 쉼표로 설정되어 let mapleader = ","타격 쉼표 두 번 정력을 종료하고 변경 사항을 저장하는 빠른 방법입니다. 삽입 모드에있을 때 키 스트로크를 하나 더 저장하려면 해당하는 삽입 모드 매핑도 만드십시오.

inoremap <leader><leader> <esc>:xa<cr>

그러나 <leader두 번 쳤을 때 우연히 아주 악명 일 수 있습니다 .


1
철저한 답변에 감사드립니다. vim에 대해 더 많이 배울 것을 권장합니다.
vemv

4
@vemv, 당신은 다른 방법으로 일해야합니다-같은 일을 두 번 이상해야 할 때마다 그것을 막을 방법이 있는지보십시오!
Wayne Werner

17

이것을 사용하여 마술을하십시오. 두 번의 키 입력 만!

Ctrl+ s저장

ctrl+ d저장하고 종료하려면

ctrl+ q변경 사항 삭제를 종료합니다.

1 일 이것을 ~ / .bashrc에 넣으십시오.

bind -r '\C-s'
stty -ixon

2 일. 이것을 ~ / .vimrc에 넣으십시오.

inoremap <C-s> <esc>:w<cr>                 " save files
nnoremap <C-s> :w<cr>
inoremap <C-d> <esc>:wq!<cr>               " save and exit
nnoremap <C-d> :wq!<cr>
inoremap <C-q> <esc>:qa!<cr>               " quit discarding changes
nnoremap <C-q> :qa!<cr>

셋째. vim을 다시 시작하고 더 생산적인 날을 얻으십시오!


2
ZZ 및 ZQ뿐만 아니라 CTRL + D / CTRL + Q를 사용하여 저장하고 종료하는 이유는 무엇입니까?
Evan Carroll

안녕 Evan, ctrl + d / ctrl + q는 두 번의 키 입력이 필요하지만 ZZ와 ZQ는 세 번의 키 입력이 필요합니다. 시프트 + z + z / 시프트 + q + q. 이 작업을 자주 수행하면 하나의 저장 키가 중요합니다. 또한 우리는 Ctrl + s를 저장 바로 가기로 제기했습니다 .ZZ 또는 ZQ보다 직관적이라고 생각합니다.
Brain90

3
저는 항상 ZQ를 위험하다고 생각했습니다. ZQ를 눌러 저장하지 않으려 고 할 수 있지만 실수로 Z를 두 번 누르는 경우 아무런 의미없이 파일을 저장하고 저장 한 것입니다.
Keith Devens

1
맥이라면 ~ / .bash_profile을 사용하십시오. 그리고 출처를 기억하십시오.
Snowcrash

16

어떻게 막 Q'종료'에 대한?

즉 하나는 키 입력을 (즉, 이동이 필요한 것 Shift등을 Q). 또한 실수로 거의 피해를 입지 않은 주요 조합입니다.

기본적으로 vim은 Q를에 매핑합니다 switch to "Ex" mode. "Ex"모드를 내가하는 것처럼 쓸모 없거나 성가신 것으로 생각하면 기본 기능을 전혀 놓치지 않을 것입니다.

.vimrc파일에 내가 가진 것이 있습니다.

" allow quit via single keypress (Q)
map Q :qa<CR>

저장하지 않은 버퍼가 있으면 종료하기 전에 프롬프트가 표시됩니다.


어떻게 든 내 VIM Q에서 :q기본적 으로 이미 매핑되었습니다 . 팁 고마워.
user13107

7

여기 VIM에 대한 치트 시트가 있습니다

VIM에 대한 치트 시트

To quit the vi editor without saving any changes you've made:

If you are currently in insert or append mode, press Esc. 

Press  :  (colon). The cursor should reappear at the lower left corner of the screen beside a colon prompt. 

Enter the following:
  q!
This will quit the editor, and all changes you have made to the document will be lost.

좀 더 ::

파일 닫기 및 저장

When you edit a file in vi, you are actually editing a copy of the file rather than the original. The following sections describe methods you might use when closing a file, quitting vi, or both.
Quitting and Saving a File

The command ZZ (notice that it is in uppercase) will allow you to quit vi and save the edits made to a file. You will then return to a Unix prompt. Note that you can also use the following commands:

:w  to save your file but not quit vi (this is good to do periodically in
    case of machine crash!).
:q  to quit if you haven't made any edits.
:wq to quit and save edits (basically the same as ZZ).
Quitting without Saving Edits

Sometimes, when you create a mess (when you first start using vi this is easy to do!) you may wish to erase all edits made to the file and either start over or quit. To do this, you can choose from the following two commands:

:e! reads the original file back in so that you can start over.
:q! wipes out all edits and allows you to exit from vi.

마지막 2 개는 "마지막으로 파일을 저장 한 이후"를 추가해야합니다. "명백한"것이지만 초보자는 "좋습니다. vi를 연 이후로"라고 이해할 수 있으며 세션 중에 저장 한 경우 "아니요"라는 것을 알 수 있습니다. 큐!" 원본 파일을 전혀 복구하지 않으며 ": e!"도 마찬가지입니다. 파일을 마지막으로 열거 나 저장 한 이후에 발생한 수정 사항 (둘 중 최신 파일) 만 삭제합니다.
Olivier Dulac

3

vim에서 종료하고 저장 하기위한 간단하고 편리한 솔루션 은 다음과 같습니다.

Ctrl+ X단축키.

이 코드를 .vimrc파일에 추가 하십시오 :

"Fast quit and save from normal and insert mode
:map <C-X> <ESC>:x<CR>
:imap <C-X> <ESC>:x<CR>

1
멋지지만 <C-Q>매핑 할 수없는 이유는 무엇입니까?
friederbluemle

2

시험

nno : ;
nno ; :
vno : ;
vno ; :

fFtT를 사용하면 익숙해지는 데 시간이 걸리지 만 ;x, 필요한 경우 ;q저장하지 않고 저장하기 만하면 종료 됩니다. 또한 모든 것이 더 빨라집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.