문제

VI 편집기의 열린 파일에서 클립 보드로 모든 줄을 복사 할 수있는 방법이 있습니까? 나는 시도했다 와이G 그러나 클립 보드를 사용하여 해당 라인을 저장하지 않습니다.

그래서 가능합니까?

도움이 되었습니까?

해결책

당신은 텍스트를 * 또는 + 등록:

gg"*와이G

설명:

  • gg 커서를 파일의 첫 번째 문자로 가져 오려면
  • "*y 레지스터에 YANK 명령을 시작합니다 * 첫 번째 줄에서 ...까지 ...
  • G 파일의 끝으로 이동합니다

다른 팁

사용:

:%와이+

모든 라인을 잡아 당깁니다.

설명:

  • % 모든 줄에서 작동하도록 다음 명령을 참조하려면
  • y 그 줄을 잡아 당기십시오
  • + 시스템 클립 보드에 복사합니다

NB: Windows에서 + 그리고 * 동등합니다 이 답변을 참조하십시오.

Mac에서

  • 선택된 부분 복사 : 시각적으로 텍스트를 선택하십시오 (유형 v 또는 V 정상 모드에서) 및 입력 :w !pbcopy

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

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

클립 보드는 버퍼입니다 +. 클립 보드에 복사하려면 "+와이 그리고 [운동].

그래서, gg"+와이G 전체 파일을 복사합니다.

마찬가지로 클립 보드에서 붙여 넣기 위해 "+

VI를 사용하는 데 문제가있는 경우 전체 파일을 복사하는 또 다른 쉬운 방법은 "Cat Filename"을 입력하는 것입니다. 파일을 화면으로 반향 한 다음 위아래로 스크롤하고 복사/붙여 넣기 만하면됩니다.

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

ggVGy

(@rshdev에 대한 답장으로, OP의 댓글에서 @nelstrom 당 +xterm_clipboard로 vim을 다시 컴파일하지 않아도됩니다)

Ubuntu 11의 Putclip과 같은 Xclip이라는 프로그램이 있습니다.

:%!xclip -sel clip
u

기본적으로 설치되지 않았습니다. 설치, 사용 :

sudo apt-get install xclip

우분투 12

당신은 설치하려고 할 수 있습니다 vim-gnome 패키지:

sudo apt-get install vim-gnome

나는 그것을 시도했다 vim --version 깃발이있을 것이라고 말했습니다 xterm_clipboard 비활성화 (표시) - ), 클립 보드 기능을 사용하기 위해 필요합니다.

-> 설치 vim-gnome Ubuntu 12의 패키지는 VIM의 콘솔 기반 버전을 설치했습니다.이 옵션이 활성화되어 있습니다 ( + xterm_clipboard 플래그 이전)

아치 리눅스에서

설치할 수 있습니다 vim-clipboard 같은 이유로.

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

시각적 모드에서 VIM을 사용하는 경우 표준 절단 및 페이스트 키도 적어도 Windows에 적용됩니다.

  • CTRL 키 "전체 파일을 표시합니다.
  • CTRL 키 "선택을 복사합니다.
  • ESC "DE-SELECT, 다음 키 프레스는 전체 파일을 대체하지 않습니다 :-)

Ubuntu 터미널 (Gnome)에서 적어도 표준 사본도 작동합니다 (CTRL 키옮기다, 표준 키보드 바로 가기가없는 것처럼 보이지만 select all (이것 말고도 대체이자형 그 뒤에 ).

GG를 눌러 파일의 시작 부분에 커서를 찾은 다음 yg를 눌러 시작부터 끝까지 모든 내용을 복사하여 (G 위치) 버퍼로 복사 할 수 있습니다!

사람들이 위에서 언급 한 몇 가지 명령을 시도했습니다. 아무도 작동하지 않았습니다. 그런 다음 나는 그들 중 가장 단순한 것을 붙잡았다.

1 단계: vi <filename>
2 단계 : 퍼티 창의 제목 표시 줄을 마우스 오른쪽 버튼으로 클릭하십시오.
3 단계 : "스크롤 백 청소"를 선택하십시오 (나머지 SSH 세션 복사를 피하려면)
4 단계 : 다시 마우스 오른쪽 버튼을 클릭하고 "클립 보드에 모두 복사"를 선택하십시오.

:%y a 모든 컨텐츠를 Vim의 버퍼에 넣고 누릅니다. p 명령 모드에서는 커서가 현재 서있는 줄 뒤에 Yanked 컨텐츠를 붙여 넣습니다.

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.

Bill Joy 's VI에는 "클립 보드"라는 개념이 없었으므로이를 내장하는 방법이 없다고 생각합니다.

GVIM의 자동 복사-하이라이트-클립 보드 기능은 가장 쉽거나 다음을 통해 외부 프로그램을 사용합니다.!

Cygwin의 VIM 용으로 사용합니다

:%!putclip
u

어쩌면 Ubuntu는 putclip과 같은 CLI 앱을 가지고 있습니까 ??

글쎄,이 모든 접근법은 흥미롭지 만 게으른 프로그래머로서 숫자 +를 조합하여 모든 라인을 사용합니다. y

예를 들어 총 78 줄의 소스 코드 파일이 있으므로 다음과 같이 수행 할 수 있습니다.

  1. gg 첫 번째 줄에서 커서를 얻으려면
  2. 78 +를 삽입하십시오 y -> 커서와 현재 라인 아래 78 줄

손가락이 기본적으로 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>.

VIM 또는 해당 탭 내부의 전체 파일을 복사하십시오.

y G 

그런 다음 탭으로 이동하여 붙여 넣습니다

p

그리고 전체 파일 사용을 잘라냅니다

d G

다음은 클립 보드를 사용하여 모든 것을 선택하는지도 명령입니다. CTRL 키+:

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

당신에 추가하십시오 .VIMRC 그리고 당신은 가기 좋다 ...

나는 이것에 대해 10 년 동안 해결되어야한다는 것을 알고 있지만 처음 두 가지 답변은 나에게 효과가 없어서 계속 파고 들었다. redhat (원격 서버) - Windows 10 (로컬 머신)에서 마우스로 모든 것을 선택할 수 없으면 평소 사본이 리모컨과 로컬 기계 클립 보드 사이에 작동하지 않기 때문에 갇혀 있습니다.

따라서 원격 리눅스를 복사하고 로컬 창에 붙여 넣으려면 기본 버퍼를 * 그리고 멋진 더블 얀크를하십시오

사용 gg" * 와이와이.

다음 줄을 내 .VIMRC에 추가했습니다

nnoremap <F5> :%y+<CR>

이를 통해 VIM의 모든 텍스트를 눌러 클립 보드에 복사 할 수 있습니다. F5 (명령 모드).

위의 답변을 사용하여 파일을 복사 할 수 없었지만 퍼티가 있고 Quora에서 해결 방법을 찾았습니다.

  1. 퍼티 세션의 설정을 변경하고 로깅으로 이동하여 "인쇄 가능한 문자"로 변경하십시오. 로그 파일을 설정하십시오
  2. 각 파일의 고양이를 수행하십시오
  3. 1 단계에서 설정 한 파일로 이동하면 로그 파일에 콘텐츠가 있습니다.

참고 : 해당 세션의 인쇄 된 문자를 로그 파일에 복사하므로 결국 커질 것입니다. 이 경우 로그 파일을 삭제하고 대상 파일을 삭제하여 해당 특정 파일의 컨텐츠를 컴퓨터에 복사하십시오.

이 작업을 수행 할 수있는 기능을 만들었습니다. ~/.vimrc.

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

OBS : Neovim을 사용하는 경우 Xclip과 같은 클립 보드 관리자도 필요합니다. Neovim의 자세한 정보 유형 :h checkhealth

항상 단순한 것은 아닙니다. y 모든 사본 피드를 만들기 위해 클립 보드에 복사합니다. + Wich는 "클립 보드 레지스터"입니다. :set clipboard=unnamed,unnamedplus. MOR 정보는 다음을 참조하십시오. :h unnamed.

여기 Vim Wikia에 대한 자세한 내용.

마우스 왼쪽 버튼을 클릭하고 복사 및 해제 할 섹션을 가로 질러 드래그합니다. 코드는 자동으로 클립 보드에 복사됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top