抱歉,如果这不是一个编程问题。
我主要使用Vim来编辑我的程序。所以我对所有Vim专家的问题是:
有没有办法在Vim中选择和滚动?我想要复制一堆代码,并且在传递中我总是复制我在vim屏幕上可以查看的所有内容然后将其粘贴到任何地方,然后向下滚动然后复制并粘贴..重复...完成。有没有办法可以有效地复制大块代码?
格式化代码行 - 你知道当你复制并粘贴一些代码时,10行代码变成了30行代码真正凌乱吗?那么,是否有重新格式化代码的命令?在通行证中,我手动返回并正确缩进所有有时候当你有500行时超重复的东西。我在其他网站上看到有关命令为1G = G
的某些人可以确认吗?当我在命令行中尝试它时,我收到一个错误E464: ambiguous use of user-command line
,我不知道这意味着什么。
我知道Vim中有一个帮助命令,但我不知道在有200个txt文件之类的地方甚至可以启动,坦率地说这更快:)
答案 0 :(得分:3)
您的问题与vi / Vim的基本用法有关。帮自己一个忙,并通过Vim教程;你会在网上找到很多,而Vim附带了它自己的介绍, vimtutor 。
在Unix上,如果已经正确安装了Vim,你可以从shell启动它:
VIMTUTOR
在MS-Windows上,您可以在Program / Vim菜单中找到它。或者执行 $ VIMRUNTIME目录中的vimtutor.bat。
另外,了解如何查找命令并导航内置:help
;它是全面的,并提供了许多提示。你不会像其他编辑那样快速学习Vim,但如果你致力于不断学习,那么它将成为一个非常强大和高效的编辑器。
答案 1 :(得分:2)
vim的方法是完全忘记使用鼠标选择超过一个屏幕,但要设置标记,移动到所需文本的另一端,然后猛拉到标记:
mm
y'm
P
或p
答案 2 :(得分:1)
如果您可以使用注册+
作为剪贴板,那么整个答案才有用。在VIM中尝试"+yy
,尝试将其粘贴到另一个应用程序中,看看是否可以使用剪贴板,如果可以的话:
您应该阅读手册和其他帮助:
划线(简单):http://vim.wikia.com/wiki/Moving_lines_up_or_down
解决问题:Addressing in VIM
那就是开始。
您可以做的一些例子:
:.,+50y a
从当前的50行开始,向前50次注册a,使用A
代替附加到注册A.
:.,/some pattern/y A
从当前到第一行匹配/某些模式/注册a。()
"Ay/some pattern<CR>
会做同样的事情。
一旦你学会了如何处理,就很容易将命令与寻址结合起来,例如: “缩进命令”=
:
=}
自动缩进到当前段落的结尾
=/some pattern<CR>
自动缩进到行匹配/某些模式/
在可视模式下标记某些内容并键入=
它将自动缩进所选文本。
等等......所以阅读手册,你会很好地利用它
在上面的示例中,您可以使用注册+
来“拉”到剪贴板而不是注册a
。
答案 3 :(得分:1)
如果没有重新粘贴文本而粘贴在VIM中,请尝试
:set paste
在粘贴之前。
使用:set nopaste
将其关闭。
另外,请务必粘贴insert mode
。
如果您正在寻找高级VIM命令,那么我的blog post可能有帮助。