原文出处:这里

摘要:
开源的vim文本编辑器提供许多灵活而强大的功能,但是vim自身是很难被配置使用的,在本教材中,我们将向你显示通过几个简单的方式使得你的vim具有集成开发环境IDE的行为

vim是很多程序员和系统管理员最爱的文本编辑器,虽然他提供了很多优秀而灵活的功能,但是对于新手来说他依然是难于上手的。从传统集成开发环境转到vim的开发人员通常会开在发方式的转变中发现迷失了自己。

我经常收到来自于读者的邮件,他们希望能找到一种方式使得vim变得对开发者更友好。一个常见的抱怨是vim并不是自身就带有IDE的特性,并且如何来通过配置能得到等价IDE功能也不是很清晰。而揭开vim真正神奇的秘密就是利用强大的vim插件系统和对vim自身功能的改善和增强的第三方脚本。在阅你读本文之前,我已经整理好了一个vim的有用tips和插件列表,这些列表中的内容将会使那些用惯IDE功能的人们在vim上感到宾至如归的感觉。

虽然vim主要是设计给基于字符方式的文本编辑器,并且它有可能是这类编辑器中最高效的工具,但是现在在vim上也存在一些更适合新手使用的基于图形的外壳。不像运行在终端窗口上的vim,你可以尝试使用一下gvim,一个基于GUI的vim版本。gvim拥有可配置的的菜单和工具条,因此可以通过鼠标直接访问到vim的编程上的最本质的特性。gvim可以让你使用操作系统自带的文件对话框,并允许你通过鼠标点击拖拉编辑面板的能力。gvim有windows和linux的版本,等价的Mac OS X的版本是MacVim,MacVim提供了Mac机的本地Cocoa用户接口,包括菜单集成的功能。

我听到来自vim用户最经常被抱怨的功能是vim的编辑区列表非常麻烦,并且没有一种简单的方式可以明了的看到什么文件是打开的。在vim上有几个插件可以解决这个问题,并提供了一个额外的编辑区列表用于方便在打开文件中切换。我最喜欢的一个插件是MiniBufExplorer,它将列表显示在窗口的头上。当MiniBufExplorer被激活时,你可以通过tab键来在列表的这些项中循环,然后通过回车键或双击鼠标来选择在编辑区显示和你要处理的文件。

许多的IDE工具都有用于显示你程序项目结构和允许你通过鼠标在特定的类和方法间跳转的代码导航区。你可以通过使用流行的Tag List 插件来得到这个特性。这个插件需要Exuberant Ctags实用工具,这个工具用于分析你的代码。TagList可以通过命令:Tlist来激活,并将你的类和方法显示在激活的区域,当你打开其他的文件或切换到其他打开文件时,新的类或方法会被加到代码导航区。在gvim中你可以通过单击方法名跳到对应方法定义。如果要使用键盘,那么通过光标键上下移光标到你希望的方法处,单击回车即可达到目标。

自动文本完成(译者注:就是eclipse,visual studio中常见的输入前几个字符后面的内容通过列表显示的功能)是另外一种在IDE工具中常用特性,并且很多用户都希望在vim中有这些特性。这个特性已经在vim7中通过Omnicompletion system被引入进来。它是可编程,这就意味着你可以通过定制,使的这个功能能在各种个样的编程语言中使用,在vim中甚至存在对动态语言python或ruby生效的自动文本完成功能。现在,自动文本完成的配置已经变成了vim包中的一个部分,所以现在你可以什么都不做就能让这个功能生效。要调出自动完成菜单(列表),你需要敲下ctrl+x和ctrl+o键,接着你可以用ctrl+n和ctrl+p在可能完成列表中进行上下选择,当你移动到一个选项,vim将为你在另外一个Scratch区域显示带方法说明和属性的上下文帮助信息。

你可以多种方式来改善你的vim体验,vim维基vim wiki和脚本库script repository为你提供了可用于增强功能的第三方增强扩展集合。这些插件实现sinppet system,outlining tools,项目管理工具,和大量的其他的特性。同时还有大量的脚本实现了对某些特定编程语言和框架的增强。例如有一个非常流行的脚本,这个脚本将会改善你Ruby的语法高亮,并且为你Ruby on Rail的部署提供了非常方便的导航特性

同时也有一些面向新手的脚本集合,这个集合使得vim的行为变得更像一个带有简单菜单和快捷键的传统的文本编辑器。如果你对vim那些神秘键盘命名感到不舒服的话,你可以选择这个作为你使用vim的开始。

vim的多样性使得它满足不同的用户使用。对于那些没有时间,能力,和爱好去通过自己去建立一个完美vim配置的人来说,无数的第三方脚本和插件为你提供了一种简单的方式,通过这种方式你可以付出很少的努力就能得到你想要的功能和特性。

from: http://coolshell.cn/articles/894.html

将vim变得简单:如何在vim中得到你最喜爱的IDE特性相关推荐

  1. word后续段落格式变掉_如何在Word中设置段落格式

    word后续段落格式变掉 Word provides default font formatting and paragraph formatting that is applied to conte ...

  2. python环境变量值_如何在python中读取Windows环境变量值?

    尝试使用以下内容: os.getenv('MyVar') os.getenv(varname[, value]) Return the value of the environment variabl ...

  3. python灰度图像变彩色_如何在cv2python中实现灰度图像到彩色图像的转换

    我在低通FFt中使用了cv2python,我已经改变了图像的属性,但是这个图像是灰度图像.我想把它改成彩色图像,保留灰度图像的属性---------- import cv2 import numpy ...

  4. Vim 分屏功能+无插件Vim编程技巧

    本篇文章主要教你如何使用 Vim 分屏功能. 分屏启动Vim 使用大写的O参数来垂直分屏. vim -On file1 file2 ... 使用小写的o参数来水平分屏. vim -on file1 f ...

  5. linux内核如何安装vim,如何在Linux 中安装和使用 PacVim?

    描述 你好,Vim用户!今天,我偶然发现了一个很酷的程序来提高 Vim 的使用技巧.Vim 是编写和编辑代码的绝佳编辑器.然而,你们中的一些人(包括我)仍在陡峭的学习曲线中挣扎.再也不用了!来看看 P ...

  6. 如何在vim中交换两个打开文件(在拆分中)的位置?

    本文翻译自:How can I swap positions of two open files (in splits) in vim? Assume I've got some arbitrary ...

  7. vim autoformat php,vim - 如何在VI中整理HTML文件的缩进?

    vim - 如何在VI中整理HTML文件的缩进? 我如何修复他的巨大的html文件的缩进,这些文件都搞砸了? 我尝试了通常的"gg = G"命令,这是我用来修复代码文件缩进的命令. ...

  8. 是程序员都可能用到版本控制,如何使用它?如何在Vim中使用Git?

    版本控制是本章的重要内容之一.虽然本书选择的版本控制系统是Git,但是本章的知识也适用于其他版本控制系统.本章只提供了一节内容简略地介绍版本控制,如果读者想要更深入地了解,还需要有针对性地阅读相关材料 ...

  9. vim配置全攻略(2)——vim的简单配置

    这篇文章主要讲的是vim的简单配置,相对于vim内置的一些快捷键和功能,vim的客制化才是vim的灵魂,也是vim存活31年仍被热衷的原因. 如果你还不了解vim的基本操作和体系,我建议你看一下我上一 ...

最新文章

  1. 软考计算机网络原理之IP计算问题汇总
  2. 间接通过new 来申请一个二维的堆内存数组
  3. K8S部署hazelcast
  4. 9 C++ Boost 多线程,线程同步
  5. 田亮:坚信大数据的变革力量
  6. python断网还能用吗_Python依赖包迁移到断网环境操作
  7. 基于SpringBoot,来实现MySQL读写分离技术
  8. 拜登政府冻结加密钱包规则以待审查 加密市场或迎来转机
  9. android大屏适配_Android屏幕适配
  10. wordpress 调用css,WordPress折腾记-精简CSS及JS在插件中的调用
  11. opencms使用笔记
  12. 如何不显示index.php,tp如何隐藏index.php
  13. Pixel 3a 开箱及 Google Fi 服务评测视频
  14. 数据库工具DBeaver
  15. 腾讯云搭建Socks5多IP代理服务器实现游戏单窗口单IP完美搭建教程附带工具
  16. 儒雅计算机导师,龙桂鲁:儒雅的学者,严慈的良师-清华大学新闻网
  17. 用css实现朋友圈图片布局
  18. Photoshop使用技巧
  19. 看服务器时间修改日志,怎样看服务器远程更改时间记录
  20. 今天,数据库“打工人”告诉你一个秘密

热门文章

  1. mysql登录抓包_MySQL登录验证的抓包
  2. 聊城大学计算机学院韩玉艳,人工蜂群优化及其在资源管理中的应用.doc
  3. 华为M2 e服务器信息解析失败,关于华为:华为审核被拒检查HMS-Core更新失败
  4. python两数之和(hash 表)
  5. java开发可重用代码包工具包_[Java教程]彻底搞懂Java开发工具包(JDK)安装及环境变量配置...
  6. 半监督分类算法_用图网络进行半监督分类
  7. python重复执行_关于计时器:在Python中每x秒重复执行一次函数的最佳方法是什么?...
  8. Puppeteer 学习笔记及基本用法
  9. linux中awd的详细使用方法,求教awdflash的使用方法,详细些,我是初學者。
  10. python中的input函数怎么用_python input()函数怎么用,_Python_ 少侠科技