일반 모드에서 임의의 문자 "위"에 커서를 두는 규칙이 있습니까? [폐쇄]

일반 모드에서 임의의 문자 "위"에 커서를 두는 규칙이 있습니까? [폐쇄]

이는 편집자 동작에 완전히 익숙하지 않은 사람들이 부자연스러운 편집 동작을 관찰할 때 발생하는 일반적인 문제입니다 vim.

  • insert커서 위치를 즉시 변경하려면 Enter를 누른 다음 종료하세요.
  • (잘못된) 제거 및 붙여넣기 [ ]word결과 some[ ][ ]wordand the rest(명확성을 위해 공백이 표시됨 [ ])

vim별도로 명시하지 않는 한 텍스트를 항상 커서 위치 왼쪽에 붙여넣고 삽입하고 추가하는 규칙을 정의하는 유사한 편집기가 있다고 가정해 보십시오 . 물론 개행 문자 위로 커서를 가져갈 수 있어야 합니다(예: 제거할 수 있도록 허용).

이로 인해 해당 편집기가 제대로 설계되지 않았습니까(예: 자체 명령 및 작업과 일치하지 않음)?

즉, vim합의가 자의적이거나 신중하게 만들어진 것입니까?

답변1

Sato Katsura와 Julie Pelletier가 이러한 혼란을 해결했으며 Vim은 여러분이 원하는 대로 사용할 수 있는 풍부한 명령과 옵션을 제공합니다. 삽입 모드가 그런 방식으로 작동하는 몇 가지 이유에 대해 논의하겠습니다.

터미널에서는 문자가아니요항상 커서 아래에 있습니다. 예를 들면 다음과 같습니다.

  • 커서가 EOL 위에 있을 수 있습니다.
  • 커서가 개행 문자 위에 있을 수 있지만 개행 문자는 터미널에 표시되지 않는 문자입니다.

Vim에서는 normal mode커서가 문자가 없는 곳에도 위치할 수 있습니다. 이 동작을 보려면 빈 줄에 주목 a하고 i동일한 작업을 수행하십시오.

입력 방법이 다른 또 다른 이유는 insert-mode패턴 검색이 커서를 현재 커서 위치에서 일치 시작 부분으로 이동시키기 때문입니다. 일치하는 길이 위로 커서를 이동할 수 있으므로 삽입 명령이 일치하기 전에 삽입 모드로 들어가기를 원합니다.

또한 입력하면 일시적으로 커서가 한 문자 앞으로 /이동하므로 normal-mode동일한 패턴의 새로운 일치 항목에 대해 검색이 반복될 수 있습니다.

답변2

vi나는 당신의 혼란을 이해하지 못하지만 다음 과 같은 매우 엄격한 지침이 있습니다 vim.

i: insert text before the cursor
I: insert text at the beginning of the line
a: append text after the cursor
A: append text at the end of the line
p: paste the buffer after the cursor
P: paste the buffer before the cursor

목록은 계속됩니다.

관련 정보