it-swarm-ko.tech

모든 줄을 클립 보드로 복사하십시오.

VI 편집기에서 열려있는 파일의 모든 줄을 클립 보드로 복사하는 방법이 있습니까? 나는 노력했다. yG 그러나 그 선을 저장하기 위해 클립 보드를 사용하지 않습니다.

그래서 가능합니까?

487
Xinus

텍스트를 * 또는 +레지스터 :

gg"*yG

설명:

  • gg - 커서를 파일의 첫 번째 문자로 가져옵니다.
  • "*y를 통해 첫 번째 줄에서 * 레지스터로 yank 명령을 시작하십시오.
  • G은 파일의 끝으로 이동합니다.
564
CMS

용도:

:%y+

모든 라인을 홱 잡아서.

설명:

  • % 다음 명령을 참조하여 모든 행에 대해 작업하십시오.
  • 해당 행을 y 뽑으십시오.
  • 시스템 클립 보드에 복사하려면 +

NB : Windows에서 +*는 동일합니다 이 대답 참조 .

612
Rook

mac에서

  • 선택한 부분 복사 : 텍스트를 시각적으로 선택 (일반 모드에서는 v 또는 V을 입력)하고 :w !pbcopy를 입력하십시오

  • 전체 파일을 복사하십시오 :%w !pbcopy

  • 클립 보드에서 과거로 :r !pbpaste

70
Brian

클립 보드는 버퍼입니다. +. 클립 보드에 복사하려면 다음을 수행하십시오. "+y 및 [운동].

그래서, gg"+yG는 전체 파일을 복사합니다.

마찬가지로, 클립 보드에서 붙여 넣기하려면, "+p

48
Tordek

VI를 사용하는 데 문제가있는 경우 전체 파일을 복사하는 또 다른 쉬운 방법은 "cat filename"을 입력하는 것입니다. 화면에 파일을 표시 한 다음 위아래로 스크롤하고 복사/붙여 넣기를 수행 할 수 있습니다.

36
Zack

이것은 전체 파일을 잡아 내기 위해 내가하는 일입니다.

ggVGy
25
EmilianoGNFNR

(@rshdev에 대한 응답으로, OP에 대한 주석에서 @nelstrom에 따라 + xterm_clipboard를 사용하여 vim을 다시 컴파일하지 않아도 됨)

우분투 11에서 putclip처럼 작동하는 xclip이라는 프로그램이 있습니다.

:%!xclip -sel clip
u

기본적으로 설치되지 않습니다. 설치하려면 다음을 사용하십시오.

Sudo apt-get install xclip
10
Stew

우분투 12에서

vim-gnome 패키지를 설치하려고 할 수 있습니다.

Sudo apt-get install vim-gnome

vim --versionxterm_clipboard 플래그를 비활성화했기 때문에 (-로 표시) 클립 보드 기능을 사용하기 위해 필요하다고 말했기 때문에 시도했습니다.

Ubuntu 12에 vim-gnome 패키지를 설치하면이 옵션이 활성화 된 vim의 콘솔 기반 버전이 설치되었습니다 (xterm_clipboard 플래그 앞에 +로 표시됨)

아치 리눅스

동일한 이유로 vim-clipboard을 (를) 설치할 수 있습니다.

9
Arch Linux Tux

나는 사람들이 위에서 언급 한 몇 가지 명령을 시도했다. 아무도 일하지 않았다. 그렇다면 나는 그들 중 가장 단순한 것을 모두 잡았다.

1 단계 : vi <filename>
2 단계 : PuTTY 창의 제목 표시 줄을 마우스 오른쪽 단추로 클릭하십시오.
3 단계 : "Clear scrollback"을 선택하십시오 (SSH 세션의 나머지 부분을 복사하지 않으려면)
4 단계 : 다시 마우스 오른쪽 버튼을 클릭하고 "클립 보드로 모두 복사"를 선택하십시오.

5
Abhinav Deshpande

Vim을 비주얼 모드로 사용하는 경우에는 적어도 Windows에서는 표준 잘라 내기 및 붙여 넣기 키가 적용됩니다.

  • CTRLA "전체 파일을 표시합니다.
  • CTRLC "선택을 복사하십시오.
  • ESC "De-select를 의미하므로 다음 키를 누르면 파일 전체가 대체되지 않습니다 :-)

Ubuntu 터미널 (Gnome)에서 최소한 표준 복사본도 작동합니다 (CTRLSHIFTC, select all에 대한 표준 키보드 단축키는 보이지 않지만 ( ALTE 뒤이어 A).

5
paxdiablo

gg를 눌러 커서를 파일의 시작 부분에 놓은 다음 yG를 눌러 모든 내용을 처음부터 끝까지 복사 (G 위치) buffer.good luck!

5
gameboy90

"고양이"명령을 사용하여 파일을 열고 마우스로 복사 할 수 있습니다.

5
Pham Luan

gVim :

:set go=a

ggVG

:help go-a 참조 :

'a' Autoselect:  If present, then whenever VISUAL mode is started,
 or the Visual area extended, Vim tries to become the owner of
 the windowing system's global selection.  This means that the
 Visually highlighted text is available for pasting into other
 applications as well as into Vim itself.  When the Visual mode
 ends, possibly due to an operation on the text, or when an
 application wants to paste the selection, the highlighted text
 is automatically yanked into the "* selection register.
 Thus the selection is still available for pasting into other
 applications after the VISUAL mode has ended.
     If not present, then Vim won't become the owner of the
 windowing system's global selection unless explicitly told to
 by a yank or delete operation for the "* register.
 The same applies to the modeless selection.
3
kev

:%y a 모든 내용을 vim의 버퍼에 채 웁니다. 명령 모드에서 p을 누르면 커서가 현재 서있는 선 다음에 채워진 내용이 붙여집니다.

3
Ma'moon

자,이 모든 접근법은 흥미 롭습니다. 그러나 게으른 프로그래머는 number + y의 조합을 사용하여 모든 라인을 꺼냅니다.

예를 들어 총 78 줄의 소스 코드 파일을 가지고 있다면 아래와 같이 할 수 있습니다 :

  1. 첫 줄에 커서를 가져 오는 gg
  2. 78 + y 삽입 -> 커서와 현재 줄 아래 78 줄을 뽑습니다.
2
arfo

핑거의 기본값이 CTRL-A CTRL-C이면 $VIMRUNTIME/mswin.vim에서 매핑을 시도하십시오.

" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

나는 그것들을 <Leader><C-a><Leader><C-c>에 매핑시켰다.

2
go2null

빌 조이 (Bill Joy)의 vi에는 "클립 보드 (clipboard)"라는 개념이 없었기 때문에 빌트인 방법을 생각하지 않았습니다.

gVim의 자동 복사 - 아무 것도 강조되지 않은 클립 보드 기능이 가장 쉽거나 다음을 통해 외부 프로그램을 사용하십시오!

Cygwin의 vim을 위해 나는

:%!putclip
u

어쩌면 우분투에는 putclip과 같은 CLI 응용 프로그램이 있습니까?

2
rshdev

Vim이나 그 탭 안의 전체 파일을 복사하십시오.

y G 

그런 다음 탭으로 이동하여

p

전체 파일 사용을 줄이기 위해

d G
2
Abdul Basit

다음을 사용하여 클립 보드로 모두를 선택하는지도 명령이 있습니다. CTRL+a:

"
" select all with control-a
"
nnoremap <C-a> ggmqvG"+y'q

그것을 .vimrc에 추가하면 갈 수 있습니다 ...

1
jahroy

이 작업을 수행하는 함수를 작성하여 ~/.vimrc에 배치하십시오.

fun! CopyBufferToClipboard()
    %y+
endfun
nnoremap <Leader>y :call CopyBufferToClipboard()<CR>
command! -nargs=0 CopyFile :call CopyBufferToClipboard()

OBS : 네오 빔을 사용한다면 xclip과 같은 클립 보드 관리자가 필요합니다. neovim에 대한 자세한 정보는 :h checkhealth를 참조하십시오.

또한 클립 보드에 등록 된 모든 복사본을 +로 설정하려면 간단한 y이 클립 보드에 복사되는 것은 아닙니다. :set clipboard=unnamed,unnamedplus를 설정하려고 시도하는 것이 중요합니다. mor 정보는 :h unnamed를 참조하십시오.

Here vim wikia에 대한 더 많은 정보.

0
SergioAraujo

이 일에 10 년은 걸려야하지만 처음 두 답변이 나에게 도움이되지 않았으므로 계속 파고 있었다. Redhat (원격 서버) - Windows 10 (로컬 시스템)에서 마우스로 모든 것을 선택할 수 없으면 원격 컴퓨터와 로컬 시스템 클립 보드간에 일반적인 복사본이 작동하지 않기 때문에 멈추었습니다.

따라서 원격 Linux에서 복사하고 로컬 Windows에 붙여 넣으려면 다음과 같이 기본 버퍼를 지정하십시오. * 니스 더블 홱 잡아라.

용도 gg"*yy.

0
Lefty G Balogh

.vimrc에 다음 행을 추가했습니다.

nnoremap <F5> :%y+<CR>

이렇게하면 F5 (명령 모드에서)를 눌러 Vim의 모든 텍스트를 클립 보드에 복사 할 수 있습니다.

0
aks