나는 종종 vim의 새로운 줄에 물건을 붙여 넣어야합니다. 내가 보통하는 일은 :
o<Esc>p
새 줄을 삽입하고 삽입 모드로 전환하여 삽입 모드를 종료하고 마지막으로 붙여 넣습니다.
세 번의 키 입력. 매우 효율적이지 않습니다. 더 나은 아이디어가 있습니까?
나는 종종 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>
:pu[t]
현재 줄 뒤에 :pu[t]!
텍스트를 새 줄에 넣고 현재 줄 앞에 텍스트를 새 줄에 넣습니다. 이에 따라 답변을 편집하겠습니다. (Hooray for :help p
.)
:nmap p :pu<CR>
.vimrc 파일에 넣고 끄십시오. :)
옵션 :
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
위 줄에 붙여 넣기
장점 :
tpope/vim-unimpaired
이것이 작동하기 위해서는 당신이 필요하다고 언급 할 가치가 있습니다 .
개인적으로 다음과 같이 Enter (CR)를 사용했습니다.
nmap <CR> o<Esc>k
이렇게하면 일반 모드에서 직접 줄 바꿈을 할 수 있으며 아래의 줄 바꿈에 붙여 넣기를 원합니다.
<CR>jp
Enter 에서 선호하는 기능에 따라 위의 nmap에서 k 를 건너 뛸 수 있으므로 그냥<CR>p
.
나는 또한 jj를 Esc에 이식 했는데이 경우에도 도움이 될 것입니다. Esc 가 vim에서 얼마나 중요한지 홈 행에서 너무 멀리 떨어져 있습니다.
다른 솔루션보다 짧지는 않지만 일부 솔루션보다 덜 울퉁불퉁하다고 생각하며 다른 용도도 있습니다.
전체 줄을 복사 한 다음 전체 줄을 붙여 넣는 Y
경우 먼저 줄 바꿈을 포함하여 줄을 잡아 당겨 p
붙여 넣습니다. 비주얼 모드의 일반과 달리 V
비주얼 라인 모드 인을 사용할 수도 있습니다 v
.
나는 이것에 대한 우아한 해결책을 찾았습니다. yank 레지스터를 OS의 클립 보드에 넣는 경우 (어쨌든 좋습니다)
set clipboard+=unnamed
당신이 할 수있는 것보다 o<Ctl-v>
.
적은 획일 o<Esc>p
뿐 :pu
아니라 들여 쓰기를 유지하기 때문에 두 가지 모두에서 향상됩니다 . 다른 옵션은 모두 새 줄에서 문자 0부터 시작합니다.
주의 사항은 OS에 따라 다를 수 있습니다. 내가 아는 전부는 최신 버전의 OS X에서 작동한다는 것입니다. 그러나 클립 보드는 OS 클립 보드에 얽매이는 많은 방법 중 하나 일뿐입니다.
삽입 모드로 종료하려면을 사용하여 삽입 모드에서 붙여 넣을 수도 있습니다 CTRL-R "
. https://stackoverflow.com/a/2861909/461834
여전히 세 번의 키 입력이 있지만 이스케이프되지 않고 삽입을 끝내려면 키 입력을 저장하십시오.