때로는 :q
작동하지만 때로는 :q!
. !
in의 일반적인 용도는 무엇이며 vim
, 언제 사용하는지 알고 싶습니다 . 구글링해봤는데 느낌표가 빠진거같더라구요.
답변1
파일의 실제 내용을 변경하지 않을 경우에는 그냥 종료를 사용하십시오 :q
. 그러나 편집하는 경우 vim은 간단한 종료를 허용하지 않습니다. 해당 변경 사항을 취소하고 싶지 않을 수 있기 때문입니다(특히 :q
오랫동안 편집하다가 실수로 vim을 사용한 경우 ). 이 경우 :q!
강제 종료 동작(오버라이드 경고)이 됩니다. 예를 들어 열려 있는 모든 창을 Ctrlwn강제 종료 할 수 있습니다.:qa!
( :wq
또는 를 :x
사용하여 변경 사항을 기록하고 -R
종료 할 수 있습니다 .view
:wq!
그런데 를 사용하여 ZQ
동일한 작업을 수행 할 수도 :q!
있고 ZZ
동일한 작업을 수행할 수도 :wq
있으므로 입력이 더 쉬워집니다. :)
Vim에는 또한 Exit를 통해 접근할 수 있는 도움말이 내장되어 :help
있으며 빠른 주제 페이지도 있습니다: :help Q_wq
.
답변2
"일반 용도"는 없으며 !
단지 수정자일 뿐입니다. 각 명령은 !
수행할 추가 작업을 선택할 수 있습니다 .
존재하다많은Case 명령은 !
이를 강제하도록 프로그래밍되어 있습니다. 예에는 q
언급한 내용이 포함되지만 save
, save!
파일이 이미 존재하면 덮어쓰게 되고, 수행 중인 작업이 확실하다면 save
제안과 함께 오류가 반환됩니다.save!
마지막으로 또는 !
같은 쉘 명령에 단독으로 사용됩니다 .:!ls
:!mkdir foo
read
(귀하의 의견에서) 이 명령은 read! <something>
Vim에 의해 다음과 같이 해석됩니다."출력을 실행 <something>
하고 읽습니다(Vim에서는 버퍼에 씁니다).". 따라서 여기서는 !
명령의 수식어가 아닌 read
독립된 명령으로 보인다 !
. read
명령이 변형을 선언하지 않아서 !
Vim이 나머지를 독립적으로 해석하거나(따라서 !
뒤에 "단독 사용"이라고 읽음 read
) 특정 동작으로 변형을 read
선언할 수도 있습니다 (!
"나머지는 쉘로 실행") 이는 !
"단독 사용"의 효과를 정확하게 모방합니다.
내가 말하려는 요점은 규칙이 없고 각 명령이 !
수행할 작업을 정의하며 수정자 효과의 일관성을 유지하려고 노력하는 동안 매우 엄격한 규칙이 없다는 것입니다(예:" !
할 것이다언제나강요용이다”) 더 적은 키 입력으로 더 유용한 동작이 가능하다는 점도 장점입니다.
답변3
:wq!
예를 들어, 사용 사례에 대한 다른 답변은 매우 완벽합니다.
그러나 일반적인 사용에 관한 질문은 더 개방적입니다.!
초보자의 경우:이름 !
이 "뱅"인 사람. 예를 들어 Google에서 "vim bang linux"를 검색하면 이 질문이 나타납니다. (흥미롭게도 "shebang"이 있습니다 #!
.)
bang은 Vim 내에서 bash 명령을 실행하는 데에도 사용됩니다. 예:
:!ls
bash 셸을 생성하고 ls
출력을 실행하고 표시한 다음 "계속하려면 Enter를 누르세요". Enter를 누르면 사용자가 Vim의 해당 위치로 돌아갑니다.
이 역사적 주제에서:훌륭한 Vim 단축키
" :
다시 명령 모드로 전환합니다. !
다음 복사본이 명령줄을 통해 전달되어야 함을 나타냅니다."
!
여기에서 강제 종료 이상의 기능을 수행한다는 것을 알 수 있습니다 :q!
!