我想从vim编辑器中选择所有文本,我尝试了:%y+
命令,但收到错误E850: Invalid register name
。我从this link得到了这个命令。请帮我如何复制vim中打开的文件中的所有文本。他们正在使用猛拉,这是什么意思..
答案 0 :(得分:15)
我有类似的问题。不知道你为什么得到这么多的选票。
问题是您尚未安装let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "Session")
fetchRequest.returnsObjectsAsFaults = false
do
{
var session = try managedContext.executeFetchRequest(fetchRequest) as! [Session]
managedContext.deleteObject(session.first!)
if session.first!.deleted {
print("Succesfully deleted")
print(session.count)
}
else {
print("Unsuccesfull")
}
} catch {
print("Detele error : \(error)")
}
,大约需要24 MB,并为内置的vim添加了一项功能。
vim-gnome
那么你的命令就可以了。 sudo apt-get install vim-gnome
此命令将复制系统剪贴板中的所有文本。
答案 1 :(得分:6)
TLDR:如果要将Vim中的文本复制到系统剪贴板类型 g g V G < / kbd> “ * y 。以下说明......
Vim在终端中运行,根据您使用它的方式以及您正在运行的Vim类型,它并不是真的为您设计用鼠标选择文本并以传统方式复制和粘贴。
如果要使用Vim选择所有文本,请使用 g g V G y (注意中间的大写 V G )。此命令将光标移动到文件的顶部,进入可视模式,移动到文件的底部(因此,选择所有文本),然后猛拉(复制)它。然后,您可以使用 p 来放置(粘贴)此代码,但仅限于Vim 。
如果要复制到剪贴板以便在Vim以外的某个地方使用,请尝试以下操作:
首先,使用上面列出的命令选择所有内容但没有最终的 y :( g g < KBD> V )。然后按“ * y 。这个应该现在将它复制到操作系统的剪贴板中,你可以粘贴( Ctrl / Cmd + v )你想在Vim之外的任何地方。这可能会有所不同,具体取决于你对Vim的设置,但它应该有效。
所用命令的简要说明。 g g 转到文件的顶部。 V 按行进入视觉模式。 G 转到文件末尾。 y 将文本拉出(复制)但不到剪贴板。 p 放置(粘贴)文本。
更高级(即很酷)的东西:
“允许您访问寄存器。例如” a 提供对寄存器a的访问。
*
是系统剪贴板,因此"*
提供对系统键盘的访问权限。因此,"*y
会进入系统剪贴板。
答案 2 :(得分:2)
虽然对于如何在vim中exploit the system clipboard有一个很好的解释,但听起来你只是让你的vim首先访问剪贴板。尝试安装vim-gnome,它会为您提供进入系统剪贴板所需的软件包。
出于某种原因,“*对我来说不起作用,但与”+ register“完全相同的命令。
答案 3 :(得分:1)
要选择整个文件,您可以跳转到开头,启动可视模式,跳转到结尾:
ggVG
答案 4 :(得分:0)
这个问题现在已经有几年了,但我在Linux Mint 18上遇到了同样的问题。我发现使用xclip
为我工作了。您可以在.vimrc中映射命令vmap <F7> :!xclip -sel c<CR><CR>
,以便将当前选择的可视模式复制到系统剪贴板中。
Here是一个包含上述(和其他)解决方案的线程。
答案 5 :(得分:0)
您可以使用
Vggy / vggy或
VGy / VGy
要直观地选择任意数量的文本然后进行复制,如果要在文件中显示所有文本,则为gg / G,
gg将在光标位于文件底部时进行复制,gg会返回顶部
G将在光标位于文件顶部时进行复制
或者甚至您可以随时使用
Vk(以时间为单位)y,以复制选定的文本行。