我在VIM中可以做些什么,我还不能在Visual Studio中做什么?

djm*_*jmc 16 vi vim visual-studio

我听说最少需要30天才能适应vi.我在第二天嘿嘿.现在,我似乎只是记忆我在Visual Studio中已经做过的事情的不同快捷方式(增量搜索,上一个/下一个词等).

到目前为止,最强大的方面似乎是结合命令的数字键(5*下一行),以及正常/插入模式的想法.

我想念Visual Studio有一些东西.按住Ctrl键单击鼠标进行快速复制和粘贴可能是最大的.

所以我不气馁,你们可以告诉我你在vi中经常做的一些在Visual Studio中无法完成的事情吗?它将帮助我专注于学习内容并帮助我养成更好的习惯.

tza*_*man 17

我将在这里留下这个SO答案的链接.

  • 联系的SO是这个网站的最高荣耀之一.它只提供了vi的一小部分的介绍(甚至不是vim,只是原来30岁的vi),但每个句子都显示出比大多数IDE更多的功能.当你将vi的固有能力与可用的扩展和插件结合起来时(Intellisense?是的,它就是这样),你就会到达仍然是最强大和最强大的开发环境之一. (8认同)

Jim*_*ows 11

VI意味着永远不必将手指从键盘上移开.


mwa*_*ker 6

在仅允许SSH访问的Solaris计算机上编辑文件.


jab*_*ali 6

请注意,我不使用Visual Studio,并且对其中的可用功能知之甚少.以下是我在Vim中发现有用的示例,而不是Visual Studio中缺少的功能列表.

为复杂(但重复)的操作创建宏很容易.举一个简单的例子来说明,我们先说:

Line1
Line2
Line3
Line4
Line5

现在我们想在print("");声明中包含每一行.
将光标放在第一行,然后输入:

  • qx 开始将宏记录到寄存器中 x
  • Shift+ I print(" Esc    在行的开头插入文本
  • Shift+ A "); Esc            在行尾添加文本
  • j 走下一条线
  • q 停止录制宏
  • 4@x在寄存器中执行宏x4次

有关:help complex-repeatVim宏的更多信息,请参阅.

文字对象

请注意,这是Vim对传统Vi的改进之一.如果它不起作用,您可能正在Vi兼容模式下运行; 用于:set nocompatible启用Vim的全部功能.

文本对象允许您轻松选择文本区域.假设我们从以下文本开始,将光标放在一些文本上:

<b><i>some text</i></b>

现在我们要删除<i>和之间的所有内容</i>.这可以通过简单地键入命令来完成dit(d "elete " nner 牛逼 "AG)!或者,如果我们想在我们的选择标签本身,使用dat(d "elete 一个 牛逼 " AG).要删除里面的一切<b>标签,使用d2it(d "elete 2   " nner 牛逼 "AGS).

您可以类似地使用daw(删除一个单词),dap(删除一个段落),di"(在双引号内删除)等; 请参阅:help text-objects完整列表.

另一个有用的文本对象示例:

v2ap"+y

  • v切换视觉模式.这样可以更轻松地查看您正在选择的内容,并允许您在执行命令之前通过一系列多个动作调整选择.
  • 2ap 选择这一段和下一段
  • "+ 选择系统剪贴板作为下一个操作的寄存器
  • y 将选择权移到给定的寄存器中

换句话说,该命令会将文本中的两个段落复制到系统剪贴板(例如,用于在StackOverflow中粘贴它们).

全局编辑
global命令用于将Ex命令应用于与给定正则表达式匹配的所有行.例子:

  • :global/test/print或者:g/test/p将打印包含短语test的所有行
  • :global/test/delete:g/test/d将删除所述行
  • :global/test/substitute/^/#/或者:g/test/s/^/#/搜索包含短语test的行,并通过^用符号替换regexp锚点(行首)来注释掉它们#.

您也可以通过传递搜索动作/pattern?pattern作为范围来做一些很酷的事情:

  • :?test?move .向后搜索包含测试的行,并将其移动到文件中的当前位置
  • :/test/copy .向前搜索包含测试的行,并将其复制到文件中的当前位置

祝你好运,学习Vim吧!


Ami*_*hum 5

这篇文章使我开始使用Vim,而我从没有回头:

http://www.viemu.com/a-why-vi-vim.html

它在Vim的功能方面有一些很好的例子。


twe*_*erq 2

Visual Studio 的正则表达式有点像米老鼠。Vim 拥有触手可及的完整 POSIX 正则表达式语言。

  • @unclebrad,我每天多次使用正则表达式搜索。 (2认同)