vi/vim에 붙여넣은 후 커서 위치

vi/vim에 붙여넣은 후 커서 위치

항상 나를 괴롭히는 한 가지vi/vim:

일부 텍스트를 "양킹"(또는 "복사")한 다음 파일의 다른 위치로 이동하여 "붙여넣기"를 수행하면 커서가 계속 붙어 있습니다.시작방금 붙여넣은 텍스트입니다. 이는 대부분의 현대 편집자가 하는 작업과 다릅니다.텍스트를 붙여넣었습니다.

예를 들어, "복사 버퍼"에 "awesome"이라는 단어가 포함되어 있고 이를 구문의 "an"이라는 단어 뒤에 붙여넣고 싶다고 가정해 보겠습니다.

This is an editor

예를 들어,편집자, 붙여넣은 후:

This is an awesome editor
                  ^ Cursor is here

존재하다:

This is an awesome editor
           ^ Cursor is here

내가 바꿀 수 있을까 (예를 들어)처럼 행동하다편집자 이와 관련하여?

답변1

vim에서는 붙여넣은 텍스트 뒤에 커서를 두려면 gpgP대신 p및를 사용하세요. P바인딩을 바꾸려면 다음 줄을 다음 줄에 입력하세요 .vimrc.

noremap p gp
noremap P gP
noremap gp p
noremap gP P

이상하게도 vim에서는 호환 모드에서도 p커서 P가 문자 버퍼의 마지막으로 붙여넣은 문자에 유지됩니다.

다른 vi 버전에서는 이 설정을 어떻게 변경하는지 모르겠습니다.

답변2

']아니면 '>여기서도 유용할 수도 있습니다.

에서 :h motion.txt:

'] `] 이전에 변경했거나 가져온 텍스트의 마지막 문자입니다.

'> `> 현재 버퍼에서 마지막으로 선택한 시각적 영역의 마지막 줄이나 문자로 이동합니다. 블록 모드의 경우 마지막 줄의 첫 번째 문자일 수도 있습니다(블록을 정의할 수 있도록). "선택"이 적용되는 경우 위치는 보이는 영역 바로 뒤에 있을 수 있습니다.

답변3

나는 이것이 의도적으로 설계된 것이라고 확신합니다. "p"(소문자 P)를 사용하여 붙여넣을 경우 붙여넣어야 합니다.뒤쪽에현재 위치 또는 행입니다. 하지만 "P"(대문자 P)를 사용하여 붙여넣으면 붙여넣기가 됩니다.앞으로현재 위치 또는 행입니다. 원하는 동작이 새로 붙여넣은 텍스트 끝에 커서를 두는 것이라면 "p" 대신 "P"를 사용하는 습관을 들여보세요.

충분히 깊이 파고들면 "p"를 사용하더라도 커서를 항상 붙여넣기 끝으로 이동시키는 vim 레시피를 .vimrc에 넣을 수 있을 것입니다.

답변4

~에 따르면https://unix.stackexchange.com/a/5060/457327그리고 내 관습은 다음과 같습니다.

    nnoremap p P
    " nnoremap p <left>P  (does not work)

        
    " p: paragraph  
        nnoremap vP Vip
        nnoremap <leader>v Vip

    nnoremap P v$<left>P
        " like  Y D C

관련 정보