[vim] vim으로 새 줄에 붙여 넣는 방법?

나는 종종 vim의 새로운 줄에 물건을 붙여 넣어야합니다. 내가 보통하는 일은 :

o<Esc>p

새 줄을 삽입하고 삽입 모드로 전환하여 삽입 모드를 종료하고 마지막으로 붙여 넣습니다.

세 번의 키 입력. 매우 효율적이지 않습니다. 더 나은 아이디어가 있습니까?



답변

:help p그것이 말한 직후 :

:[line]pu[t] [x]    Put the text [from register x] after [line] (default
                    current line).  This always works |linewise|, thus
                    this command can be used to put a yanked block as
                    new lines.

:[line]pu[t]! [x]   Put the text [from register x] before [line]
                    (default current line).

불행히도 다른 답변에서 제안한대로 키보드 맵과 결합하지 않으면 현재 솔루션보다 짧지 않습니다. 예를 들어, 아무 키나 (조차 p) 매핑 할 수 있습니다 .

:nmap p :pu<CR>


답변

옵션 :

1) yy전체 줄을 잡아 당기려면 사용하십시오 (줄 끝 문자 포함). p그런 다음 현재 줄 다음에 줄을 붙여넣고 P( ShiftP) 현재 줄 위에 붙여 넣습니다.

2) 매핑을하십시오. 그러면 하나 또는 두 개의 키 일뿐입니다.

:nmap ,p o<ESC>p
:nmap <F4> o<ESC>p

3) 매핑의 함수 버전 (실제로 불필요하지만 완전성을 위해) :

:nmap <F4> :call append(line('.'), @")<CR>

" This one may be a little better (strip the ending new-line before pasting)
:nmap <F4> :call append(line('.'), substitute(@", '\n$', '', ''))<CR>

:help let-register
:help :call
:help append()
:help line()
:help nmap


답변

붙여 넣을 버퍼 <C-R>이름을 사용하여 삽입 모드 에서 버퍼를 붙일 수 있습니다. 기본 버퍼는입니다 ".

o<C-R>"

나는 <C-R>"매우 자주 사용하고 그것을 <C-F>내 vimrc에 묶은 것을 발견했다 .

inoremap <C-F> <C-R>"


답변

이것은 여전히 ​​세 번의 키 입력을 사용하지만 Esc보다 쉽습니다.

o<Alt-p>

o를 누른 후 삽입 모드에 있으므로 Alt 수정자를 사용하면 명령을 사용하지 않은 것처럼 사용할 수 있습니다.


답변

이 플러그인 사용 : https://github.com/tpope/vim-unimpaired

]p아래 줄에 붙여 넣기

[p 줄에 붙여 넣기

장점 :

  • 모든 구부러진 텍스트 (단어, 줄, 문자 등)에서 작동
  • 붙여 넣은 텍스트를 들여 쓰기하여 주위의 텍스트 들여 쓰기
  • 3 개 및 많은 “더 쉬운”스트로크 대신 2 개의 키 입력
  • 빠른

답변

개인적으로 다음과 같이 Enter (CR)를 사용했습니다.

nmap <CR> o<Esc>k

Vim Wikia 기사를 기반으로 합니다 .

이렇게하면 일반 모드에서 직접 줄 바꿈을 할 수 있으며 아래의 줄 바꿈에 붙여 넣기를 원합니다.

<CR>jp

Enter 에서 선호하는 기능에 따라 위의 nmap에서 k 를 건너 뛸 수 있으므로 그냥<CR>p .

나는 또한 jj를 Esc에 이식 했는데이 경우에도 도움이 될 것입니다. Esc 가 vim에서 얼마나 중요한지 홈 행에서 너무 멀리 떨어져 있습니다.

다른 솔루션보다 짧지는 않지만 일부 솔루션보다 덜 울퉁불퉁하다고 생각하며 다른 용도도 있습니다.


답변

전체 줄을 복사 한 다음 전체 줄을 붙여 넣는 Y경우 먼저 줄 바꿈을 포함하여 줄을 잡아 당겨 p붙여 넣습니다. 비주얼 모드의 일반과 달리 V비주얼 라인 모드 인을 사용할 수도 있습니다 v.