如何选择所有并在vim中复制?

时间:2013-03-25 08:07:38

标签: vim

如何选择全部并在vim插入模式下复制?还有另一种方法可以在正常模式下进行吗?

我尝试过视觉模式和gg并使用shift + gg来选择所有然后然后猛拉,但是这并没有将它传输到剪贴板,以便能够将其粘贴到另一个应用程序中,如skype或chrome浏览器。

我确信这是一项常见的任务,而且我的智能手机比我更多,请随时与我分享。

4 个答案:

答案 0 :(得分:27)

在正常模式下:

+ ý

在ex模式中:

:%y+

答案 1 :(得分:13)

您的问题中缺少一些重要信息:

  • $ vim --version的输出?
  • OS?
  • CLI或GUI?
  • 本地还是远程?
  • 你使用tmux吗?屏幕?

如果您的Vim是使用剪贴板支持构建的,那么您应该在正常模式下使用这样的剪贴板寄存器:

gg"+yG

如果您的Vim没有剪贴板支持,您可以设法通过其他程序将文本从Vim复制到您的操作系统剪贴板。这很大程度上取决于你的操作系统,但你没有说它是什么所以我们无法提供帮助。

但是,如果您的Vim瘫痪,最好的办法是安装一个带剪贴板支持的正确版本,但我无法告诉您是怎么回事,因为我不知道您使用的操作系统。

修改

在基于debian的系统上,以下命令将使用clipboard,ruby,python ... support安装一个合适的Vim。

$ sudo apt-get install vim-gnome

答案 2 :(得分:5)

@swpd's回答改进了

我使用 , 作为领导者密钥,而 ,a 快捷方式可以解决问题

如果您更喜欢 ,a 快捷方式

,请添加此行
map <Leader>a :%y+<CR> 

我使用 Ctrl y 快捷方式复制

vmap <C-y> y:call system("xclip -i -selection clipboard", getreg("\""))<CR>:call system("xclip -i", getreg("\""))<CR>

,v 以粘贴

nmap <Leader>v :call setreg("\"",system("xclip -o -selection clipboard"))<CR>p

在使用之前,您必须安装 xclip

$ sudo apt-get install xclip

修改:当您使用:%y+时,它只能粘贴到Vim vim Ctrl+Insert快捷方式。 和

map <C-a> :%y+<Esc>

与我的Vimrc中的任何设置都没有冲突。

答案 3 :(得分:0)

ggVG 

将从头到尾选择