有什么方法可以在VI编辑器中将所有行从打开的文件复制到剪贴板。我试过了,yG但是没有使用剪贴板存储这些行。
那有可能吗?
有什么方法可以在VI编辑器中将所有行从打开的文件复制到剪贴板。我试过了,yG但是没有使用剪贴板存储这些行。
那有可能吗?
Answers:
"
。
:version
在vim中运行,然后查找该+xterm_clipboard
标志。如果它前面带有减号,则您将没有此功能。在这种情况下,您可能需要自己编译vim或运行通常启用了此功能的gvim。
: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
会话进行。
在Ubuntu 12上
您可以尝试安装该vim-gnome
软件包:
sudo apt-get install vim-gnome
我尝试了此操作,因为它vim --version
告诉我它将禁用xterm_clipboard标志(由-表示-),这是使用剪贴板功能所必需的。
-> 在Ubuntu 12上安装vim-gnome软件包还安装了基于控制台的vim版本,该版本启用了此选项(在xterm_clipboard标志之前用+表示)
在Arch Linux上
您可能vim-clipboard
出于同样的原因进行安装。
如果您运行neovim,则应安装xclip
(如所述help clipboard-tool
)
如果在可视模式下使用Vim,则至少在Windows中也适用标准的剪切和粘贴键。
至少在Ubuntu终端(Gnome)下,标准副本也可以使用(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>
。
要将整个文件复制到vim或其选项卡中
y G
然后移至标签并粘贴
p
并减少整个文件的使用
d G
我知道十年应该解决,但是前两个答案对我没有用,所以我一直在研究。在Redhat(远程服务器)-Windows 10(本地计算机)上,如果无法用鼠标选择整个对象,则会卡住,因为通常的副本在远程和本地计算机剪贴板之间不起作用。
因此,要在远程Linux上复制并粘贴在本地Windows上,请使用 *并进行两次不错的操作
使用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
。有关更多信息,请参见::h unnamed
。
这里有更多关于vim wikia的信息。