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


11

vi / vim 에서 항상 나를 괴롭힌 한 가지 :

텍스트를 "잉크"(일명 "복사") 한 다음 파일의 다른 위치로 이동하여 "붙여 넣기"를 수행하면 커서가 방금 붙여 넣은 텍스트 의 시작 부분 에 남아 있습니다 . 이것은 대부분의 현대 편집자들이하는 것과는 다릅니다. 커서는 내가 붙여 넣은 텍스트 의 끝에 커서를 놓습니다 .

예를 들어, "복사 버퍼"에 단어 "an"다음에 붙여 넣을 "awesome"이라는 단어가 포함되어 있다고 가정합니다.

This is an editor

붙여 넣기 후 예를 들어 gedit 에서 :

This is an awesome editor
                  ^ Cursor is here

에서 VI :

This is an awesome editor
           ^ Cursor is here

이와 관련하여 (예를 들어) gedit 처럼 vi 를 변경할 수 있습니까 ?


내 버전의 Vim과 함께 목록에서 더 이상한 것은 : 줄 바꿈 된 텍스트가 두 줄 이상에 걸쳐 있으면 커서는 붙여 넣은 텍스트의 시작 부분에 남아 있고 그렇지 않으면 붙여 넣은 텍스트의 끝 부분에 남아 있습니다.
Alexey

적어도
Alexey

답변:


12

정력, 사용 gpgP대신 p하고 P붙여 넣은 텍스트 뒤에 커서를 떠날. 바인딩을 바꾸려면 다음 줄을 넣으십시오 .vimrc.

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

이상하게도, 정력에, p그리고 P심지어는 호환 모드로, 문자 버퍼의 마지막 붙여 넣은 문자에 커서를 둡니다.

다른 vi 버전에서 이것을 변경하는 방법을 모르겠습니다.


1
"vi"는 대부분의 배포판에서 일반적으로 "vim"이라고 생각합니다.
JoelFan

@JoelFan : 아마도 임베디드가 아닌 리눅스 배포판 일 것입니다. 다른 곳에서는 아닙니다. vim 전용 솔루션으로 괜찮다면 vi를 사용하지 마십시오. vim의 구성 가능성의 99 %가 기본 vi에 있지 않습니다.
Gilles 'SO- 악마 중지'12

"nvi"는 어때? 나는 모든 다른 vi에 대해 혼란스러워합니다. 나는 대부분 데비안과 우분투에 관심이있다
JoelFan

1
@JoelFan : nvi는 매우 기본적인 vi이며, 원래 구현과의 호환성을 목표로합니다. 프로그램을 쉽게 설치할 수있는 데스크탑 설치 나 서버에만 관심이 있다면 vim을 사용할 수 있다고 가정 할 수 있습니다. 보다 적은 vi 구현에 대한 지식은 잠긴 서버 및 임베디드 장치에서만 유용합니다.
Gilles 'SO- 악의를 멈춰라'

1
나는 주로 내가 네 일을 설치할 수있는 서버에 대한 "VI"를 사용
JoelFan

0

이것은 의도적으로 설계된 것입니다. "p"(소문자 P)를 사용하여 붙여 넣으면 현재 위치 나 행 뒤에 붙여 넣어야합니다 . 그러나 "P"(대문자 P)를 사용하여 붙여 넣으면 현재 위치 나 선 앞에 붙여 넣 습니다. 원하는 동작으로 커서를 새로 붙여 넣은 텍스트의 끝에 두는 것이 "p"대신 "P"를 사용하는 습관을들이십시오.

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


2
P붙여 넣은 텍스트의 시작 부분에 커서를 vi에 둡니다 (최소한 nvi 및 POSIX).
Gilles 'SO- 악마 중지

p 및 P는 주변 텍스트와 관련하여 삽입물의 위치에 영향을줍니다. 삽입 된 텍스트에 대해 항상 같은 위치에있는 커서 자체의 위치에는 영향을 미치지 않습니다.
eMBee 2019 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.