답변:
인서트 모드에서 CTRL-R {register}
예 :
CTRL-R *
클립 보드의 내용에 삽입합니다 CTRL-R "
(이름이없는 레지스터)는 마지막 삭제 또는 yank를 삽입합니다. vim의 help type에서 이것을 찾으려면 :h i_ctrl-r
CTRL-R *
GVIM 또는 x와 상호 작용하도록 컴파일 된 버전에서만 작동합니다. 을 입력 vim --version
하고 찾으십시오 +xterm_clipboard
. 그것을 가지고 있지 않다면 다른 버전의 vim이 필요합니다. ( vim.wikia.com/wiki/Accessing_the_system_clipboard )
+clipboard
하지만 +xterm_clipboard
어쨌든 필요합니다. 일부 OS xterm_clipboard
에서는 적용되지 않습니다.
Vim이 붙여 넣은 텍스트에서 서식을 엉망으로 만들지 않으려면 다음을 사용하는 것이 좋습니다 :set paste
. 이렇게하면 Vim이 코드를 다시 탭하지 못하게됩니다. 붙여 넣기를 마치면 :set nopaste
정상적인 동작으로 돌아갑니다.
set pastetoggle=<F2>
.vimrc 와 같은 것을 추가하여 단일 키로 모드를 전환 할 수도 있습니다 . 자동 들여 쓰기 토글에 대한 자세한 내용은 여기를 참조하십시오 .
:set nopaste
모드를 붙여 사용할 수 없게됩니다
:set paste!
아마도 붙여 넣기가 명령 기록에서 매우 가깝게 설정되어 있으므로 간단히 ':'을 누른 다음 화살표를 위로 올리고 '!'를 추가하면됩니다.
:set paste!
고마워 에 대한 더 나은 또는 다른 점 :)
!
명령 끝 vim
에서는 명령을 켜고 끕니다. 이런 식으로 입력하지 않아도 :set nopaste
히스토리를 위로 스크롤하고 동일한 명령 ( :set paste!
)을 다시 실행할 수 있습니다.
직접하지 않습니다. 당신이 할 수있는 일은 단일 일반 모드 작업을 위해 삽입 모드를 신속하게 종료 Ctrl-O한 다음 거기에서 붙여 넣기를하면 삽입 모드로 돌아갑니다.
키 콤보 : Ctrl-O p
편집 : 흥미로운. 다른 사람들이 열거 한 방법이있는 것 같습니다.
esc + p
?
esc + p + i
확실히 입력하기가 훨씬 쉽습니다.CTRL-R + "
CTRL-R "
합니다. 예를 들어, vimrc 설정이이를 변경할 수 있지만 새 줄에 무언가를 붙여 넣으면 CTRL-O p
들여 쓰기가 사라집니다.
삽입 모드 Ctrl-R {register}
에서 레지스터를 사용할 수있는을 사용할 수 있습니다.
+
클립 보드를 위해*
X 클립 보드 (X에서 마지막으로 선택한 텍스트)의 경우 "
이름이없는 레지스터 (Vim에서 마지막 삭제 또는 yank)의 경우:h registers
).Ctrl-R {register}
입력 한 것처럼 텍스트를 삽입합니다.
Ctrl-R Ctrl-O {register}
원래 들여 쓰기로 텍스트를 삽입합니다.
Ctrl-R Ctrl-P {register}
텍스트를 삽입하고 자동 들여 쓰기합니다.
Ctrl-O
삽입 모드로 돌아 가기 전에 일반 모드 명령을 실행하는 데 사용할 수 있으므로
Ctrl-O "+p
예를 들어 사용할 수도 있습니다.
자세한 내용은 다음 설명서를 참조하십시오. :h i_ctrl-r
이것을 사용하여 다음을 사용하여 클립 보드에서 붙여 넣을 수 있습니다 Ctrlv.
set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>
그리고 이것은 다음을 사용하여 시각적 선택을 클립 보드로 가져옵니다 Ctrlc.
vnoremap <C-c> "+y
일반 모드에서 클래식 vim yanking / pasting ( y/ p)에 대해 기본적으로 클립 보드를 사용하려면 다음을 수행하는 구성 옵션이 있습니다.
set clipboard=unnamedplus
이 설정을 사용하면 예를 들어 일반 모드에서 먼저 yank 한 다음 Ctrlv삽입 모드 로 붙여 넣을 수 있습니다. 또한 다른 vim 인스턴스와 다른 응용 프로그램에서 텍스트를 붙여 넣을 수 있습니다.
다른 옵션은 다음과 같습니다.
set clipboard=unnamed
그런 다음 X 환경에서 마우스를 끌어서 무언가를 선택하고 나중에 vim에 붙여 넣을 수 있습니다. 그러나 (어떤 이유로 든) yVim에서 무언가 ( ) 를 잡아 당기지 못하고 shiftinsert나중에 다른 곳 에서 볼 수는 없습니다 . 아마도 상당히 제한적입니다.
이에 대한 Vim 문서 : http://vim.wikia.com/wiki/Accessing_the_system_clipboard
사용자 정의 레지스터에서 붙여 넣으려면 다른 답변을 따를 수 있습니다 :). 이 답변은 주로 Vim을 시스템 클립 보드에 통합하는 것에 관한 것입니다.
참고 것을 set clipboard=unnamedplus
및 set clipboard=unnamed
사업에, 당신이 사용 gvim을 또는 vimx (필요 vim-X11
) : 사람들은 컴파일된다 +xterm_clipboard
. 당신은 선택적으로이 점을 넣을 수 있습니다 .bashrc
별명 vim
을 가진 vimx
:
if [ -e /usr/bin/vimx ]; then
alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi
vim이 +xterm_clipboard
제공 한 정보에서 vim의 유무를 확인할 수 있습니다 vim --version
.
:set paste
과 비잔틴 <leader><leader> * y
이 원격으로 바람직한 이유를 알고 있습니까? 너무 헌신적으로 들리지는 않지만, 이것이 Vim 철학이 무엇을 반영하는지, 또는 그것이 단지 역사적인 불행인지 궁금합니다.
inoremap <S-Insert> <F12><C-r>+<F12>
(F12를 pastetoggle로 사용합니다). 감사.
시스템 클립 보드 ( :set clipboard=unnamed
) 를 사용하도록 Vim을 설정하면 Vim에서 복사 한 모든 텍스트를 Shift+를 사용하여 붙여 넣을 수 있습니다 Insert. Shift+ Insert는 단순히 OS 전체의 붙여 넣기 키 조합입니다 ( Ctrl+ Insert는 해당 '복사'입니다).
p
클립 보드에 텍스트를 붙여?
Shift + Insert
텍스트를 붙여 넣기 위해 사용하기 전에 삽입 모드에 있어야합니다.
마우스 가운데 버튼을 사용하여 삽입 모드로 붙여 넣을 수도 있습니다 (Linux 만 해당).
예. Windows Ctrl+ V및 Linux 에서는 두 마우스 버튼을 거의 동시에 누릅니다.
Windows에서는 _vimrc 의이 줄이 아마도 그렇게한다고 생각합니다.
source $VIMRUNTIME/mswin.vim
리눅스에서는 어떻게했는지 기억이 나지 않습니다. 기본 .vimrc 파일에서 일부 행을 삭제 한 것 같습니다.
지도를 추가하십시오.
" ~/.vimrc
inoremap <c-p> <c-r>*
vim을 다시 시작하고 Crtl+p
삽입 모드에서 누르면 복사 된 텍스트가 붙여 넣어집니다.