上世纪90年代后期出现了一股.com热潮,相信大家对其都有美好的回忆,那时使用CGI和Perl创建“动态的”网站,通过使用在Unix上的vi编辑器快速打字和格式化,这也包括后来使用的vi的复制版本vim。我可能是怀旧的,但我想念将这些编辑器放在我指尖的能力(不是伸手去拿鼠标)。几年之前,我被我购买的MacBook再一次引入到vim, 通过进一步研究,我发现了 VsVim ,这是vim的改编版本,与Visual Studio IDE一起工作。让我们仔细来看一下VsVim以及其是如何能使您更加富有成效的进行开发工作。

编辑器

开发人员有时是一个忠实的群体,他们有时总是将喜爱的文本编辑器看成像他们的家庭成员一样。如果您不相信我,那么就问一下专家级别的开发人员,他们喜爱的文本编辑器是什么,他们会讲出一大堆相关的理论。 像gedit 、 GNU Emacs、 UltraEdit 、 TextPad、 Notepad++ ,这些都是较流行的开发编辑器。此外,还有针对Mac用户的 TextMate 以及在所有的微软windows操作系统上适用的Notepad。(我并没有故意地遗漏您喜爱的编辑器;我只是不知道现有的所有的编辑器,而且我确信您喜爱的编辑器能够很好地满足您的需求。)我用过TextPad, TextMate,在必要时使用Notepad,同时还发现了vim和将其与Visual Studio结合形成的VsVim。

Vim 和 VsVim学习资源

Vim 和 VsVim 是需要后天学习的,因此不要期望一夜之间成为大师。有很多在线的资源助您更加熟悉vim的功能;例如, vim wiki 页面 有包括  该教程 的非常好的资料, vim FAQ 也是一个优秀的资源。

通过消除敲击键盘和点击鼠标,一个好的编辑器可以节约您的时间,但这是一个见仁见智的问题,因为有些开发人员更喜欢使用鼠标。对我来说,我更喜欢敲击几个键完成常规的任务。

获得VsVim

VsVim是Visual Studio扩展,因此我将通过指出您需要Visual Studio使用它来陈述这样显而易见的事。 VsVim 由 Visual Studio 件库 提供。此外,如果您对其发展的贡献感兴趣或者对编码感到好奇的话,其是在 GitHub 上的一个工程项目。编码/项目是有趣的;其大量是以F#编写的,我发现这是令人惊讶的。

按照由Visual Studio 件库提供的安装说明书。安装过程识别在我计算机上的Visual Studio的两个版本 (2010和 2012), 同时其允许我选择一个或两个用于扩展。扩展由工具菜单控制 (工具| 在Visual Studio 2012及工具中的扩展和更新|在Visual Studio 2010中的扩展管理器)。

图 A 显示了在我的开发用计算机上的针对Visual Studio 2012旗舰版的已装入的扩展。注意如果您想要关闭扩展时其提供了禁用按钮— 同时可以通过Ctrl+Shift+F12键在Visual Studio中实现禁用/启用。

图A

在Visual Studio 2012中的已装入的扩展的列表。

安装VsVim之后,您现在具有使用其快捷键绑定设置完成某些特定任务的选择。这些绑定是可配置的,因为您可能会想要使用固有的功能用于某些键,这些键与vim 替换截然相反。当VsVim安装时,出现 图B 中显示的选项按钮。 当选项按钮被选中的时候会显示 图C 中的选项窗口。 当VsVim首次在我的计算机上安装时, 在代码窗口出现 如图 D 显示的信息 — 其主要是告知我在Visual Studio和VsVim之间有键盘绑定冲突,其想要让我进入选项窗口以解决这些冲突。选项窗口局限于在VsVim扩展和其Visual Studio主机之间的键盘绑定重叠部分。

图B

选项按钮 (右下角)允许您配置VsVim 键盘绑定。

图 C

VsVim键盘绑定通过VsVim选项窗口可以配置。

图 D

当安装VsVim时在Visual Studio 2012中出现的键盘绑定冲突。

活用VsVim

一旦安装了VsVim,您就可以使用不同键完成在您的代码中的任务。我经常使用的一个按键是斜杠键 (/)用于搜索。 您只需要敲字/跟着搜索文字,点击返回即可。当发现匹配时,光标移动到第一个实例处。

同时,我喜欢导航快捷键像是w来向前移动一个单词,b向后移动一个单词。使用在键盘(标准的asdf jkl;配置)上的右手,您可以简单地使用j向下移动文本,k用于向上移动,h向左,l向右。(l表示向左的话一般会讲得通,但是考虑到手指放置方面其是非常有效的。)

这只是VsVim用法的冰山一角,但其确实向您显示了像大多数文本编辑器提供的基本要素。您应该仔细地看一下先前提到的资源(wiki、 FAQ 以及教程) 来深入挖掘VsVim的功能。

结束语

该博文清楚地传达了我对vim和VsVim的喜爱,但其同时也说明了较旧的(有人认为对用户不是很友好)编码/编辑方法可以与较新的工具结合形成强大的混合的事实。这就是说,您可能不喜欢vim而钟爱Emacs,因此看一下 其 Visual Studio扩展 。如果对您喜爱的编辑器没有适用的扩展,您可以为Visual Studio(工具| 在Visual Studio 2010 和2012中的选项展开文本编辑器)改变默认的编辑器设置。

VS2013+VSVIM相关推荐

  1. vs2013和vs2010的配置

    win10下vs2013和vs2010的相关配置 ------made by siwuxie095 主要是推荐一些vs2013和vs2010的好用的插件和配色方案,下面主要是以vs2013示例 1.首 ...

  2. C++ VS2013环境编译使用sqlite数据库全过程

    转载:http://www.cnblogs.com/imoon/archive/2012/11/30/2796726.html 转载:https://blog.csdn.net/hjm4702192/ ...

  3. 解决:vs2013 错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.

    问题翻译: 用于多字节字符编码 (MBCS) 的 MFC 库 (DLL) 不再包含于 Visual Studio 中,但是可用作插件,您可以在任何装有 Visual Studio Profession ...

  4. VS2013\VS2017 使用git 总是需要输入账号密码

    问题: VS2013\VS2017 使用git 总是需要输入账号密码 解决方案:删除原凭证,或者修改原凭证,重新输入一次账号和密码并且选择"记住凭证"即可! 转载于:https:/ ...

  5. VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询

    浏览localhost网站时候不管你打开那个页面它都会不停的轮询.据悉这是VS2013自带的Browser Link功能,里面用到SignalR机制 什么是Browser Link功能,什么是Sign ...

  6. 用vs2010打开使用vs2013升级后的WP工程

    项目在win7+vs2010的环境中建立的,后来在win8.1+vs2013的环境下修改和完善: 但是所有功能实现后发现wp7项目在使用vs2013打开后因为单向升级的原因,项目只能被编译为wp8项目 ...

  7. LIVE555简介及在Windows上通过VS2013编译操作步骤

    LIVE555是使用开放标准协议(RTP/RTCP, RTSP, SIP)形成的一组用于多媒体流C++库.这些库支持的平台包括Unix(包括Linux和Mac OS X).Windows和QNX(以及 ...

  8. 在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤

    多年前在https://blog.csdn.net/fengbingchun/article/details/40951403 中对FFmpeg在windows下的编译过程做过说明,那时FFmpeg版 ...

  9. windows10 vs2013控制台工程中添加并编译cuda8.0文件操作步骤

    一般有两种方法可以在vs2013上添加运行cuda8.0程序: 一.直接新建一个基于CUDA8.0的项目:如下图所示, 点击确定后即可生成test_cuda项目:默认会自动生成一个kernel.cu文 ...

最新文章

  1. 一篇文章学懂Shell脚本
  2. 多迪人事主管揭秘:面试官是如何面试Web前端求职者?
  3. mxnet加载保存部分参数
  4. 一次Rootkit实施失败记(图解)
  5. Java并发,并行,同步,互斥
  6. 安装VM及在VM下安装Ghost XP系统图文教程,附PQ分区及VM共享教程 z
  7. 获取局域网内服务器信息,使用Java代码获取服务器性能信息及局域网内主机名.pdf...
  8. NYOJ 70 阶乘因式分解(二)
  9. POJ 1088-滑雪
  10. java 删除图形界面_Java图形化界面报错?
  11. Huffman树压缩和解压文件
  12. MySQ学习笔记之十 NULL值处理
  13. mysql 索引 r树_GIS空间数据库(16)R树索引
  14. 小知识--Windows语音效果
  15. 做了5年Android开发,混吃等死的日子才是我人生最辛苦的日子!
  16. App自动化测试之企微打卡、快手刷金币
  17. BERT代码的解读1---数据处理部分
  18. MySQL中的字符集是啥?如何更改?
  19. 【离散数学】数理逻辑 第一章 命题逻辑(3) 逻辑等价与蕴含
  20. python图形化界面

热门文章

  1. ai钢笔工具怎么描线_AI中钢笔工具绘图的实战操作技巧!(干货满满)
  2. python中的get函数_python之函数用法get()
  3. qt读oracle时间戳,QT利用QDateTime获取当前时间戳的方法toTime_t
  4. python数据库操作sqlite_使用Python对SQLite数据库操作
  5. linux部署python web项目 详细_在linux服务器下部署python工程(爬虫)
  6. 计算机应用学科之间的逻辑性,数学教学中计算机应用
  7. JAVA基础知识需要注意的细节
  8. c语言 指针_C 语言指针详解
  9. 【LeetCode笔记】33. 搜索旋转排序数组(Java、二分法)
  10. python怎么读取石墨表格_Python用Pandas读写Excel