Vi에 여러 모드가 있는 이유는 무엇입니까? 다른 모드를 사용하는 이유가 아니라면 모드가 무엇을 하는지에는 관심이 없습니다. 나는 다중 모드에 대한 설계/엔지니어링 이유에만 관심이 있습니다.
답변1
모달 인터페이스의 사용은 주요 두 가지 모드(명령 및 삽입)를 고려하여 시연됩니다.
INSERT 모드에서는 정상적으로 입력하여 문서에 텍스트를 삽입할 수 있습니다. 키를 바인딩하여 특수 기능을 수행할 수 있지만 이러한 기능은 일반적으로 복잡성이 제한됩니다.
명령 모드는 일종의 무제한 특수 기능과 같습니다. ctrl -x를 사용하면 유사한 결과를 얻을 수 있으므로 Ctrl이를 누른 상태에서 다른 특수 키를 누르면 됩니다. 실제로 대부분의 범용 편집기는 다음과 같이 작동합니다. 잘라내려면 ctrl-x를 사용하고, 붙여넣으려면 ctrl-p를 사용합니다. 그러나 이 방법은 수행할 수 있는 작업을 제한합니다. Ctrl 키를 누른 채 "open myfile.txt"를 입력하는 것은 약간 고통스럽습니다.
GUI 편집기와 일부 TUI 편집기는 일반적으로 드롭다운 메뉴를 통해 이 문제를 해결합니다. 그러나 이는 여전히 제한적입니다. 기능이 많으면 결국 계단식으로 중첩된 어색한 메뉴 세트가 필요하게 됩니다.
vi
는 vim
화면 기반이므로 사용할 수 있지만 드롭다운 메뉴를 사용하지 않습니다. 이에 대한 한 가지 설명은 이것이 표준화된 유틸리티의 표준화된 확장으로 의도되었다는 것입니다 ed
.행 기반따라서 시각적 메뉴를 사용할 수 없습니다. 일부 기본 vi COMMAND 모드 명령은 ed
명령을 메뉴 옵션으로 대체하는 대신 동일한 텍스트 기반 ed
명령이 vi에서 작동하고 확장되었습니다.
vim
물론 이 모든 것에는 장점이 있는데, 이것이 아마도 역사적 인기의 주된 이유일 것입니다. 메뉴를 사용하려면 옵션 세트를 스크롤해야 하고, 마우스 없이 TUI 인터페이스를 사용해야 합니다(액세스하려면 특수 모드가 필요할 수 있음). F 키 등을 사용해야 합니다. 획일적이라고 할 수 있죠더 창피하다GUI 애플리케이션에서는 키보드에서 손을 떼고 마우스를 조작해야 하며, 이전 단락에서 언급한 복잡성 제한이 있습니다. 1 vim
선택모달 인터페이스이러한 문제는 발생하지 않습니다. 또한 사용 가능한 화면 영역을 최대화합니다.
알 수있는 바와 같이,편집하다vim에 비해 IDE(통합 개발 환경) 및 워드 프로세서와 같은 크고 복잡한 그래픽 애플리케이션은 단순성 때문에 일부 측면에서 부족합니다.넌모달,메뉴 및 Ctrl 기반 인터페이스. 이러한 관점에서 vim이 패턴을 사용하는 이유는 패턴을 더욱 강력한 도구로 만들기 위한 것입니다.
1. gvim
일반적으로 사용되는 많은 명령을 반복하는 드롭다운 메뉴가 실제로 있지만 COMMAND 모드에 비해 어색합니다.메뉴 시스템의 유일한 좋은 점은 배우기 쉽다는 것입니다. 많은 것을 기억할 필요는 없지만 모든 것을 기억하는 데는 더 오랜 시간이 걸립니다.
답변2
제어 모드와 삽입 모드가 없으면 텍스트에 대한 작업과 텍스트 자체를 구분할 수 없습니다.