热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vimemacsLinuxJava编程环境,为什么用vim(emacs)而非ide去写代码?

该楼层疑似违规已被系统折叠隐藏此楼查看此楼为什么用vim(或者emacs)写代码?我见过太多ide写过的程序他们是以下状态分布的第一种几乎没有什么后端代码࿰

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

为什么用vim(或者emacs)写代码?

我见过太多ide写过的程序他们是以下状态分布的

第一种几乎没有什么后端代码,所有的界面和代码混合,奇怪的空格和控位符。——这是大多数ide所默认的状态,因为制造垃圾最简单。

二种做到了界面和代码分离,但是里面充满了自动填充的人所看不懂的变量名等东西——ide能做很多事情,包括你没让他做的,如果是人工手写的,那么你还可

以讨论统一命名的问题,但是ide却麻烦的多。另外,如果你只有一个编辑器的话——我是指带扩展功能的编辑器,你可以往上面加你喜欢的功能,但是ide不

见得那么简单

第三种,他费了功夫,已经去掉了所有不需要的功能,但是麻烦是ide鸡肋的智能——他能自动补齐对应标签(或者括号,或者其他神么),但是又不够智能,比如总是放在错误的位置,或者大部分正确,但是又无法很好的处理意外情况。我没有见任何人很好的解决了这个问题。

第四种我见到的是滥用平台提供的函数和功能,大段的生成代码却没有任何优化,堆积出来的东西就像一个发育不良的脑瘫儿。——ide可以补全,ide可以显示功能,ide可以帮助你理解所用的函数,但是,他不能做到全部,比如帮你选择正确的函数而无需思考。

而我又见过太多vim(或者emacs)所写的代码。包括我,即使是页面(js,css或者html)也是用他们来写。如果说为什么我更喜欢这样的代码的话,是因为正如《梦断代码》中所说的,vim(或者emacs)提供了良好的“限制”!

对,

正是限制,而非智能而造就了良好的编程习惯——我可以感觉到我写C的时候括号配对的节奏,我就是不去看身体也知道我在写什么,因为函数和程序块括号换行的

节奏(你可以吧回车当作节拍,函数一般还要多一个语句结束符)正好相差一个。甚至你可以明白,任何函数都是这样的,你噼里啪啦的打字,你能感受到不同的节

拍——而不是像ide那样单一的噼(首字母)——啪(补全)。

其次,正是功能的限制,你不得不考虑很多事情,就像写作一样——合理的命名,精简的函数(否则你会花很多时间去记忆和输入),复杂的组合,所以写出来的代码也是优美的,那些不是一个电子脑所能给的符号,而是真正有逻辑意义的代码。

最后,他不是最快的,但是最终是快的,而且工程越大,他的速度越快——因为你考虑了结构,而结构是如此的重要,直接决定了时间,代码量,甚至金钱,甚至已经决定了你是否值得去写那些代码。

如果以上都不是理由的话,我想你也是正确的,因为我不是一个优秀的码农,现在我也没做相关工作,编程只是每夜的业余爱好罢了。



推荐阅读
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 网站前端开发的核心理念与必备技能解析 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • 深入解析 Spring MVC 的核心原理与应用实践
    本文将详细探讨Spring MVC的核心原理及其实际应用,首先从配置web.xml文件入手,解析其在初始化过程中的关键作用,接着深入分析请求处理流程,包括控制器、视图解析器等组件的工作机制,并结合具体案例,展示如何高效利用Spring MVC进行开发,为读者提供全面的技术指导。 ... [详细]
  • 整合百度UEditor编辑器于ASP后端的实现步骤与技巧
    随着微软停止对XP系统的支持,公司已全面升级至Windows 7。早期网站创建时使用的编辑器仅兼容IE6浏览器,而如今系统更新后,原有的编辑器已无法满足新环境的需求。本文详细介绍了如何将百度UEditor编辑器整合到ASP后端,包括实现步骤和实用技巧,确保网站在新系统下仍能高效运行并提供良好的用户体验。 ... [详细]
  • MacBook上Vim基础个性化设置指南
    在MacBook上进行Vim的基础个性化设置,首先需要在终端中输入 `vim ~/.vimrc`。接着,将以下配置代码粘贴到 `.vimrc` 文件中:```vimset tabstop=4set numbersyntax oncolorscheme murphy```此外,Vim提供了多种配色方案供用户选择,建议自行探索并选择最适合自己的配色文件。通过这些简单的步骤,你可以显著提升Vim的使用体验。 ... [详细]
  • 10款精选jQuery插件助力响应式网页设计布局优化
    响应式网页设计在当今的数字环境中至关重要。本文精选了10款优秀的jQuery插件,旨在帮助设计师和开发者优化网站布局,确保内容在不同设备上(如手机、平板电脑等)都能呈现最佳效果,提升用户体验。这些插件不仅功能强大,还能显著简化开发流程,提高工作效率。 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ... [详细]
  • Python学习:环境配置与安装指南
    Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
  • HTTP协议作为互联网通信的基础,其重要性不言而喻。相比JDK自带的URLConnection,HttpClient不仅提升了易用性和灵活性,还在性能、稳定性和安全性方面进行了显著优化。本文将深入解析HttpClient的使用方法与技巧,帮助开发者更好地掌握这一强大的工具。 ... [详细]
author-avatar
poohyxp
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有