[emacs] python代码折叠
水木某大牛写的emacs python代码折叠代码, 试了下, 非常好用. 感谢作者: jcjbrian
http://www.newsmth.net/nForum/#!article/Emacs/81688
代码如下:
发信人: jcjbrian (Brian Jiang), 信区: Emacs
标 题: Re: python代码怎么折叠啊?
发信站: 水木社区 (Sun Sep 6 16:59:38 2009), 转信
最近刚好写了一个python的折叠功能。 能简单。 是基于emacs自带的python mode。可以支持各种类型的block (如if, for等)。
关键是: mypython-fold/unfold-block。 我把它绑到了F10. 可以自己改。 其他都只是些支持代码。
-------
(defface codepilot-folding-overlay '((default (:inherit region :box (:line-width 1 :color "DarkSeaGreen1" :style released-button))) (((class color)) (:background "DarkSeaGreen2" :foreground "black"))) "*Font used by folding overlay." :group 'codepilot) (defun cptree-ov-delete () (interactive) (dolist (o (overlays-at (point))) (cptree-delete-overlay o 'cptree))) (defvar cptree--overlay-keymap nil "keymap for folding overlay") (unless cptree--overlay-keymap (let ((map (make-sparse-keymap))) (define-key map [mouse-1] 'cptree-ov-delete) (define-key map "\r" 'cptree-ov-delete) (setq cptree--overlay-keymap map))) (defun cptree-delete-overlay(o prop) (when (eq (overlay-get o 'cptree-tag) prop) (delete-overlay o) t)) (defun cptree-hide-region (from to prop) "Hides a region by making an invisible overlay over it and save the
overlay on the hide-region-overlays \"ring\"" (interactive) (let ((new-overlay (make-overlay from to))) ;;(overlay-put new-overlay 'invisible nil) (overlay-put new-overlay 'cptree-tag prop) (overlay-put new-overlay 'face 'codepilot-folding-overlay) (overlay-put new-overlay 'display (propertize (format "...<%d lines>..." (1- (count-lines (overlay-start new-overlay) (overlay-end new-overlay)))))) (overlay-put new-overlay 'priority (- 0 from)) (overlay-put new-overlay 'keymap cptree--overlay-keymap) (overlay-put new-overlay 'pointer 'hand))) (require 'python) (defun mypython-fold/unfold-block () "fold the block" (interactive) (let (ret b e) (dolist (o (overlays-at (if (python-open-block-statement-p) (save-excursion (python-end-of-statement) (point) ) (point)))) (when (cptree-delete-overlay o 'cptree) (setq ret t))) (unless ret (save-excursion (unless (python-open-block-statement-p) (python-beginning-of-block)) (python-end-of-statement) (setq b (point)) (python-end-of-block) (setq e (1- (point))) (cptree-hide-region b e 'cptree))))) (define-key python-mode-map [(f10)] 'mypython-fold/unfold-block)
转载于:https://www.cnblogs.com/foreveryl/archive/2012/08/23/2652469.html
[emacs] python代码折叠相关推荐
- [emacs] Python代码补全的各种方法介绍以及对比
Emacs的代码补全主要有以下几种选择: py-complete.el (只能用于python-mode.el) python-mode自带的pycomplete(包含一个pycomplete.el和 ...
- Emacs之hs-minor-mode折叠代码
1.进入折叠代码模式 M-x hs-minor-mode代码折叠 C-c @ C-M-s //显示所有的代码 C-c @ C-s //显示当前代码区C-c @ C-M-h //折叠所有的代码 C-c ...
- Emacs代码折叠/显示
hs-show-all:显示所有的代码 hs-hide-all:折叠所有的代码 hs-show-block:显示当前代码区 hs-hide-block:折叠当前代码区 hs-toggle-hiding ...
- emacs python开发环境_配置Emacs下的Python开发环境
特性 在Linux论坛上总有人问Python用什么IDE比较好,然后总会有人回答说Emacs.最近开始学Python,也花了点时间研究怎么配置Emacs,发现没有想象中的那么麻烦.这篇文章大致上来自于 ...
- python代码编辑器、最好_这十大文本/代码编辑器最好用
10款最著名的代码(文本)编辑器,作为程序员的你喜欢哪个,哪种代码编辑器最入你的法眼.代码编辑器对我们的用途有多大呢? 通常操作系统和软件开发包中都包含文本/代码编辑器,可以用来编辑配置文件,文档文件 ...
- python代码块-python代码块
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 开发准备cas 的 python sdk 包含了用于访问和操作 cas ...
- python代码大全下载-大神整理的python资源大全
* Python号星际旅行船 著名Python社区,代码.文档.高人这里都有. * faqts.com的Python程序设计知识数据库 Python程序设计知识库,都是与Python有关的程序设计问题 ...
- 在 Windows上写 Python 代码的最佳组合!
文章来源:机器之心 在 Windows 上怎样做 Python 开发?是像大神那样使用纯文本编辑器,还是用更加完善的 IDE?到底是用自带的命令行工具,还是需要装新的 Terminal?本文将带你了解 ...
- emacs python plugin_Windows上配置Emacs来开发Python及用Python扩展Emacs
Windows下配置Emacs来开发Python去年在网上偶然的一个机会知道了Emacs的存在,在周围前辈们都在夸赞Sublime好用的时候,喜欢跟大众唱反调的我,突然觉得如果能用Emacs来编代码, ...
最新文章
- 在html表单中设置数组的方法是什么,js如何处理表单中的数组方式?
- 利用霍夫变换做直线检测的原理及OpenCV代码实现
- pdfparser java_如何使用java从PDF中提取内容?
- redis没有加密码导致服务器被当做矿机了
- Convolutional Neural Networks for Visual Recognition 1
- cmake mysql 编译参数_Cmake-MySQL编译参数说明
- LeetCode 938. 二叉搜索树的范围和(二叉树遍历+搜索剪枝)
- linux 系统启动级别,LINUX系统启动级别介绍与解释
- 使用命令强制关闭端口进程
- Spring事务(2)使用Spring事务完成转账小例子
- 华为交换机CPU处理报文原理
- Java 3种批量插入更新操作的效率横向比较
- HTML+CSS+JS实现 ❤️ 立方体旋转图片切换特效❤️
- C语言基础之4:字符串和格式化输入/输出
- 计算机知识和应用技能,计算机实用技能及应用
- Linux好书、经典书籍推荐
- 编写autojs脚本时,vscode连接不上手机解决办法
- python七大神级插件_Python常用插件之BeautifulSoup4使用
- 奥的斯 蓝牙模块 全套制作资料
- VMware 虚拟机设置nat网络