vim 마크가 문자의 원래 줄/열 위치 대신 원래 설정된 문자를 가리킬 수 있습니까?

vim 마크가 문자의 원래 줄/열 위치 대신 원래 설정된 문자를 가리킬 수 있습니까?

vim 표시(예: mm)가 문자의 원래 줄/열 위치 대신 원래 설정된 문자를 가리키도록 할 수 있습니까?

예를 들어, 아래 예문에서 "politicians"라는 단어의 첫 글자(1행, 72열)에 mm을 입력한 다음 "entries"라는 단어를 삭제하고 `m을 입력하면 커서가 원래 위치로 돌아갑니다.커서위치(1행, 72열)는 이제 "politicians"라는 단어에서 문자 'a'의 위치입니다. 나는 이것이 vim의 예상되는 동작이라는 것을 이해하지만,행/열 위치가 변경되었더라도 `m이 대신 정치인의 'p'로 돌아가기를 바랍니다.

예문:

10일 차단은 케네디 암살과 같은 사건뿐만 아니라 정치인과 기업에 대한 익명 변경이 이루어진 후에 발생합니다.

나는 내가 원하는 동작이 내가 작성/편집하는 방식에 훨씬 더 유용하다고 생각합니다(특히 Vim을 원래 코딩 목적 이상으로 사용할 때). Vim의 기능 대부분을 Word 핸들에 추가하는 플러그인인 Viemu는 제가 원하는 방식을 표시합니다. 불행하게도 Viemu는 Vim의 완벽한 포트가 아니기 때문에 저는 모든 텍스트(코드뿐만 아니라 이메일, 에세이 등)를 Vim에서 작성하는 것을 선호합니다. Vim을 내가 원하는 방식으로 표시를 처리하도록 하는 방법을 모르기 때문에 Vim을 독점적으로 사용하지 않는 주된 이유 중 하나입니다.

미리 감사드립니다.

추신: 이번이 처음으로 stackexchange/superuser에 게시하는 것이므로 질문에 대한 적절한 형식/프로토콜을 따르지 않았다면 용서해 주시고 정정해 주시기 바랍니다.

답변1

추가/제거된 줄에 대해 표시가 조정되지만 열 위치는 조정되지 않습니다. 당신 말이 맞아요. 귀하가 원하는 행동에는 확실히 여러 가지 이점이 있습니다. 아직 구현되지 않은 것 같습니다. 아마도 관련된 복잡성 때문일 것입니다. (그리고 이는 vi 및 이전 Vim 버전과의 호환성을 깨뜨릴 수 있는데, 이는 가볍게 받아들여지지 않는 문제입니다.)

s를 사용하여 일부 편집 작업에 연결할 수는 있지만 :autocmd일반적으로 불가능합니다(예: :s가로챌 수 없는 작업). 따라서 Vimscript에서 해당 동작을 에뮬레이트하는 것은 어려울 것이며 그러한 구현에 대해서는 잘 모르겠습니다.

관련 정보