선택 모드 란 무엇이며 언제 사용해야합니까?


36

실수 gh로 표준 모드를 ​​눌렀고 선택을 시작했기 때문에 문서를 찾아서 찾았습니다 :h Select-mode.

내가 이해 한 바에 따르면 선택 모드는 다음을 제외하고 시각적 모드에 가깝습니다.

  • 인쇄 가능한 문자를 입력 <CR>하거나 <BS>선택을 삭제하면 삽입 모드가 시작되고 선택이 입력으로 바뀝니다.
  • hjkl 다른 일반 또는 시각 모드 이동은 접두사가 붙지 않는 한 선택을 확장하지 않습니다. <Shift>
  • <CTRL-O><CTRL-G>비주얼 모드로 전환한다.
  • 의사는 또한 다음과 같이 말합니다. 올바로 이해하면 문자로 처리되는 선 선택을 수행 할 수 있음을 의미합니다.

    선택 모드에서 연산자를 사용할 때 선택이 선 단위 인 경우 선택한 선이 문자 적으로 선택되는 것처럼 조작됩니다. 예를 들어, 전체 줄을 삭제하면 나중에 한 줄의 중간에 붙여 넣을 수 있습니다.

이 모드가 만들어진 이유를 이해하지 못하기 때문에 약간 혼란 스럽습니다. 시각 모드보다 편리하지 않고 더 많은 기능을 제공하지 않는다는 것만 알 수 있습니다.

또한 내가 검색 한 결과는 시각적 모드에서 선택하는 것에 대한 결과를 제공하지만 선택 모드는 처리하지 않습니다.

그래서 내 질문은 :

  • 선택 모드가 작성된 이유는 무엇입니까?
  • 비주얼 모드와 비교하여 장점은 무엇입니까?
  • 선택 모드를 사용하는 것이 더 흥미로운 사용 사례는 무엇입니까?

MetaNote 이 질문과 관련된 태그가 무엇인지 잘 모르겠습니다. 필요한 경우 태그를 다시 지정하십시오.


나에게 이것은 대부분의 GUI 편집기에서 기대하는 것 같습니다. (줄을 선택한다고해서 붙여 넣을 때 새 줄로 이동하고 Shift + 화살표를 확장하면 입력이 선택 항목을 대체합니다 (예 : 메모장).
muru

@muru : 나는이 종류의 편집기를 생각 나게하지만 Vim을 가난한 텍스트 편집기로 사용하려는 일부 사용자를 기쁘게하기 위해이 모드가 구현되었다는 것을 의미합니까? 실제로 나에게는 꽤 이상해 보인다.
statox

실제로 해당 붙여 넣기 속성은 경우에 따라 유용합니다. 누군가가 여기에 붙여 넣는 것에 대한 질문을 게시했다고 확신합니다. 덮어 쓰기는 키 입력을 저장하므로 (누르지 않아도 됨 c) 수행하려는 작업에 따라 선택 모드가 유용 할 수 있습니다. 안타깝게도 계속 잊어 버립니다.
muru

이 질문을 찾도록하겠습니다. 덮어 쓰기의 경우 c시각적 모드 에서처럼 선택이 편리하지 않기 때문에 키 저장이 저장된 것처럼 느껴 지지 않습니다 (사용할 수 e없거나 iw직접 사용할 수 없기 때문에 ).
statox

1
당신이 맞습니다 : 현재 모드에 대한 플래그를 'selectmode'포함 mouse하고 있을 때 'mouse'마우스로 선택하면 선택 모드가 시작됩니다 (문서에 따라).
statox

답변:


23

선택 모드의 요점은 기존 편집기에서 사용되는 것과 유사한 선택 동작을 제공하는 것입니다.

같은 메모에서 mswin.vim 은 Vim을 기존의 편집기처럼 느끼도록 많은 옵션과 매핑을 변경합니다.

Vim이 Windows로 이식되었을 때 Vim 사용자의 하위 집합을 기쁘게하기 위해 추가 된 것으로 가정 할 수 있습니다 (문서에서 Windows에 대한 일부 경멸감을 느낄 수 있습니다).

어쨌든 선택 모드는 스 니펫 확장 플러그인에 필수적이며 재미와 이익을 위해 남용 될 수 있습니다.

nnoremap § *``gn<C-g>
inoremap § <C-o>gn<C-g>
snoremap <expr> . @.

2
Windows에서 Vim을 포팅하고 사용자를 만족시키기 위해 이런 종류의 모드를 만드는 것이 놀랍습니다. "고전적인"편집기를 원한다면 Vim을 사용하는 이유는 무엇입니까? 그러나 그것은 유일한 설명 인 것 같습니다 ... 또한 매핑의 이익을 실제로 이해하지 못합니다. 내가 이해할 수있는 한 선택 모드에서 커서 아래에있는 단어를 선택하면 왜 그렇게했는지 알 수 있습니다 유능한?
statox

1
단어가 선택되면, 무언가를 입력 한 다음를 눌러 §다음 발생을 선택하고, 다른 것을 입력 한 다음 §다시 눌러 다음 발생을 선택하십시오. 를 눌러 .마지막 삽입을 반복 할 수 있습니다 . "도트 공식"의 변형입니다.
romainl

나는 아직도 그것을 얻지 못한다. 선택 동작은 어떤 식으로 기존 편집기와 비슷합니까?
still_dreaming_1

7
기존 편집기에서 @ still_dreaming_1을 입력 foo하고 선택하십시오. 선택한 것을 대체하기 위해 아무 키나 누르지 않아도됩니다. 그렇지 않습니까? 이것이 선택 모드가 에뮬레이트하는 것입니다.
romainl

1
@romainl 입력하는 "double S"문자는 무엇입니까? 그 캐릭터를 어떻게 입력합니까?
마이클
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.