Posts tagged with "Vim"
Saturday, 17. March 2007, 01:30:57
Vim, editplus, EmEditor, ultraedit
...
关于编辑器,我尝试了很多种,例如 vim, emacs, scite, ultraedit, editplus, emeditor, pspad, notepad++, ... 很可惜的是没有一个能完全满足我的需求。
就说 emeditor 有非常强大的搜索功能吧,而 vim 有非常好的 file type identification 能力,而恰恰两个的强大之处都是对方的薄弱之处。
emeditor 的编辑 control 是使用 text replace 的方式来进行语法高亮的,所以效果不是很理想;而 vim 使用的方法要比之高明得多了。emeditor 强大的搜索功能是通过 regex++ (也就是现在的 boost::regex)来实现的,而 vim 只实现了 posix regular expression。
有一个设想就是自己编写一个 editor,仅限于设想。想像下,为了搬 10kg 的东西,却要先做 100n 的准备活动,这种做法值得吗?
Monday, 5. February 2007, 14:05:41
grep, Vim, python, Emacs
花了一个晚上的时间,寻找关于 vim-buffer 的资料,很不幸,vim-buffer 似乎没有 emacs-buffer 那么强悍——我是指交互那方面——简单地说,当我在运行一个 python 脚本时,这个脚本可以需要很长的时间,其中不停地输出一些东西,vim-buffer 只能在脚本完全执行完才能把显示的东西全部载入到 buffer 中,而 emacs-buffer 可以在执行中就不断地捕获脚本的输出。
在这之前,也没有看到关于 vim-buffer 类似那种即时输入/输出的插件——至少我没有看过——不过有一点是可以肯定了,如果 vim-buffer 有那种能力的话,为什么设计 runscript.vim, grep.vim 等等插件的人不使用呢?
Monday, 15. January 2007, 14:25:24
Vim, EmEditor, GDB, PDB
...
绕了一圈,又回来了,非常讽刺的是,我把学习 Emacs 的经验,用在重新审视 Vim 上。
在选择一个良好的编辑器时,我主要看重这几个方面:
1. 良好的文字编辑:当然,这是编辑器最基本的,也非常必要的;
2. 有强大的搜索能力:我使用过 EmEditor 其依赖的 regex++ 所具备的搜索、替换、全文搜索、批量替换、正则等等的支持,是我使用过的在这方面最强大的编辑器;然而 EmEditor 在代码补全文件排版等等方面也有不足,因此,使用其它的编辑器也是要考虑的问题;我本来没有找到 Vim 的文件搜索功能,就在我卸载掉 Vim 的时候,却阴差阳错地找到一个 Vim 的用户组——了可以使用 vimgrep 进行文件搜索;
3. 有非常强大的自定义能力:在这点上,我非常欣赏 Vim 和 Emacs,它们提供了非常强大的脚本语言,几乎可以做任意的修改;
4. 灵活的扩展性:我试用了 SciTE,但这最终造成了我不得不放弃使用它——其基于 C++ 编码的,不支持脚本进行动态扩展,每做一个改动都要修改 C++ 源码,然后重新 make;
5. 编译、调试支持:SciTE 虽然可以很好地捕捉到编译器的错误输出,但我不知道如何更改其编译参数、也不知道如何将其结合 GDB 进行调试;其虽然可以调用 python 解释器,但是我不知道如何结合 PDB 进行调试;在这个方面上支持的提供集成支持的只有 Vim, Emacs 和 Visual Studio;
6. 最好是免费的:上面提到的 Visual Studio 就被排除在外了,我不想让自己的开发事业建立在某种要钱的产品上,所以只能使用 Vim, Emacs, SciTE 等等;
7. 功能细腻:这点我本来不是非常在意的,但是用了 Emacs,发现其很多的功能相对于 Vim 来说比较粗糙——比如说显示行号,一个非常简单的功能,但是 Emacs 居然要使用插件来实现,并且使用的时候有诸多的限制——也许是我对 Emacs 的了解还不够吧;
Friday, 5. January 2007, 14:33:51
Script, Vim, Emacs
今天在公司使用 Vim 发现了一些需要改动的地方,于是尝试着自己阅读 Vim 脚
本——结果是完全行不通——我一年半之前好像也有这样的想法,但是在今天还是面
对 Vim 脚本束手无策,结论是:这不是我个人的问题,而是 Vim 脚本的语法有
问题,导致我没有学习它的兴趣。
下午开始重涉 Emacs 领域,晚上在阅读 Emacs 手册的时候发现很多很合理的设
计。不知道我的 Emacs 之路还会不会像上次一样流产了,Vim 虽然有许多的便利,
Tuesday, 19. September 2006, 13:57:12
Visual Studio, SlickEdit, Vim, Ubuntu
说真的,这个工具挺不错的,但是调整模拟 vim 的方式工作,在我的 ubuntu 上老死,太奇怪了!我可不想用 SlickEdit 模拟成 Visual Studio 的方式。
Saturday, 16. September 2006, 13:49:48
VC, c++, Linux, Vim
...
在 Linux 从事 C++ 开发,到现在还没有找到 Visual C++ 和 Visual Assist X 那样方便的 IDE。boost 的 tags 文件在我的 vim 上工作异常缓慢,而且最关键的是 vim 不具备重构的能力。尴尬地使用 eclipse 虽然提供了重构,但是让 C++ 人用 Java 的 IDE 实在是有点委屈了。
Saturday, 9. September 2006, 11:03:04
GUI, C++Builder, Vim, IDE
今天中午在与一个人讨论用什么 IDE 的问题,事后总结:
1. 编程的工具没有什么是最好之说,只有最合适的说法。是“要做什么”决定“用什么工具”,而不是“用什么工具”才“能做什么”;
2. 在还没有非常深入的了解 vim 之前不要轻易对它做评价。有书描述道:vim 的功能远远大于第一眼看到它的印象;
3. 并不是所有程序员都要写 GUI 程序的;
4. 有很多人想要一个“万能”的编辑器,我原来使用 C++Builder 的时候以为它是,但是很快就打消了这个念头--不可能有“万能”的编辑器存在的。
Tuesday, 22. August 2006, 06:56:32
c++, Vim, Windows, BDS
下午,使用 Borland Developer Studio 2006 编写一个 C++ 程序,才深刻地感觉到 VIM 真是方便啊!
要修改一个单词、移动一个位置、删除行……我的天啊,BDS2006 做这些事情就像标准的 Windows 编辑器一样难用。移动到行首——Home;行尾——End;左移——Left Arrow;右移——Right Arrow……一些基本的操作都要让手离开主键盘,实在太不舒服了。要浏览代码,VIM 的 hjkl 就好了,BDS 要用上下左右键来移动,或者用鼠标,天啊,就看个代码这么麻烦。
Monday, 17. July 2006, 07:33:54
c++, Firebird, C#, SQL
...
今天算了一下,如果要同时进行 Linux 和 Windows 开发,我现在至少要学会 8 种语言,天啊!
C++, C#, LaTeX, PHP/Perl/TCL, Bash, GNU Make, ISQL, JavaScript 每种都针对不同的方面。比方说 C++ 是用于跨平台开发,而 C# 是 Windows 开发;LaTeX 肯定要用于文档排版;PHP/Perl/TCL 要用于 Linux 上的脚本设计以及服务器脚本;Bash 跟 Windows 上随手写个批处理文件同样重要;要进行 C++ 自动构建 GNU Make 的必不可少;ISQL 是开发 Firebird 的基础;JavaScript 要在网页上实现 Ajax 效果。天啊,一个都不能少!
然后如果要深入学习 Vim 的话还要掌握 Vim Script,我的精力没有这么多,得精简下。
Tuesday, 11. July 2006, 09:03:41
c++, Emacs, Vim, reflect
...
看了些关于 Vim 的文章,心情不能平静。关于 Vim 我现在面临着两大问题:
1. 不能集成 GDB 调试;更几乎没听说过集成 DDD;
2. 不能进行 C++ 重构;连最基本的 Java/C# 重构都没找到资料。
关于集成调试器的,Emacs 做得很好,但是我不觉得 Emacs 会比 Vim 更快捷。但是如果 Emacs 也支持 C++ 重构,那么我可能花精力去学习 Emacs。
Monday, 10. July 2006, 00:19:46
Unixes, Windows, Vim, gVim
...
昨天有个朋友看了我操作 Kubuntu 系统的终端,说道:跟 DOS 一样。
只能说那是对 Unixes 的非常肤浅的认识——同样在终端下,Unixes Terminal 和 Win32 Console 有着本质的不同:在 Unixes Terminal 几乎可以完成所有的操作;在 Win32 Console 你能完成一半的事情就偷笑了。
你可能会说:黑乎乎的终端界面,还不如 GUI 看起来舒服——我只能说你太不了解终端了。周围用 Unixes 系统的几乎人人都非常喜欢用键盘来解决问题,鼠标的使用会严重地阻碍了工作效率。打个比方:使用 Vim,手几乎不用离开主键盘的位置,它舒适地让盲打的人完成各种操作,甚至不用去做浪费时间的鼠标操作;相对之下,Windows 上,如果没有 gVim 或者 Emacs 的移植,可能有比目前更高效的工具吗?
Friday, 7. July 2006, 03:27:28
Qt, Kubuntu, Ubuntu, Ncurses
...
昨天晚上装上了 Ubuntu,但是在安装 Kmess, aMSN 等等工具时,GNOME 的有些字不能被正常显示。究其原因,主要是这些软件都十分支持 KDE,所以我索性今天换 Kubuntu。
使用 Open Qt,我可以在 Kubuntu 下用 Qt Designer 设计窗口,并使用 Vim + GCC 编译程序。这样的设想不错。但是 Qt 的版权问题的确是个麻烦的问题——要销售基于 Qt 的产品,还要购买 Qt 的商业授权(而且价格不菲)。
另外则是开发基于终端界面 ncurses 库的程序,但是这种程序基本仅限于专业的 IT 人员使用,普通的用户几个会去接触这种程序呢?
Wednesday, 5. July 2006, 03:31:49
Ubuntu, Unixes, Vim, Windows
...
有这么个悲哀:在国内不会用 Windows 的落伍了;在一些外国不会用 Unixes 的是傻瓜。
我比任何时候都痛恨盗版。这么说吧,当你使用自己的计算机,但是发现机器上的各种软件基本上都是偷来的(什么你说是义偷?那么如何解释有的人在个人电脑上装 SQL Server 2005 Enterprise?),什么感觉呢?
国内的出版社要求用 .doc 格式投稿,难道国内出版社假设用户都能使用上 Word ——都能使用上正版 Word?我想他们是假设用户都有途径使用某些 Word 吧。相对之下,国外的出版社要求用户用 .tex 投稿,用不起 Word 总用得起 LaTeX 吧,况且 LaTeX 的文档质量没有哪方面不如 Word 的。
有人说过:Windows 是商业运作的产物,它并不尊重要用什么的权力,所谓的商业手段就是,它提供给你什么,你就要全盘接受,就算你不要的,它也照样给你。Unixes 则非常人性化:你可以随心所欲地搭配你喜欢的各种软件,并给你足够的自由,甚至连内核都是可选择的。
在家里使用自己的笔记本,上面是 Ubuntu 然后用 Vim 做文字编辑,我有实在的感觉,毕竟不是在盗版的基础上创造额外价值。
中国因为软件昂贵而成为盗版大国,难道外国人就不觉得贵,就全部使用正版的 Windows 吗?或许应该从别的角度自己反省一下。
Tuesday, 4. July 2006, 14:17:03
GCC, Vim, Windows, c++
...
为了开发 C# 就把 Ubuntu 换成 Windows,太可笑了。就算 C# 是一种优秀的语言,那么其所依赖的 Windows 跟 Unixes 有可比性吗?什么,你说 Windows 的桌面强大?!那是你没有深入地了解 Unixes 和它桌面的关系。引用一句话:对 Unixes 来说,GUI Shell 只是一个进程,它的优先级甚至低于其日志进程。
什么,你又说了,用 Windows 你可以马上解决你想做的事情,用 Unixes 不行。那是你还没有熟悉 Unixes——在你熟悉 Windows 之前,你能够随心所欲地做想做的事情吗?
Unixes 崇尚使用键盘来解决各种问题——有个传说:鼠标当初发明并不是为了方便人机交互,而是为了降低打字员的速度——当然这只是个传说,我也相信不全是真的,但是有一点是可以肯定的:一个键盘熟手用键盘解决问题的速度是一个鼠标熟手的好几倍。
Monday, 3. July 2006, 05:19:43
Vim, g++, c++, Unixes
...
考虑再三,还是决定不使用 Visual C++ —— Unixes 上没办法使用 VC。于是一个轻量级环境就是 VIM + G++。
经过多方搜索,我还是没有找到按部就班的建立 VIM/C++ 开发环境的资料。计划过段时间在 98 年买的那台 C333 上安装 Ubuntu Server CD,只装终端就好了,GNOME 或者 KDE 的资源消耗太大了。买台新的机器让父母运行大智慧、联众等软件。
另外在 C333 机器的终端使用 VIM 编写 C++ 代码,我想效果应该很好。还要配置 GDB/DDD, CVS/SVN 等环境,看来用 VIM 开发,目前难度还挺大的。
Sunday, 2. July 2006, 06:29:52
vc++, Windows, Vim, VC#
...
我最终还是装了 VC,利用 Visual Assist X 的便捷进行 C++ 开发。当然装 VC2005 的目的不是为了进行 C++/CLI .NET 开发,而是要进行 native C++ 编码,然后再转到 GCC 上。在 Windows 上确实没有什么好的 GCC 开发环境(Windows 上的 Code::Blocks 都比 Linux 上的差了几个档次;在 Windows 上使用 VIM,天啊,饶了我吧)。
等不进行 C# 开发了,我很愿意到 Ubuntu 上从事专门的 C++ 编码,然后购买本 Unix 内核编程。在抽象思想上 GP 比 OOP 要先进些,一方面因为 GP 才刚开始流行(国内听说过 GP 的人不多,使用 GP 开发的人是少之又少),所以 GP 的作品相当少;但另一方面 GP 的设计具备了足够的弹性,需要再进行些研究,我个人认为是可以进行分布式计算的。
Friday, 30. June 2006, 10:02:13
.NET, Java, GNU Make, Spring
...

因为工作的需要,我要告别 Java 开发,从事 .NET Framework 的开发。
我决定在家里继续使用 Ubuntu,但卸掉 eclipse 等工具,不再学习 Java 了。考虑使用 VIM 进行 C++ 的开发(G++, GDB/DDD, GNU Make)。
白白了 Spring, Structs, JSF, ...