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

回忆Emacs和Vim的学习之路v0.0.9

注1:时间有限,一次不能完成本文,慢慢添加、改进。注2:暂时没有注2.Emacs还是Vim最早偏听偏信,嫌弃E

注1:时间有限,一次不能完成本文,慢慢添加、改进。
注2:暂时没有注2.

Emacs 还是Vim

最早偏听偏信,嫌弃 Emacs “臃肿”,忍受着不停的“哔哔哔”,先学习了 Vim。
后来在好奇心和折腾的本能驱使下,开始走上 Emacs 之路。

但我并不是所谓的 Emacs 党。
我的常用机器上默认不开 ssh server, 要 root 权限进行编辑的时候,用不了tramp mode,
所以是sudo vim
在测试机上的编辑文件的时候,Vim/Vi 也是首选了。懒,就一个字。

我不用 Emacs 的 evil mode,倒是在Vim 里做了以下4个的键位映射/绑定:

imap i
imap la
imap 0I
imap $a
学习的各个阶段

我把自己定位在“编辑器用户”,都不考虑插件开发,所以大概分为3个阶段:
陌生、熟练、高手。

陌生 -> 熟悉

印象

Vim 给我的印象是:谦虚、谨慎、高效。
让它做什么就做什么,感觉很好控制和沟通,不做多余的事。
当然也要讲它的“语言”,简单高效的按键和命令。

Emacs 的印象则是:激进。
做了很多不想它做的事,怎么配置都达不到理想状态。
比如:自动缩进使用制表符tab还是空格。搞了几次,头大,然后把 Emacs 卸载了。

操作

Vim 用户应该都有的初体验:不知道怎么输入、怎么退出。
但是在不断的“哔哔哔”声之后,开始享受它的按键方式。

Emacs 的问题就在频繁使用CtrlAltEsc的别扭。
虽然习惯之后谈不上享受,但也是非常高效。

配置复杂度

不算空行和注释,
Vim 的配置文件,30行之内就能“够用”,并且语法简明。
Emacs 则需要100行左右,或者更多,语法是elisp,只能说“很好玩”。

熟悉 -> 熟练:

vim:
成就感不断提高,但如果跟 emacs 比较,感觉移动速度低于预期。
多文件操作体验不顺畅。
需求插件。

emacs:
开始体会到它奇葩的学习曲线。
但并不建议开始 living in emacs。
探索更多功能,需求更多配置。
emacs 自带了很多插件,早就在用了, 之前没在意到吧。

熟练 -> 高手:

[还没到“高手”阶段]

其他

养成好的 编程/写作 习惯

看过一个 编程培训班在线视频,那讲课人的编程习惯,就算是 万能神本尊都救不了他,
更不用说“编辑器之神”或者“神之编辑器”了。

语法高亮

关闭。

理由:
语法高亮干扰代码阅读?注:暂时引用这个地址,有时间转到sf 来。

方法:

  • 启动:
    emacs --color=never
  • 配置:

.emacs

(global-font-lock-mode 0)

.vimrc

syntax off

  • 命令:

M-x font-lock-mode

server mode

emacs

  • 启动:
    emacs --daemon
  • 配置:

(server-mode)

  • 使用
    emacsclient

vim

vim server/client 模式需要编译时开启支持。
通过vim -h| grep servername 有没有输出检查,如果没有,
则需要安装 带c/s mode 支持的vim。
然后,
vim --servername xx
vim --serverlist
vim --remote xx

对 Vim 插件的理解

我理解 Vim 的特点的灵巧、精准,过分的用插件填充,真的会让它变得臃肿
所以我不会想把 Vim 变成 IDE,

比如,
我会用cscope 调用vim,而不想用一个 cscope.vim 的插件。

emacs 配置

gnu global

gtags 提供的cscope 类似界面的工具:

(setq cscope-program “gtags-cscope”)



推荐阅读
  • 黄聪:MySQL主从复制配置,实现高效读写分离
    大型网站为应对高并发访问,不仅需要在前端实现分布式负载均衡,还需在数据业务和访问层采取有效措施。采用传统的数据结构已无法满足需求,通过配置MySQL主从复制,可实现高效的读写分离,显著提升系统性能和稳定性。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 本文深入探讨了 Python Watchdog 库的使用方法和应用场景。通过详细的代码示例,展示了如何利用 Watchdog 监控文件系统的变化,包括文件的创建、修改和删除等操作。文章不仅介绍了 Watchdog 的基本功能,还探讨了其在实际项目中的高级应用,如日志监控和自动化任务触发。读者将能够全面了解 Watchdog 的工作原理及其在不同场景下的应用技巧。 ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 本指南详细介绍了如何使用 `apt-get` 命令在 Ubuntu 系统上部署 MySQL 5、Apache 2、PHP 5 及 phpMyAdmin。首先,建议读者查阅 Ubuntu 的官方文档以获取更多背景信息。通过本文,您将逐步了解每个软件包的安装过程及其配置方法,确保系统环境的稳定性和安全性。此外,还将提供一些常见问题的解决方案,帮助用户顺利完成部署。 ... [详细]
  • 精通jQuery:深入解析事件处理机制与应用技巧
    本文详细探讨了jQuery的事件处理机制及其应用技巧,通过具体的代码示例,逐一解析了每个jQuery代码片段与其对应的HTML结构。文章以标记为基准,CSS作为通用样式,确保每段代码都能独立运行。HTML和CSS代码统一放置在文章末尾,方便读者参考和实践。 ... [详细]
  • 在Linux系统中Nginx环境下SSL证书的安装步骤与WordPress CDN的高级配置指南
    在Linux系统中,Nginx环境下安装SSL证书的具体步骤及WordPress CDN的高级配置指南。首先,安装SSL证书需要准备两个关键配置文件,并建议在操作前备份相关服务器配置文件,以确保数据安全。随后,本文将详细介绍如何在Nginx中正确配置SSL证书,以及如何优化WordPress的CDN设置,提升网站性能和安全性。 ... [详细]
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 开发技巧分享:利用套索与矩形选择工具高效选取绘图中的全部字形节点
    开发技巧分享:利用套索与矩形选择工具高效选取绘图中的全部字形节点 ... [详细]
  • NanoPi2 使用体验深入解析(续篇)
    随着Raspberry Pi的问世,开源硬件领域迎来了前所未有的发展,激发了全球范围内的创新热潮。在中国,这一趋势同样催生了一系列类似的开发板,例如NanoPi 2。本文作为前篇的延续,将深入探讨NanoPi 2的实际使用体验,从性能、兼容性到应用场景,进行全面分析。 ... [详细]
  • 红旗Linux社区发布预览版本,带来全新体验与技术升级
    红旗Linux社区近日发布了其桌面操作系统v11的最新社区预览版,此次更新带来了显著的技术提升和用户体验优化。新版本特别增强了对兆芯硬件平台的支持,为用户提供了更加稳定和高效的计算环境。此外,该版本还针对性能和安全性进行了多项改进,旨在满足专业用户的需求。 ... [详细]
author-avatar
手机用户2502891267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有