我听说最少需要30天才能适应vi。我在第二天嘿嘿。现在,我似乎只是记住我在Visual Studio中已经做过的事情的不同快捷方式(增量搜索,上一个/下一个词等)。
到目前为止,最强大的方面似乎是结合命令的数字键(5 *下一行),以及正常/插入模式的想法。
Visual Studio有一些我想念的东西。按住Ctrl键单击鼠标进行快速复制和粘贴可能是最大的。
所以我不会气馁,你们可以告诉我你在vi中经常做的一些在Visual Studio中无法完成的事情吗?它将帮助我专注于学习内容并帮助我养成更好的习惯。
答案 0 :(得分:16)
我会在这里留下this SO answer的链接。
答案 1 :(得分:10)
VI意味着永远不必将手指从键盘上移开。
答案 2 :(得分:5)
在仅允许SSH访问的Solaris计算机上编辑文件。
答案 3 :(得分:5)
请注意,我不使用Visual Studio,并且对其中的可用功能知之甚少。以下是我在Vim中发现有用的示例,而不是Visual Studio中缺少的功能列表。
<强>宏强>
为复杂(但重复)操作创建宏很容易。举一个简单的例子来说明,我们先说:
Line1
Line2
Line3
Line4
Line5
现在我们想用print("");
语句包围每一行
将光标放在第一行,然后输入:
qx
开始将宏录制到注册x
print("
Esc 在行首插入文字");
Esc 在行末附加文字j
向下一行q
停止录制宏4@x
执行4次注册x
中的宏有关Vim宏的详细信息,请参阅:help complex-repeat
。
文字对象
请注意,这是Vim对传统Vi的改进之一。如果它不起作用,您可能正在Vi兼容模式下运行;使用:set nocompatible
启用Vim的全部功能。
文本对象可让您轻松选择文本区域。假设我们从以下文本开始,将光标放在某些文本上:
<b><i>some text</i></b>
现在我们要删除<i>
和</i>
之间的所有内容。只需输入命令dit
( d 'elete i 'nner t 'ag)即可完成此操作!或者,如果我们想在我们的选择中包含标记本身,请使用dat
( d 'elete a t 'ag)。要删除<b>
代码中的所有内容,请使用d2it
( d 'elete 两个 我'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 anchor ^
(行首)来注释掉它们)使用符号#
。您还可以将搜索动作/pattern
或?pattern
作为范围传递来做一些很酷的事情:
:?test?move .
向后搜索包含 test 的行,并将其移至文件中的当前位置:/test/copy .
向前搜索包含 test 的行,并将其复制到文件中的当前位置祝你好运并学习Vim!
答案 4 :(得分:4)
答案 5 :(得分:2)
使用屏幕在通过ssh访问的远程计算机上运行会话
答案 6 :(得分:1)
Visual Studio正则表达式有点像米老鼠。 Vim拥有完整的POSIX正则表达式语言,触手可及。
答案 7 :(得分:1)
据我所知(在Visual C#express 2010中)ctrl-click只选择你点击的任何单词。要在VIM中执行相同操作,可以将yank命令与移动命令结合使用。
所以你按“y”表示猛拉(复制),然后按“e”或“w”复制到单词的末尾。
答案 8 :(得分:1)
存在很多差异。
我建议您在http://vimcasts.org/观看一些截屏视频,以了解vim的强大功能。
e.g:
答案 9 :(得分:1)
您可以随时使用Visual Studio的Vim模拟器/附加组件,并获得vim与VS功能混合的一些功能。如果您已经在使用Visual Studio,我假设您使用的是.NET语言,没有VS,使用起来会更加痛苦。
答案 10 :(得分:0)
Vim Essentials是一套不错的幻灯片。
就我个人而言,很久以前我习惯了vi,当时我们在学生的Unix终端上没有鼠标的奢侈品。从那以后,我使用vi / vim来编写电子邮件的安全性。
到目前为止,我可能只使用了1/20的命令,但从未觉得需要用另一个文本编辑器编写代码,而在IDE中使用鼠标感觉非常笨拙我
使用高级和富有表现力的语言,不需要IDE(主要是python,sql,javascript)真的有帮助。我认为使用Java或C ++不会那么容易。
编码时不必移动并指向鼠标(使用浏览器是安全的)也有助于防止腕管综合症。
顺便说一句,我认为Vim与Unix在Windows上的整合程度要高于Windows ......并且说30分钟有点乐观:)答案 11 :(得分:0)
通过SSH编辑文档。 Vim非常好。
编辑:看起来很多人已经说过了:)
答案 12 :(得分:-1)
teco是你的答案。你只需要一台PDP-10和一架ASR-33就可以了!