VI 편집기에서 열린 파일의 모든 줄을 클립 보드로 복사하는 방법이 있습니까? 시도 yG했지만 클립 보드를 사용하여 해당 줄을 저장하지 않습니다.
그래서 가능합니까?
VI 편집기에서 열린 파일의 모든 줄을 클립 보드로 복사하는 방법이 있습니까? 시도 yG했지만 클립 보드를 사용하여 해당 줄을 저장하지 않습니다.
그래서 가능합니까?
답변:
gg"*yG
설명:
gg
커서를 파일의 첫 문자로 가져 오기"*y
*
첫 번째 줄부터 레지스터에 대한 yank 명령을 시작할 때까지 ...G
파일의 끝으로 이동"
.
:version
vim을 실행 하고 +xterm_clipboard
플래그를 찾으십시오 . 앞에 빼기 부호가 있으면이 기능이없는 것입니다. 이 경우 vim을 직접 컴파일하거나 일반적으로이 기능이 활성화 된 gvim을 실행하십시오.
사용하다:
:%y+
모든 줄을 잡아 당기십시오.
설명:
%
모든 줄에서 작동하도록 다음 명령을 참조하십시오.y
그 줄을 잡아 당기다+
시스템 클립 보드에 복사NB :에 윈도우, +
그리고 *
동일은 이 답변을 참조 .
:help
실제로 vim 상태인지 확인하려면 입력하십시오 .
set clipboard=unnamed
했지만, 이것은 훌륭하게 작동했습니다!
E850: Invalid register name
:(
Mac에서
선택한 부분 복사 : 텍스트를 시각적으로 선택하고 (유형 v
또는 V
일반 모드) 유형:w !pbcopy
전체 파일을 복사 :%w !pbcopy
클립 보드에서 과거 :r !pbpaste
pbcopy
는 Mac 유틸리티입니다. Linux에서는 xsel
대신 또는 clip
Windows에서 작동 할 수 있습니다 .
:%w !pbcopy
파일이 터미널의 높이보다 길면 @SridharSarnobat가 여전히 작동합니다.
VI 사용에 문제가있는 경우 전체 파일을 복사하는 또 다른 쉬운 방법은 "cat filename"을 입력하는 것입니다. 파일을 화면에 에코 한 다음 위아래로 스크롤하여 복사 / 붙여 넣기 만하면됩니다.
:!cat %
.. Mac OS에서 클립 보드에 프로그래밍 방식으로 파일 내용을 복사하려면 ::!cat % | pbcopy
이것이 전체 파일을 잡아 당기는 것입니다.
ggVGy
clipboard
텍스트를 복사하도록 설정 했다면 +
.
"cat"명령을 사용하여 파일을 열고 마우스를 사용하여 복사 할 수 있습니다
reset
미리 터미널을 선택한 다음 모두를 선택하고 복사하십시오. 이것은 ssh
세션을 통해 작동합니다 .
우분투 12
vim-gnome
패키지 를 설치하려고 할 수 있습니다 .
sudo apt-get install vim-gnome
때문에 나는 그것을 시도 vim --version
는 플래그가 거라고 말했다 xterm_clipboard가 비활성화 (로 표시 -클립 보드 기능을 사용하는 데 필요한 .
-> 우분투 12에 vim-gnome 패키지를 설치하면 vim 의 콘솔 기반 버전도 설치 되었으며이 옵션이 활성화되어 있습니다 ( xterm_clipboard 플래그 앞에 +로 표시)
아치 리눅스에서
vim-clipboard
같은 이유로 설치할 수 있습니다 .
neovim을 실행하는 경우 xclip
(에 설명 된대로 help clipboard-tool
) 설치해야합니다
비주얼 모드에서 Vim을 사용하는 경우 최소한 Windows에서는 표준 잘라 내기 및 붙여 넣기 키도 적용됩니다.
적어도 우분투 터미널 (그놈)에서 표준 사본도 (작동 CTRLSHIFTC을위한 표준 키보드 바로 가기가있을 나타나지 않지만, select all
이외 ( ALTE다음 A).
사람들이 위에서 언급 한 몇 가지 명령을 시도했습니다. 아무도 효과가 없었습니다. 그런 다음 나는 가장 간단한 것을 잡았습니다.
1 단계 : vi <filename>
2 단계 : Putty 창의 제목 표시 줄을 마우스 오른쪽 버튼으로 클릭합니다.
3 단계 : 나머지 SSH 세션을 복사하지 않으려면 "스크롤 백 지우기"를 선택합니다
. 4 단계 : 마우스 오른쪽 버튼을 다시 클릭하고 "클립 보드에 모두 복사"를 선택합니다.
Window > Settings > lines of scrollback
를 40000 으로 늘려야 했습니다 (제목 표시 줄을 마우스 오른쪽 버튼으로 클릭하여 사용 가능). cat
모든 텍스트를 스크롤하기 때문에 vi 대신 사용 하는 것도 도움 이됩니다.
: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.
손가락이 기본으로 설정된 경우 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>
.
나는 이것에 대해 10 년이 해결되어야한다는 것을 알고 있지만 처음 두 가지 대답은 나에게 도움이되지 않아 계속 파고 들었다. Redhat (원격 서버)-Windows 10 (로컬 컴퓨터)에서 마우스로 모든 것을 선택할 수없는 경우 원격 복사와 로컬 컴퓨터 클립 보드간에 일반 사본이 작동하지 않기 때문에 문제가 발생합니다.
따라서 원격 Linux에서 복사하고 로컬 Windows에 붙여 넣으려면 기본 버퍼를 지정하고 *멋진 이중 k 크를 수행하십시오.
사용하십시오 gg" * yy.
이 작업을 수행하는 기능을 만들었습니다 ~/.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에 대한 자세한 정보가 있습니다.
마우스 왼쪽 버튼을 클릭하고 복사 및 해제하려는 섹션을 드래그하십시오. 코드가 자동으로 클립 보드에 복사됩니다.
vi
방법이 아님).