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

小情人emacs的自动补全

前天打字的时候发现手指疼…..OTL…思考了一下可能是我近几个月以来一直在使用全部手敲代码不使用自动补全的“恶果”(当然我还是建议全部手敲的,至少可以感

前天打字的时候发现手指疼…..OTL…思考了一下可能是我近几个月以来一直在使用全部手敲代码不使用自动补全的“恶果”(当然我还是建议全部手敲的,至少可以感觉到强烈的屌丝满足感)。

先来个效果图

image

是不是看上去碉堡了…

用的github上面的这个神奇的东西

auto-complete

下载之后有说明文档,按照说明文档进行安装,这里说下遇到过的问题

如果你是第一次和你的情人约会(给emacs安装插件)

需要你添加这样一句话在你的.emacs文件中

(add-to-list 'load-path "~/.emacs.d")

里面的"~/.emacs.d"表示你的.emacs.d的文件夹的位置(就是你按照文档安装的时候安装到的路径,这个是默认路径,亲测windows和osX都可以这样写)

之后如果可能说

symbol's value as variable is void ac-dictionary-directories

这个时候把下面这一行提前(在 上面增加的那一行之后)

(require 'auto-complete-config)

然后有可能会说找不到popup什么什么巴拉巴拉的一堆

搜了一下感觉是这样,auto-complete只是负责补全,但是那个下拉框一样的东西是需要popup这个插件的

在git上面找到这个:

popup

然后按照文档轻松安装一下,然后再进入emacs发现不报错了。小情人的又一次调教完成了!可以开始享受了。

之后我把.emacs和.emacs.d两个文件和dropbox里面做了链接,然后以后走到哪,emacs的配置都可以轻松同步了,小情人随叫随到,真是让人爱不释手啊。

ps: 上周参加BCTF和队友们聊天说用什么编辑器,后来说到了vim和emacs两个。但是又说这两个家伙实在是麻烦了,配置起来很浪费时间。我就说,这才是他们的魅力。就好像在养一个情人,所有你做的事情都是私人定制的,她哪里让你不舒服你都能修改(快捷键),可以给她买衣服(装插件)。关键的问题是她不会反抗!!

最后再附上一个最近修改的.emacs文件的内容

1: (custom-set-variables

2: '(custom-enabled-themes (quote (dichromacy)))

3: '(inhibit-startup-screen t))

4: (custom-set-faces

5: )

6: ;;添加load-path

7: (add-to-list 'load-path "~/.emacs.d")

8: ;;自动补全

9: (require 'auto-complete-config)

10: (ac-config-default)

11: (auto-complete-mode t)

12: ;;设置非macOS的字体

13: (set-default-font " -outline-Verdana-normal-normal-normal-sans-17-*-*-*-p-*-iso8859-1")

14: (when (eq system-type 'darwin)

15: ;;设置一个MacOS字体

16: (set-default-font " -apple-Monaco-medium-normal-normal-*-14-*-*-*-m-0-iso10646-1")

17: ;;干掉小方框!!因为上面那个万恶的字体没有草泥马的斜体!!!

18: (set-fontset-font "fontset-default" 'gb18030' ("STHeiti" . "unicode-bmp"))

19: )

20: ;;设置一个屌逼的c风格的缩进

21: (setq c-basic-offset 4)

22: ;;设置一个开始的路径

23: (setq default-directory "/Users/lulala/Documents/")

24: ;;关掉默认的tab设置为4个空格

25: (setq default-tab-width 4)

26: (setq-default indent-tabs-mode nil)

27: ;;弄出来行号

28: (global-linum-mode t)

29: ;;设置好左右匹配

30: (global-set-key [(meta left)] 'backward-sexp)

31: (global-set-key [(meta right)] 'forward-sexp)

32: ;;M-g设置为gotoline

33: (global-set-key [(meta g)] 'goto-line)

34: ;;设置注释区域

35: (defun my-comment-or-uncomment-region (beg end &optional arg)

36: (interactive (if (use-region-p)

37: (list (region-beginning) (region-end) nil)

38: (list (line-beginning-position)

39: (line-beginning-position 2))))

40: (comment-or-uncomment-region beg end arg)

41: )

42: (global-set-key [(control /)] 'my-comment-or-uncomment-region)

43:  

44: ;;设置搜索时严格按照大小写

45: (setq-default case-fold-search nil)

46:  

47: ;;设置搜索时高亮系那是全部

48: (setq search-highlight t)

49:  

50: ;;设置替换时高亮显示

51: (setq query-replace-highlight t)

52: ;;设置背景颜色

53: (set-background-color "#faf9de")

54: ;;应该是行号之后空一条

55: (put 'upcase-region 'disabled nil)

56: ;;set meta real meta

57: (when (eq system-type 'darwin)

58: (setq mac-option-modifier 'meta)

59: (setq mac-command-modifier 'control)

60: (global-set-key [kp-delete] 'delete-char) ;; sets fn-delete to be right-delete

61: )

62: ;;()的匹配

63: (show-paren-mode t)

64: (setq show-paren-style 'parentheses)

65: ;;光标移动到鼠标的时候把鼠标干掉!

66: (mouse-avoidance-mode 'animate)

67: ;;设置光标为|而不是小黑块

68: (setq-default cursor-type 'bar)

69: ;;设置打开ejs的时候默认使用html-mode

70: (

71: setq auto-mode-alist

72: ( append

73: '(("\\.ejs\\'" . html-mode)

74: ("\\.s?html?\\'" . html-mode)

75: (" \\.asp\\'" . html-helper-mode)

76: ("\\.phtml\\'" . html-helper-mode)

77: ("\\.css\\'" . css-mode)

78: ("\\.pc$" . c-mode)

79: )

80: auto-mode-alist))


转:https://www.cnblogs.com/qoshi/p/3598068.html



推荐阅读
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • protobuf 使用心得:解析与编码陷阱
    本文记录了一次在广告系统中使用protobuf进行数据交换时遇到的问题及其解决过程。通过这次经历,我们将探讨protobuf的特性和编码机制,帮助开发者避免类似的陷阱。 ... [详细]
  • Logging all MySQL queries into the Slow Log
    MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 题目编号:2049 [SDOI2008]Cave Exploration。题目描述了一种动态图操作场景,涉及三种基本操作:断开两个节点间的连接(destroy(a,b))、建立两个节点间的连接(connect(a,b))以及查询两节点是否连通(query(a,b))。所有操作均确保图中无环存在。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 字符串中特定模式出现次数的计算方法
    本文详细探讨了如何高效地计算字符串中特定模式(如'pat')的出现次数,通过实例分析与算法解析,帮助读者掌握解决此类问题的方法。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
author-avatar
北辰孤星123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有