当python模式遇见cedet
TAG: emacs, python, cedet, semantic, ctags
DATE: 2013-08-20
我用Emacs 24写python程序。 发现屏幕不时有些闪动,MiniBuffer有消息一闪而过。 我打开 *Messages*
buffer,发现有许多这样的消息:
CTAGS/movie-scheduling.py...
Can't guess python-indent-offset, using defaults: 4
Mark set [7 times]
CTAGS/movie-scheduling.py...
Can't guess python-indent-offset, using defaults: 4
Mark set [7 times]
CTAGS/movie-scheduling.py...
Can't guess python-indent-offset, using defaults: 4
Mark set [7 times]
... ...
每当我修改python程序,就会不停出现类似上面的消息。消息增加得很快,几乎两秒增 加一次。有时会占用许多CPU,导致输入程序有延迟。
不知道这是 python-mode 的问题,还是 semantic 在分析文件。
如果是 semantic 在分析文件, 在我写 c/c++/java 程序时, semantic的活动又没有这么频繁。
通过以下的分析,发现不是 python-mode 的问题,也不是semantic的问题,具体来说 是semantic启用ctags辅助产生的问题。
- 不启用cedet,编辑python程序,不会出现上面说的问题,说明不是python模式的问 题。
启用cedet,编辑python程序,问题又出现。每次一改动python程序,就会出现问题 中描述的信息。但是semantic分析文件,怎么会调用ctags呢?
我发现我的.emacs中,cedet的设置有这样一句:
(semantic-load-enable-all-exuberent-ctags-support)
应该就是它了,注释掉这一句,重启emacs,再编辑python程序,不再出现上面的问题了。
要想保留ctags对semantic的支持,也可以保留上面的配置,再加一句也可以解决问题。
(global-semantic-idle-scheduler-mode nil)
不让semantic利用空闲时间分析文件,它也就不会频繁地调用ctags分析python文件 了。 这样做的坏处就是,当你要访问某个tag时,semantic可能要临时分析,花的 时间较长。 不过可以忍受
当python模式遇见cedet的更多相关文章
- 纯Python模式
http://crcmod.sourceforge.net/intro.html https://help.aliyun.com/document_detail/85288.html OSS的CRC数 ...
- Python 实习遇见的各种面试题
Python 语法 说说你平时 Python 都用哪些库 == 和 is 区别. == 是比较两对象的值,is 是比较在内存中的地址(id), is 相当于 id(objx) == id(objy). ...
- [Python模式]策略模式
策略模式 定义了算法族,分别封装起来,让它们之间可以互相替换.此模式让算法的变化独立于使用算法的客户. 作为动态语言,Python实现策略模式非常容易,只要所有算法提供相同的函数即可. import ...
- 命令和python模式转换
安装完paython成功之后,就必须了解一下:命令模式和python交互模式 1.我们输入 cmd 之后进入的运行环境就是命令模式 2.在命令模式下输入 python,看到>>> ...
- selenium webdriver+windows+python+chrome遇见的问题
win7系统,在python中调用ChromeDriver 一直报错 “ selenium.common.exceptions.WebDriverException: Message: 'Chrome ...
- Linux下Python模式下【Tab】自动补全
注:此文为转载他人博客,如有侵权,请联系我删除 1.我们需要一个tab补全的功能脚本 #!/usr/bin/python # python tab file import sys import re ...
- python 模式之工厂模式
转自:https://www.cnblogs.com/lizhitai/p/4471952.html 工厂模式是一个在软件开发中用来创建对象的设计模式. 工厂模式包涵一个超类.这个超类提供一个抽象化的 ...
- python编程遇见的异常
import sys print('目前系统的编码为:',sys.getdefaultencoding()) # 目前系统的编码为: utf-8 name = 'this is a test!' pr ...
- python学习笔记-(十三)堡垒机
1.课前准备: 本次学习堡垒机相关知识:之前,需要安装Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. 前提: python3.5程序安装到默认路径下并已添加pa ...
随机推荐
- cobbler技术详解(是PXE二次详解)
Cobbler是PXE的二次封装,使用Python语言开发, 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学 ...
- [转帖]2018年JVM生态系统报告出炉
很多未解之谜终于有答案了——2018年JVM生态系统报告出炉 https://blog.csdn.net/hollis_chuang/article/details/84134298 2018年1 ...
- [官网]SQLSERVER ON linux 的最低要求 以及安装方法
快速入门:在 Red Hat 上安装 SQL Server 并创建数据库 总体说明: 适用于: SQL Server (仅限 Linux)Azure SQL 数据库Azure SQL 数据仓库并行数据 ...
- centos6.7 安装JDK
1.卸载JDK 查看系统是否已安装JDK.一般的linux都默认使用了开源的openJDK.显示JDK版本信息,已经安装JDK,否则没有安装.命令行: [root@localhost ~]# ja ...
- CentOS7无法使用tab补全功能??
Centos7在使用最小化安装的时候,没有安装自动补全的包,需要自己手动安装. yum -y install bash-completion 或者你可以安装一些初始化的包组 yum -y groupi ...
- javascript易混淆的split()、splice()、slice()方法详解
很多时候,一门语言总有那么些相似的方法,容易让人傻傻分不清楚,尤其在不经常用的时候.而本文主要简单总结了JavaScript中的关于字符串和数组中三个容易混淆的方法.旨在方便查阅,在容易混淆的时候有据 ...
- html实现鼠标悬停变成手型实现方式
1.采用a标签实现的方式 <a href="javascript:void()">内容</a> 2.采用CSS实现的方式 // 变手形 oElement.s ...
- Qt4问题集锦
一.Qt程序发布后加载的jpg.jpeg图片不可见 问题的提出: 最近在客户机器上部署安装QT编写的软件,发现只要是jpg.jpeg格式的图片都无法显示出来.最后发现必须按如下述步骤才能显示jpg.j ...
- IoT固/软件更新及开源选项
会出什么问题呢?大多数这些设备的设计都不像是被恶意攻击的目标. 嵌入式系统传统上被认为是稳定的产品, 但实施起来成本高昂, 因为投资回报率(ROI)在的周期比较长. 在过去一旦发货, 就很少需要更新这 ...
- 【BZOJ1011】遥远的行星(???)
题面 BZOJ 洛谷 题解 大概就是分个块,然后每块取平均数算贡献啥的. BZOJ上过不去??? #include<iostream> #include<cstdio> usi ...