사용! vim에서

사용! vim에서

때로는 :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!!

관련 정보