[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
( Shift– P) 현재 줄 위에 붙여 넣습니다.
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
이렇게하면 일반 모드에서 직접 줄 바꿈을 할 수 있으며 아래의 줄 바꿈에 붙여 넣기를 원합니다.
<CR>jp
Enter 에서 선호하는 기능에 따라 위의 nmap에서 k 를 건너 뛸 수 있으므로 그냥<CR>p
.
나는 또한 jj를 Esc에 이식 했는데이 경우에도 도움이 될 것입니다. Esc 가 vim에서 얼마나 중요한지 홈 행에서 너무 멀리 떨어져 있습니다.
다른 솔루션보다 짧지는 않지만 일부 솔루션보다 덜 울퉁불퉁하다고 생각하며 다른 용도도 있습니다.
답변
전체 줄을 복사 한 다음 전체 줄을 붙여 넣는 Y
경우 먼저 줄 바꿈을 포함하여 줄을 잡아 당겨 p
붙여 넣습니다. 비주얼 모드의 일반과 달리 V
비주얼 라인 모드 인을 사용할 수도 있습니다 v
.