`
Teok
  • 浏览: 150373 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用VIM写代码的一次简单实践

 
阅读更多

最近终于开始闲了下来,加上在一位vim很熟练的同事的各种热心的帮助下,我决定开始学习vim。所以上周花了半天时间,跟着这篇文章《简明 Vim 练级攻略》练习使用vim,我练完了文章说的前三级。

 

昨天上午,坐下来用vim写一个非常简单的工具来体会一下如果完全用vim来写程序。

 

先看看工具的需求:在shell里面敲一个命令再加一个不认识的单词作为字符串参数,然后可以把这个字符串保存到某个固定文件中。这就是我平时在linux下在用的简陋的英语生词本。这个需求很简单,而且我会作得很简单,一是为了防止出现编码过程中那些复杂的情形,二是有用的东西,三是一开始别搞的太复杂,容易丢失信心。

 

我的具体工作流程是这样的:

1.配置好vim。刚接触vim时会被vim及其“简陋”的功能吓到,不过vim插件确实非常强大,这些插件可以在http://www.vim.org/找到。如何配置,好感觉有好几种,除了自己看每个插件的文档之外,我还去问vim很熟悉的同事,把他们常用的插件也装过来。

我用到的插件有:JavaBrowser,AutoComplete和Grep。

我把我的vim配置贴在文后。以供参考。

2.用java写读取文件、检查重复、往文件中插入单词这些功能。

3.用ant脚本编译代码并打包成可执行的jar包

4.用shell脚本来执行打包出来的jar包

 

一些要说明的地方:

3.ant用到的build脚本,我是参照了这篇文章:introduce ant。default.properties文件也是参照它提供的模板改的。另外,如果要打包出来可执行的jar,那么就需要在menifest.mf文件中指定main class的路经。这里我参考了ant关于文件的文档。另外,ant的faq非常值得阅读,它对我们快速了解ant诸多强大功能和解决常见问题非常有帮助。

4.使用:

 

$add2cute someUnknowWord
 

 

代码我贴在文后。需要说明是代码写的非常简陋,几乎很多地方都是magic code,但是限于这是我自己用的小工具,我不需要写的很功能齐全。更重要的是为了练习用vim开发软件啊,这才是重点。

 

总结:

1.vim没有debuger,所以要debug程序只能写log代码然后分析,这点是我一直诟病vim的地方,因为太依赖与eclipse了,如果让我debug的时候看不到哪个变量的实时的值,我会很没有分析的思路的。从这一点上将,ide的debuger确实在大多数情况下帮助我们快速定位root cause,但是我前一阵子碰到的几个多线程的问题,debuger也是无力的。也许分析log来debug,对于我这样直接入手ide的人来说确实有点难,但是正如我的同事所言:用vim的时候,你感觉你很贴近程序,那才是本质啊。

2.vim没有强大的refactor工具,目前我的感觉是即便是用相应的插件来提升vim refactor的效率,但是刚开始容易出现错误或者遗漏,而这些在eclipse里面就是一个快捷键。

3.需要不断练习。那些快捷键不用时忘的很快。

4.不能方便的查阅api doc,所以我只好开着online api doc,一边写代码。然后突然发现,如果没有ide,我连java.io或者lang包里的常用api都不会用。

5.要很熟悉正则!!这点非常重要。

分享到:
评论

相关推荐

    Vim 8.2 PDF 中文用户手册(最新)

    1. **第一次运行Vim**:初学者在首次打开Vim时,将学习如何插入文本、移动光标、删除字符以及撤销和重做等基本编辑操作。 2. **移动光标**:Vim支持多种移动光标的方式,包括按单词移动、移动到行首或行尾、定位到...

    VSCode+Vim插件

    例如,`hjkl`键可以替代方向键移动光标,`dd`用于删除当前行,`yy`复制当前行,`p`粘贴,`.`重复上一次操作。在正常模式下,组合键如`dw`或`de`可以删除单词,`/`用于查找文本,`:`进入命令行模式执行更复杂的操作。...

    Vim-官方参考手册

    手册会详细讲解Vim的命令行模式,这是配置Vim和执行一次性命令的地方。例如,`:set`命令用来设置编辑器选项,`:map`用于定义快捷键,`:source`则用于加载或重新加载.vimrc配置文件。 在语法和高亮方面,手册将指导...

    大家来学VIM

    1. **高效性**:VIM支持多种编辑模式,能够通过简单的键盘组合快速完成复杂的文本编辑任务。 2. **跨平台**:VIM可在多种操作系统上运行,包括Unix/Linux、Windows等,适用于不同环境下的开发工作。 3. **高度可定制...

    A Byte of Vim

    在写作过程中,很少有人能在第一次尝试时就写出最好的作品。通常,我们需要反复修改和完善才能达到满意的效果。在这种情况下,拥有一个功能强大的编辑器变得至关重要。正如 Louis Brandeis 所说:“没有伟大的写作,...

    Vim用户手册中文版

    用户甚至开始编写复杂的脚本,使得每一次的文本编辑过程都变得充满乐趣。此时的用户已经成为Vim的资深使用者,能够熟练地运用Vim来完成高效的编辑工作。 在整个学习Vim的过程中,用户需要将实践和理论结合起来,...

    vim使用书籍,快速入门

    然后,你可以使用`@q`来播放刚才录制的宏,或者`@@`重复上一次的宏播放。 学习vim的进阶技巧包括使用可视模式和块选择。按下`v`键,vim将进入可视模式,此时你可以通过移动光标选择文本块。接着,可以执行复制、...

    Vim中文手册(目录正常版,我手动用1.5小时改掉了目录乱码问题)

    - **逐步深入**:不要试图一次性掌握所有技巧,应该一步步来,每学完一项新技巧后立即在编辑器上实践。 - **环境适应**:确保有一个合适的Vim编辑器环境,以便能够随时练习所学内容。 - **思考与总结**:虽然强调...

    vim用户手册中文版

    - **操作技巧**:Vim提供了丰富的命令和快捷键,用户应逐步学习并熟练掌握这些技巧,而不是试图一次性全部掌握。 - **个性化定制**:用户可以根据自己的需求定制Vim的行为,比如设置快捷键、颜色主题等,以提高个人...

    Vim version 7.2 英文手册

    - **打开多个文件**: 说明如何一次性打开多个文件。 - **切换文件**: 教授如何在已打开的文件间快速切换。 ##### 分屏显示 - **水平分屏**: 如何创建水平分屏来同时查看两个文件。 - **垂直分屏**: 如何创建垂直...

    VIM使用手册(初级/高级)

    此外,'.'命令非常有用,它会重复上一次的操作,大大提高了工作效率。 在高级篇中,你将深入学习VIM的宏、映射、插件和自动命令。宏功能让你可以录制一系列操作,然后通过 '@' 符号播放,这对于批量处理相似任务...

    byte_of_vim_v051

    5. **集成开发环境**:如何将Vim配置成一个强大的IDE,包括代码高亮、自动补全等功能。 6. **调试与测试**:在Vim中进行代码调试和单元测试的方法。 7. **项目管理**:如何使用Vim进行文件管理和版本控制。 8. **...

    最新最全的linux vim命令大全

    - **u**: 撤销上一次操作。 - **Ctrl + r**: 重做撤销的操作。 - **/pattern**: 搜索文本中的模式。 - **n/N**: 跳转到下一个或上一个搜索结果。 - **:set** `选项`: 修改Vim的设置项。 - **:q!**: 不保存退出...

    Vi iMproved _VIM_vimbook-opl-EN.pdf

    当第一次启动 Vim 时,会看到一个空白窗口,如果编辑的是新文件。图 1.1 展示了屏幕的样子,其中波浪线(~)表示文件中未包含的内容。 #### 进阶命令 除了基础编辑命令外,Vim 还提供了丰富的进阶功能,包括但不...

    simple_vim_guide:简单的vim指南

    vim的正则表达式支持许多元字符,如`.`匹配任意字符,`*`匹配前一字符零次或多次,`^`表示行首,`$`表示行尾。在命令模式下,`/pattern`进行向前搜索,`?pattern`向后搜索。要替换匹配项,可以使用`:s/pattern/...

    vi vim 使用详解

    - `Ctrl + r`: 重做上一次撤销的操作。 - **移动操作**: - `h`: 向左移动一个字符。 - `j`: 向下移动一行。 - `k`: 向上移动一行。 - `l`: 向右移动一个字符。 - `0` (数字零): 移动到行首。 - `$`: 移动到...

Global site tag (gtag.js) - Google Analytics