1

抱歉,如果这不完全是一个编程问题。

我主要使用 Vim 来编辑我的程序。所以我对所有 Vim 专家的问题是:

  1. 有没有办法在 Vim 中选择和滚动?我想复制一堆代码,在传递过程中,我总是复制我可以在 vim 屏幕上查看的所有内容,然后将其粘贴到任何地方,然后向下滚动,然后复制并粘贴..重复..直到完成。有没有办法可以有效地复制一大块代码?

  2. 格式化代码行——你知道当你复制和粘贴一些代码时,有时 10 行代码会变成 30 行非常混乱的代码吗?那么,有没有重新格式化代码的命令?在pass中,我手动返回并正确缩进所有当你得到500行时有时会超级重复的东西。我在其他网站上看到了有关命令的内容,1G = G有人可以确认吗?当我在命令行中尝试它时,我收到一个错误E464: ambiguous use of user-command line,我什至不知道这意味着什么。

我知道 Vim 中有一个帮助命令,但是当有 200 个 txt 文件之类的文件时,我什至不知道从哪里开始,坦率地说,这更快:)

4

3 回答 3

3

您的问题是关于 vi / Vim 的基本使用。帮自己一个忙,阅读 Vim 教程;你会在网上找到很多,而且 Vim 带有它自己的介绍vimtutor

在 Unix 上,如果 Vim 已正确安装,您可以从 shell 启动它:

导师

在 MS-Windows 上,您可以在 Program/Vim 菜单中找到它。或者执行 $VIMRUNTIME 目录下的 vimtutor.bat。

此外,学习如何查找命令和导航内置的:help; 它很全面,并提供了许多提示。你不会像其他编辑器那样快速学习 Vim,但如果你致力于持续学习,它将证明是一个非常强大和高效的编辑器。

于 2013-02-16T08:59:18.187 回答
2

vim 的方式是完全忘记使用鼠标进行的选择,而不是一屏,而是设置一个标记,移动到所需文本的另一端,然后拉动标记:

  1. 在文本开头设置标记 mmm
  2. 移动到文本末尾
  3. Yank 以标记y'm
  4. 粘贴Pp
于 2013-02-16T09:31:23.610 回答
1

+仅当您可以将寄存器用作剪贴板时,整个答案才有帮助。在vim中试试"+yy,在另一个应用程序中尝试粘贴,看看是否可以使用剪贴板,如果可以的话:

你真的应该阅读手册和其他帮助:
拉线(简单):http: //vim.wikia.com/wiki/Moving_lines_up_or_down
寻址 线:VIM
中的寻址 那就是开始。

您可以执行的操作的一些示例:
:.,+50y a从当前行拉出 50 行并提前 50 行注册 a,A而不是使用追加到注册 A。
:.,/some pattern/y A从当前行拉(追加)到匹配 /some pattern/ 的第一行注册 a。
"Ay/some pattern<CR>会做同样的事情。

一旦你学会了你应该如何寻址,就很容易将命令与寻址结合起来,例如“缩进命令” =
=}自动缩进到当前段落的末尾
=/some pattern<CR>自动缩进到行匹配/某些模式/
在可视模式下标记一些东西并输入=它会自动缩进选定的文本。

等等......所以阅读手册,你会很好地使用它。
在上面的示例中,您可以使用 register+而不是 register 来“拉”到剪贴板a

于 2013-02-16T01:21:10.973 回答