什么是Vim?

Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本。它增加了许多功能,包括:多级撤销、格式高亮、命令行历史、在线帮助、拼写检查、文件名补完、块操作、脚本支持,等等。除了字符界面版本之外,它也有图形界面版本(比如 gVim)。虽然 Vi 还在继续维护当中,但是大部分人都只在使用 Vim 了,你所见到和听到的大多是指 Vim——虽然你的命令名可能是 Vi。

这个编辑器常用于程序员、系统管理员、黑客们进行编程和文本编辑。不像某些编辑器,它所有的命令都采用普通的键盘字符,因此在你的如飞般的十指之下,它的输入和操作速度非常快。当然,你也可以将功能键映射到某些命令上,甚至还可以支持鼠标。

除了 Linux 之外,Vim 还可以运行在 MS-Windows (NT、2000、XP、Vista、7、8、10)、苹果、VMS 和几乎所有的 UNIX 分支上。 Vim 的旧版本还可以运行在 MS-DOS、MS-Windows 95/98/Me、Amiga DOS、Atari MiNT、BeOS、RISC OS 和 OS/2 上,不过新版本不再支持了。

Vim主要更新

8.0 版本中除了大量的细节改进和错误修复以外,主要支持以下的新功能:

支持异步 I/O 和通道channel

Vim 现在可以和后台的其它进程进行消息交互。这样就可以开发一个运行在后台的服务器,并将结果发回给 Vim,这种交互方式称之为通道channel。在通道中使用 JSON 传递消息,因此你可以用任何一种语言来开发后台服务器,只需要它支持 JSON 即可。通过支持这种技术可以实现一些功能非常复杂的插件。

任务

Vim 现在也能启动一个任务,并与之通讯或停止它。比如说,可以启动一个用于自动补完、格式检查等功能的进程。在任务和 Vim 之间的通讯是通过通道完成的。

定时器

另外一个异步工作的是定时器timer,可以启动一个定时器并不断重复调用某个函数。比如:let tempTimer = timer_start(4000, 'CheckTemp') 。

Partial

Vim 已经有了一个 Funcref 功能,这是一个函数引用。partial 也是一个函数引用,但是它可以绑定参数或字典。这对于频道或定时器的回调很有用。 比如:let tempTimer = timer_start(4000, function('CheckTemp', ['out'])) 。

Lambda 和闭包

lambda 是创建函数最快的方式,比如:{args -> expr}。它对于 filter() 和 map() 很有用,而且还支持函数参数。如:call filter(mylist, {idx, val -> val > 20})。

lambda 可以使用定义 lambda 表达式范围内的变量,这常被称之为闭包closure。

插件包

插件越来越多了,为了更好的管理插件,因此支持了插件包的支持。

窗口 ID

以前 Vim 中的窗口只能通过数字编号来访问,当打开、关闭或移动窗口时,这个数字也随之而变。现在每个窗口都有了一个唯一的 ID,可以更方便的找到它们。

折行缩进

新增的 'breakindent' 选项可以保证在折行时维持缩进不变。

Windows:支持 DirectX

新增的 'renderoptions' 选项可以在 Windows 上切换到 DirectX (DirectWrite)引擎上。

支持 GTK+ 3

一般用户很难注意到 GTK+ 3 和 GTK+ 2 的区别。对这两者的配置仍然都支持。

Vim的UNIX/Linux版下载:

源代码及运行时文件: ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2

.tar.bz2编译安装

解压缩:tar jxf vim-8.0.tar.bz2
切换目录:cd /vim80/src
配置:./configure

注意:在配置过程(检查依赖关系)可能会碰到下面的问题:

no terminal library found
checking for tgetent()… configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with –with-tlib.

ncurses是一个比较老的库

解决方法:sudo apt install libncurses5-dev

编译:make
安装:make install

这样打开终端输入vim直接可以进入

Vim文档与帮助

对于初学者来说,有一个叫  vimtutor 的一小时教程可以看看(当然是英文的),请通过 :help tutor 了解更多信息。

学习 Vim 的最好方式之一是在 Vim 中使用:help,如果你还没有 Vim 二进制程序,你也可以看看 runtime/doc/help.txt,它包含了对其它文档的指引。这个用户手册就像一本书一样,推荐使用它来学习 Vim。详见 :help user-manual。

Linux下编译安装Vim8.0的更多相关文章

  1. Linux下编译安装mysql-5.0.45.tar.gz

    安装环境:VMware9(桥接模式) + Linux bogon 2.6.32-642.3.1.el6.x86_64(查看linux版本信息:uname -a) 先给出MySQL For Linux ...

  2. ubuntu16.04下编译安装vim8.1

    之前写过一篇centos7下编译安装vim8.0的教程,ubuntu16.04相比centos7下安装过程不同在于依赖包名字的不同,其余都是一样.下面给出ubuntu16.04编译安装vim8.0需要 ...

  3. linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  4. linux下编译gcc6.2.0

    linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...

  5. LINUX下编译安装PHP各种报错大集合

    本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...

  6. linux下编译qt5.6.0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  7. linux下编译安装boost库

    linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...

  8. Linux下编译安装Apache Http Server

    Linux下编译安装Apache Http Server [TOC] 1.下载httpd-2.4.12.tar.bz2 wget http://mirror.bit.edu.cn/apache/htt ...

  9. linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

随机推荐

  1. async & await 的前世今生(Updated)

    async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了.但是这也给我们编程埋下了一些隐 ...

  2. 做一个gulp+webpack+vue的单页应用开发架子

    1.目标 最近项目上的事情不多,根据我自己的开发习惯,决定开发一些简单的开发架子,方便以后事情多的时候直接套用.本文讲的一个gulp+webpack+vue的单页应用架子,想要达到的目的: 可以通过命 ...

  3. H5项目开发分享——用Canvas合成文字

    以前曾用Canvas合成.裁剪.图片等<用H5中的Canvas等技术制作海报>.这次用Canvas来画文字. 下图中"老王考到驾照后"这几个字是画在Canvas上的,与 ...

  4. 前端性能优化的另一种方式——HTTP2.0

    最近在读一本书叫<web性能权威指南>谷歌公司高性能团队核心成员的权威之作. 一直听说HTTP2.0,对此也仅仅是耳闻,没有具体研读过,这次正好有两个篇章,分别讲HTTP1.1和HTTP2 ...

  5. 4.Android 打包时出现的Android Export aborted because fatal error were founds [closed]

    Android 程序开发完成后,如果要发布到互联网上供别人使用,就需要将自己的程序打包成Android 安装包文件(Android Package,APK),其扩展名为.apk.使用run as 也能 ...

  6. ASP.NET Core 中文文档 第四章 MVC(3.7 )局部视图(partial)

    原文:Partial Views 作者:Steve Smith 翻译:张海龙(jiechen).刘怡(AlexLEWIS) 校对:许登洋(Seay).何镇汐.魏美娟(初见) ASP.NET Core ...

  7. ASP.NET中常用的优化性能的方法

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  8. Android Socket连接PC出错问题及解决

    最近测试问题:Android 通过Socket链接电脑,ip和端口都是正确的,也在同一网段,可android端就是报异常如下: 解决办法:测试电脑的防火墙可能开着,在控制面板把防火墙打开即可.

  9. iOS -- CocoaPods

    CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具.CocoaPods 的项目源码在 GitHub( https://github.com/CocoaP ...

  10. iOS开发 判断当前APP版本和升级

    从iOS8系统开始,用户可以在设置里面设置在WiFi环境下,自动更新安装的App.此功能大大方便了用户,但是一些用户没有开启此项功能,因此还是需要在程序里面提示用户的 方法一:在服务器接口约定对应的数 ...