vim에 붙여넣는 속도를 높일 수 있나요?

vim에 붙여넣는 속도를 높일 수 있나요?

웹페이지에서 HTML의 일부를 복사하여 파일로 저장하고 싶었습니다. 이를 위해 vim 터미널 창에서 새 세션을 시작하고 명령줄에 (새) 파일 이름을 지정한 다음 클릭하여 i삽입 모드로 들어간 다음 CtrlShift+를 누르고 하단에 표시되는 V동안 기다렸다가 ...[-- INSERT --]

몇 초 후에도 응답이 없었기 때문에 vim응용 프로그램 → 첨부 파일 메뉴에서 "텍스트 편집기"를 열고 텍스트를 붙여넣었습니다(1초도 안 되어 나타나서 새 이름으로 저장하고 Vim 세션을 닫고 종료했습니다) ) 1.5분 후에도 여전히 완료되지 않습니다. 텍스트 크기는 186K, 3200줄로 너무 많지도 않고 너무 긴 줄도 없습니다.

이런 종류의 삽입 속도를 높이는 방법이 있습니까 vim? 그리고/또는 끔찍한 마우스 중심 텍스트 편집기를 사용하는 것에 비해 왜 그렇게 느린지에 대한 설명이 있습니까?

(내 시스템에 일부 유휴 프로세서가 있더라도 %CPU는 top5%를 초과하지 않으므로 이는 파일에서 동일한 텍스트를 읽을 때 존재하지 않는 일부 I/O 제한 문제일 수 있습니다.)

버전 정보:
Ubuntu 12.04
Vim: Ubuntu 12.04에서 제공하는 패치가 포함된 7.3
bash: 4.2.25
gnome-terminal: 3.4.1.1

답변1

많은 양의 클립보드 텍스트를 파일로 빠르게 저장하려면 를 실행하고 cat > file.txt내용을 붙여넣은 다음 Ctrl-를 누르면 됩니다 d.

당신이 가지고 있다면셰르설치한 후에는 :r !xselVim에 "기본"(일명 "마우스") 선택 항목을 삽입하거나 :r !xsel -b"클립보드"( Ctrl- c) 버퍼를 삽입할 수 있습니다. xsel >file.txt선택 항목을 사용하거나 파일에 직접 저장할 수도 있습니다 xsel -b >file.txt. 이렇게 하면 별도의 붙여넣기 + EOF 작업이 필요하지 않으며 터미널에서 전체 복사 버퍼를 인쇄하지 않아도 됩니다.

xsel은 없지만 xclip이 있는 경우 해당 명령은 xclip -out기본 선택 항목 또는 xclip -out -selection clipboard클립보드 버퍼에 대한 것입니다.

답변2

이는 디스크에 대한 버퍼 플러시 문제입니다. Vim은 작업 내용을 안전하게 유지하려고 노력하며 초당 수천 글자를 입력할 수 있다고 가정하지 않습니다. :help swap-file버퍼링에 대한 자세한 내용을 읽어보세요 . 귀하의 문제에 대한 해결책은 다음과 같습니다.

vim의 스왑 파일을 닫습니다:

vim -n <your file>

또는 붙여넣기 전에 vim에서:

:set noswapfile

:help swapfile자세한 내용은 여기를 참조하세요 .

또 다른 옵션은 단순히 디스크와의 스왑 파일 동기화를 끄는 것입니다. :set swapsync=그러나 이 옵션을 실행 취소하려면 더 많은 키 입력이 필요하므로 게으릅니다. :)

스왑을 끄는 것은 정상적인 작동에 안전하지 않습니다!붙여넣은 후 즉시 사용하거나 :set swapfile정상적인 :set swapsync=fsync동작으로 되돌립니다(기술적으로 정상적인 동작이동기화설마동기화, :set swapsync?이 경로로 이동하려면 사전에 문의하세요.)

답변3

기능이 있으면 등록 해서 xterm_clipboard사용하시면 됩니다 . 이 레지스터는 각각 X11 주 선택 버퍼와 클립보드에 연결됩니다.*+

CTRL따라서 +를 통해 무언가를 복사한 경우 를 c사용하여 vim에 붙여넣을 수 있습니다 "+p.

복사하지 않고 강조 표시만 했다면 붙여넣기 를 사용하면 됩니다 "*p. 다음을 수행하여 버퍼를 기본 버퍼로 만들
수도 있습니다 . 레지스터를 지정하지 않는 모든 복사(), 붙여넣기() 등의 작업은 해당 레지스터를 사용합니다. Vim 7.3.74도 기본적으로 레지스터를 사용하여 추가되었습니다.*:set clipboard=unnamedyp*clipboard=unnamedplus+

예를 들어 다음과 같이 당겨서 기본 선택 및 클립보드 버퍼에 콘텐츠를 복사할 수도 있습니다 "+yy.

 

위에서 언급한 대로 이러한 기능에는 이 기능이 필요합니다 xterm_clipboard. vim 내부나 셸에서 작업을 수행 한 다음 를 보면 :version이 기능이 있는지 확인할 수 있습니다 . 이 기능이 표시되면 해당 기능이 없는 것이므로 vim을 다시 컴파일해야 합니다.vim --version+xterm_clipboard-xterm_clipboard

관련 정보