如何在vim中进行全选和复制?

c0vxltue  于 2022-11-11  发布在  其他
关注(0)|答案(6)|浏览(293)

如何在vim插入模式下选择所有并复制?2在正常模式下有没有其他方法可以做到?
我尝试过视觉模式和gg和shift + gg来选择所有,然后猛拉,但这并不转移到剪贴板,能够粘贴到另一个应用程序,如skype或铬浏览器。
我相信这是一个共同的任务,有很多品种由聪明的ppl比我在那里,请随时分享你的。

vsikbqxv

vsikbqxv1#

在正常模式下:
gg”+yG
在Ex模式下:
:%y+

sshcrbum

sshcrbum2#

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

  • $ vim --version的输出?
  • 操作系统?
  • 命令行界面还是图形用户界面?
  • 本地还是远程?
  • 你用tmux吗?screen?

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

gg"+yG

如果你的Vim不支持剪贴板,你可以通过其他程序将文本从Vim复制到你的操作系统剪贴板。这在很大程度上取决于你的操作系统,但是 * 你没有说它是什么 * 所以我们真的帮不上忙。
然而,如果你的Vim是残废的,最好的办法是安装一个适当的构建与剪贴板支持,但我不能告诉你,因为 * 我不知道你使用什么操作系统.*

编辑

在基于debian的系统上,以下命令将安装一个支持剪贴板、ruby、python...的Vim。

$ sudo apt-get install vim-gnome
oyxsuwqo

oyxsuwqo3#

@社署的答复有所改善
我使用**,作为引出线键,,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中的任何设置都不冲突。

0kjbasz6

0kjbasz64#

ggVG

我将从头到尾选择

u7up0aaq

u7up0aaq5#

如果你只是想要一个简单的方法从终端内部复制文件内容(你提到了“复制文本到另一个应用程序”),那么cat命令很容易选择/复制输出:
cat <filename>

mfuanj7w

mfuanj7w6#

对于VS Code + vim,您可以:

"vim.useSystemClipboard": true,

然后再

ggVGy
  • gg -转到文件开头
  • V(大写)-启动逐行视觉模式
  • G(大写)-转到文件结尾
  • y -猛拉(副本)

这对我来说适用于Ubuntu 22.04和Windows 11中的应用程序。
gg"+yG更正确,因为它显式地指向剪贴板(而不是vim寄存器),但是"vim.useSystemClipboard": true, + ggVGy似乎可以跨应用程序工作,所以我使用它,因为它更容易输入。
顺便说一句。如果使用VS代码+ vim,则

"vim.useCtrlKeys": false,

允许使用Ctrl+A

相关问题