导航:首页 > 源码编译 > 为什么vim编译运行慢

为什么vim编译运行慢

发布时间:2022-02-06 13:12:24

① 为什么Vim这样早期的编辑器一直流行

Vim一直流行说明它好用。Vim本身并不是一成不变的,每个版本的更新要么解决上个版本的bug要么提供一些新的功能。


有人会说vim就是用原生vim,配置一大套插件就不是vim了,这是谁告诉你的?很多人用Vim很大原因就是它的插件非常丰富,既然有人为自行车加上了发动机变成了电动车我为什么非要强迫自己蹬着走?况且可以将Vim改装成属于你自己的战车。以上个人浅见,欢迎批评指正。认同我的看法,请点个赞再走,感谢!喜欢我的,请关注我,再次感谢!


② 为什么要用vim编程

你不要着急,慢慢来!linux相比Windows更加适合开发,这是很多程序员的亲身经历!你常去www.linuxsir.org逛逛,高手不少!VIM只是文本编辑器,就像记事本程序似的,只是功能多一些……用什么编辑器无所谓,看个人喜好,我一般在Eclipse上直接编辑……还有,想深入了解Linux操作系统,建议你做做LFS,学习Linux的捷径!

③ 用vim 编辑怎样才能比 IDE 更快

很多使用过 IDE 的朋友在开始使用 Vim 时都会觉得 Vim 缺少 IDE 中的功能。而在提问过程中遭遇 Vim 熟练使用者们的抨击。

这里需要澄清的一点是,即使你再怎么去调节你的Vim,或为他书写插件,Vim始终是一个静态文本编辑器,他在增量解析上因为访问编辑器内存的局限性和其设计原则,使得他效率上有所缺失,并且不支持 shell-window (关于为什么不支持 shell-window, 请阅读 :help shell-window 更详细地了解)。由于这些问题的存在,Vim 并不能像 IDE 一样成为一个强大的,动态的编程环境。但是,这并不能妨碍我们使用Vim编程,当我们认可了Vim是一个静态文本编辑环境后,我们所要做的事情,就是尽可能地利用静态分析工具打造一个适合静态文本编辑的编程环境。

对于喜欢使用Vim并且掌握Vim的人们,都有一套自己的配置来让他们处理IDE 相关的操作。以下我就说一说我自己是如何来打造这样一个环境:

我们假设你要编辑的项目为: ~/foo/bar/foobar/ 这个project

1. 定义,声明的跳转

在编程中,最常使用的是定义跳转 ( define, declaration jumping ),这方面需要你借助一个Vim中常用的外部工具叫做 cTags 来实现。很少有人会告诉你 cTags 怎么使用。但是当你开启一个项目后,一般你会通过:
~/foo/bar/foobar/: ctags -R .

生成你想要的 tags。完成这个操作后,你的 ~/foo/bar/foobar/ 目录下会出现一个叫做 tags 的文件。在你的 .vimrc 中设置:
let tags+=./tags

即可将上面的文件加入到 vim中。这个时候,如果你可以试着将光标挪动到某个定义单词下,按下 ctrl+] 就会跳转到这个单词的定义中。你也可以通过 :ts <your_word> 直接列出<your_word> 相关的单词定义。

2. 文件浏览

相信喜欢 Vim 的朋友都有自己的文件浏览插件。最常被大家使用的是 NERDTree: https://github.com/scrooloose/nerdtree 。这个插件可以帮助你列出你当前项目下的文件。并且他提供了 file filter pattern。这样你可以通过设置 g:NERDTreeIgnore 这个变量来忽略那些你不想要的文件。

但是,我个人喜欢使用的是我自己开发的一个插件叫做 ex-project: https://github.com/exvim/ex-project 。这个插件和NERDTree 的功能类似,不过他是专门为单独 Project 设计的,有更好的 folder, file filter 选项。同时他也是 exVim 插件体系的一部分。

如果说 Vim 的文件浏览有什么比 IDE 有优势的地方,莫过于因为Vim是一个静态文本编辑器,所以他的所有东西皆文本,所以你可以用任何文本操作的方式来游走于文件浏览插件中,比如 search /,比如单词跳转等等。对了,你还可以用 regular expression。是不是很cool呢。

3. 全局搜索

我相信不少人为此困扰过。Vim 社区里确实太缺少这个东西了。你说 grep? NO,NO,NO!对于大型项目,grep 的recursively搜索即使配合file filter pattern也是慢如狗。为此我个人特地开发了一个专门为 global search 做优化的插件 ex-gsearch: https://github.com/exvim/ex-gsearch 。同样的,ex-gsearch 也是 exVim 插件体系的一部分。

ex-gsearch 实际上是一个引用外部搜索引擎的搜索结构到 Vim 插件窗口中的插件。他能够很好的引用 grep, id-utils 的搜索结构。而我这里要重点介绍的就是除了 grep 外更适合作为项目内全局搜索的工具 id-utils。和 ctags 一样,id-utils 也是一个预先帮助你解析项目文件,然后生成索引列表文件提供给Vim使用的外部工具。他的使用方法:
~/foo/bar/foobar:mkid

然后你会生成一份 ID 文件。在项目中,通过:
~/foo/bar/foobar:lid --result=grep -f"ID" your_search_word

即可全局搜索你想要的文字。因为 mkid 是预先将项目文件索引起来,所以搜索非常的快。并且他有各种指令可以帮助你 filter 你不想要搜索的 folders, files。这些通过 -p 和 id-lang-map 设置即可。

4. 文件快速跳转

相信不少朋友都被 sublime text 的 ctrl+p 文件快速搜索功能给深深地吸引。其实 Vim 中也有一个类似的插件做相同的事情,他就是 ctrlp: https://github.com/kien/ctrlp.vim。这里我就不多说了。同类的Vim插件还有 lookupfile, unite 等等。他们做的同样出色。

5. 代码补齐

这类型的 Vim插件也是非常的多的,我按照我目前喜欢的按排名列举:

vim-autocomplpop
neocomplcache
neocomplete
YouCompleteMe
supertab

我喜欢 autocomplpop 是因为他纯 Vim 脚本编写,速度上是测试的几个纯 Vim 编写的插件中最快的。如果你不拘泥于纯粹Vim脚本这件事情, neocomplete, YouCompleteMe 会是更好的选择。

总结,关于 exVim

以上几点已经可以将Vim打造成不错的IDE了。说了那么多,其实只是想告诉题主,Vim只是一个静态文本编辑工具,他不是IDE,但是借助外部工具可以做很多类似IDE的事情,甚至有些时候做的更好。

不过耐心看到这里的朋友应该发现了,我上面的列举有个很大的问题,这些外部工具在项目里运行,需要一些精心的调配,比如 file filter, folder filter。不同的插件语法不同,总不能我每次开个项目,都要设置这些东西吧,很烦。

所以,我写这篇文章的目的,并不是让你们用上面的方法来使用Vim编程IDE,而是推荐大家使用 exVim 这个我精心配置过的 Vim 编程环境。exVim 将项目中用到的 file filter, folder filter, 插件配置,外部工具等等东西都通过 .exvim 这个文件进行统一配置,当你开始一个项目的时候,你只需要在项目工程下创建 foobar.exvim 这个文件,并且用 Vim 编辑他,他就会自动的将配置信息转化到 Vim 中,并且帮你启动你需要的插件和脚本。也就是说,他做了上面的我说的那些操作,让你不用去二次学习那些外部工具的命令语法和其他一些选配功能。

④ 为什么 Mac 下使用 Vim 光标移动速度很慢

你可以通过系统设置里面的键盘设置来提高 h, j, k, l 的移动速度。


⑤ windows 上的 vim 真的很慢么

不知道你的目的是什么。vim是unix系统下的工具,win下面有很多方便的工具做编程。一般在windows下可以用虚拟机模拟linux

vim来做练习。如题,在windows下安装vim,完后,输入法是中文,切换成英文后,就再也切换不到中文输入法了,改快捷键也没用,有谁知道怎么设置吗?

⑥ 为什么redhat vim编辑文件很卡

我觉得可能网速才是根本原因。你用一般终端命令,信息量较少,所以不觉得。当你用vim编辑大文本文件,信息量变大了,所以就会很卡。
我SSH远程国外服务器,就很慢,堵的时候几十秒没反应。
你可在网络状态较好的时候试一下。

⑦ 请问下 为什么linux在shell命令时会经常反应迟钝 而且在vim编辑器输入时有时也会不流畅(纯文本终端下)

我在古董机上装的linux都不会卡
先看系统有问题吗?用top命令看看cpu占用情况,free看看内存,没事儿的话重装下系统看看。再不行,换个发行版

⑧ 为什么我vim 括号出来的很慢

出来有什么效果?可能和你装的插件过多有关。估计只能通过调试判断是什么问题。

⑨ 当我用vim打开一个xml文件时, 速度非常慢, 而且打开后也会卡半天, 这是为什么

qq邮箱:872010760

正如 wangjun403 所说,就是正则表达式匹配超长行会比较慢。因为用于分析 xml 语言的正则表达式比较复杂,匹配失败时引发的回溯较深。
楼主可以试试用 vim7.4,新版 vim 更新了正则引擎,匹配这样的文本会快许多。

⑩ 为什么我的Vim启动和关闭都巨慢

说明 .vimrc root 用户效
linux 系统用户系统软件用户配置相互独立

.vimrc 要放用户自主目录才行般 ~/.vimrc已经目录能文件读需要用 sudo 文件拷所权转给自需要用 cp, chown, chmod 类命令

阅读全文

与为什么vim编译运行慢相关的资料

热点内容
什么是哲学pdf 浏览:505
hdfs的三个下载命令 浏览:520
java常用的排序算法 浏览:355
51单片机连接adc 浏览:857
python命名变量报错 浏览:117
安卓手机如何换windows系统 浏览:610
python中的类是什么 浏览:628
我的英雄学院用哪个app可以看 浏览:33
excel插入选项卡对象命令 浏览:691
python字符全排列 浏览:499
824页大瓜文件pdf 浏览:220
朔州ios源码 浏览:249
算法逻辑电路 浏览:940
青少年喝酒解压辩论赛 浏览:175
android如何新建activity 浏览:741
ntp支持的认证算法 浏览:716
想做快手主播需要什么app 浏览:926
阿里云服务器如何转账户 浏览:905
编译器和解释器实现技术完全不同 浏览:434
虐杀原形汉化补丁怎么解压 浏览:647