2013-02-16 112 views
1

对不起,如果这不完全是一个编程问题。一些简单的vim命令

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

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

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

我不知道有是Vim help命令,但我不知道在哪里时,有像200 txt文件甚至开始坦白地说,这是快:)

回答

1

这整个的答案是只有当您可以使用寄存器+作为剪贴板时才有用。在VIM尝试"+yy,尝试将它粘贴到另一个应用程序,看看您是否可以使用剪贴板,如果可以的话:

你真的应该阅读手册和其他帮助:
要拷贝线(简单):http://vim.wikia.com/wiki/Moving_lines_up_or_down
要寻址的行:Addressing in VIM
这就是开始。

的你可以做什么的一些例子:
:.,+50y a猛拉从目前的50线和50提前注册一个,使用A,而不是将追加到寄存器A.从目前的以匹配第一线
:.,/some pattern/y A抽出(追加) /某种模式/注册一个。
"Ay/some pattern<CR>将做同样的事情。一旦你了解了你应该如何处理,很容易将命令与寻址结合起来,例如,在“缩进命令” =
=}自动缩进到当前段落的结尾
=/some pattern<CR>自动缩进到线匹配/一些模式/
在可视模式马克的东西,然后键入=它会自动缩进选定的文本。

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

1

对于没有它retabbing文本Vim粘贴,尽量

:set paste 

粘贴之前。使用:set nopaste将其关闭。

此外,请确保您粘贴在insert mode

如果您正在寻找先进的VIM命令,那么我的blog post可能会有所帮助。

+1

定义'set pastetoggle = ',然后切换粘贴模式与''是非常有用的(或任何关键)。你可以切换到所有模式。 – 244an 2013-02-16 01:32:29

3

你的问题是关于vi/Vim的基本使用。帮你一个忙,并通过一个Vim教程;你会在网上找到很多,而Vim自带的介绍,vimtutor

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

VIMTUTOR

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

另外,学习如何查找命令并导航内置的:help;它是全面的,并提供许多技巧。你不会像其他编辑一样学习Vim,但如果你承诺不断学习,它将证明它是一个非常强大和高效的编辑器。

2

Vim的方式是使用鼠标超过一屏完全忘记选择,但是设置一个标记,移动到所需文本的另一端,然后抽出来标记:

  1. 集标记米在文本的开头与mm
  2. 移动到文本
  3. 的端
  4. 扬克来标记与y'm
  5. 粘贴与Pp