Programing

모든 줄을 클립 보드에 복사

lottogame 2020. 2. 12. 07:56
반응형

모든 줄을 클립 보드에 복사


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

그래서 가능합니까?


텍스트를 등록* 하거나 + 등록해야합니다 .

gg"*yG

설명:

  • gg 커서를 파일의 첫 문자로 가져 오기
  • "*y*첫 번째 줄부터 레지스터에 대한 yank 명령을 시작할 때까지 ...
  • G 파일의 끝으로 이동

사용하다:

:%y+

모든 줄을 잡아 당기기 위해

설명:

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

NB :에 윈도우, +그리고 *동일은 이 답변을 참조 .


Mac에서

  • 선택한 부분 복사 : 텍스트를 시각적으로 선택하고 (유형 v또는 V일반 모드) 유형:w !pbcopy

  • 전체 파일을 복사 :%w !pbcopy

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


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

따라서 gg"+yG전체 파일을 복사합니다.

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


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


이것이 전체 파일을 잡아 당기는 것입니다.

ggVGy

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


(@rshdev에 대한 답변으로 OP에 대한 의견에서 @nelstrom 당 + xterm_clipboard로 vim을 다시 컴파일하지 않아도 됨)

우분투 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 ( -로 표시)가 비활성화 되었다고 말했기 때문에 시도했습니다 .

-> 우분투 12에 vim-gnome 패키지를 설치하면 vim 의 콘솔 기반 버전도 설치 되었으며이 옵션이 활성화되어 있습니다 ( xterm_clipboard 플래그 앞에 +로 표시)

아치 리눅스에서

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


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

  • CTRLA "전체 파일을 표시하십시오.
  • CTRLC "선택 내용 복사."
  • ESC "선택 해제, 다음 키를 눌러도 전체 파일이 대체되지 않습니다 :-)

적어도 우분투 터미널 (그놈)에서 표준 사본도 (작동 CTRLSHIFTC을위한 표준 키보드 바로 가기가있을 나타나지 않지만, select all이외 ( ALTE다음 A).


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


사람들이 위에서 언급 한 몇 가지 명령을 시도했습니다. 아무도 효과가 없었습니다. 그런 다음 나는 가장 간단한 것을 잡았습니다.

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


:%y a모든 내용을 vim의 버퍼에 p넣습니다. 명령 모드에서을 누르면 커서가 현재 서있는 줄 뒤에 붙잡힌 내용이 붙여집니다.


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.

글쎄,이 모든 접근 방식은 흥미 롭지 만 게으른 프로그래머로서 나는 숫자 +의 조합을 사용하여 모든 줄을 사용합니다. y

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

  1. gg 첫 줄에 커서를 갖다
  2. 삽입 78 + y-> 커서와 현재 줄 아래 78 줄을 잡아 당깁니다.

Bill Joy의 vi에는 "클립 보드"라는 개념이 없었기 때문에 빌트인 방법이 없다고 생각합니다.

gVim의 자동 복사 기능-클립 보드로 강조 표시 기능이 가장 편리하거나 다음을 통해 외부 프로그램을 사용하십시오.

Cygwin의 vim에는

:%!putclip
u

어쩌면 우분투에는 putclip과 같은 CLI 앱이 있습니까?


손가락이 기본으로 설정된 경우 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+를 사용하여 클립 보드에 모두를 선택하는 맵 명령입니다 a.

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

.vimrc에 추가하면 좋습니다.


나는 이것에 대해 10 년이 해결되어야한다는 것을 알고 있지만 처음 두 가지 대답은 나에게 도움이되지 않아 계속 파고 들었습니다. Redhat (원격 서버)-Windows 10 (로컬 시스템)에서 마우스로 모든 것을 선택할 수없는 경우, 원격 사본과 로컬 머신 클립 보드 사이에서 일반적인 사본이 작동하지 않기 때문에 문제가 발생합니다.

따라서 원격 Linux에서 복사하고 로컬 Windows에서 붙여 넣으려면 기본 버퍼를 지정하고 *멋진 이중 k 크를 수행하십시오.

사용하십시오 gg" * yy.


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

nnoremap <F5> :%y+<CR>

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


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

  1. PuTTY 세션의 설정을 변경하고 로깅으로 이동하여 "인쇄 가능한 문자"로 변경하십시오. 로그 파일 설정
  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모든 복사 피드 +를 "클립 보드 레지스터"로 설정 하기 위해 항상 간단한 클립 보드로 복사 하는 것은 아니라는 점을 언급하는 것도 중요합니다 :set clipboard=unnamed,unnamedplus. mor 정보는 다음을 참조하십시오 :h unnamed..

여기 에 vim wikia에 대한 자세한 정보가 있습니다.


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

참고 URL : https://stackoverflow.com/questions/1620018/copy-all-the-lines-to-clipboard



반응형