最近刚好写了一个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)
点击Sublime的Preferences->Setting-Default菜单,打开它的配置文件。找到如下一行的配置:"fold_buttons": true,值为true则是显示三角折叠按钮,反之则不显示。
当然了,不推荐直接改它的默认配置文件,可以在Setting-User里覆盖此变量值。
Sublime Text:
Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。
2012年6月26日推出新版本的Sublime Text 2.0,与之前版本相比主要有较大的改善:支持 Retina 视网膜屏、快速跳到下一个、文本拖放、改善构建系统、CSS 自动完成和高亮设置等。
pycharm常用的快捷键总结
搜索
Ctrl + Shift + F7 用法高亮显示
Ctrl + Alt + F7 显示用法
编辑
Ctrl + Shift + V 从最近的缓冲区粘贴
Ctrl + D 复制选定的区域或行到后面或下一行
Ctrl + Y 删除当前行
Ctrl + Shift + J 添加智能线
Ctrl + Enter 智能线切割
Shift + Enter 下一行另起一行
Ctrl + O 重新方法
Ctrl + Alt + T 选中
Ctrl + Numpad+/- 展开折叠代码块
Ctrl + Numpad+ 全部展开
Ctrl + Numpad- 全部折叠
Ctrl + F4 关闭运行的选项卡
Ctrl + Space 基本的代码完成(类、方法、属性)
Ctrl + Alt + Space 快速导入任意类
Ctrl + Shift + Enter 语句完成
Ctrl + P 参数信息(在方法中调用参数)
Ctrl + Q 快速查看文档
Ctrl + / 行注释
Ctrl + Shift + / 块注释
Ctrl + W 选中增加的代码块
Tab / Shift + Tab 缩进、不缩进当前行
Ctrl+X/Shift+Delete 剪切当前行或选定的代码块到剪贴板
Ctrl+C/Ctrl+Insert 复制当前行或选定的代码块到剪贴板
Ctrl+V/Shift+Insert 从剪贴板粘贴
Ctrl + Alt + I 自动缩进
Ctrl + Shift + U 在选定的区域或代码块间切换
Ctrl + Delete 删除到字符结束
Ctrl + Backspace 删除到字符开始
Shift + F1 外部文档
Ctrl + 鼠标 简介
Ctrl + Shift + W 回到之前状态
Ctrl + Shift + ]/[ 选定代码块结束、开始
Alt + Enter 快速修正
Ctrl + Alt + L 代码格式化
Ctrl + Alt + O 自动导入
Ctrl + F1 显示错误描述或警告信息
Alt + Insert 自动生成代码
相关推荐:《Python教程》
运行调试
Alt + Shift + F10 运行模式配置
Shift + F10 运行
Shift + F9 调试
Alt + Shift + F9 调试模式配置
Ctrl + Shift + F10 运行编辑器配置
Ctrl + Alt + R 运行manage.py任务
查找替换
F3 下一个
Ctrl + Shift + F 全局查找
Shift + F3 前一个
Ctrl + R 替换
Ctrl + Shift + R 全局替换
重构
Ctrl + Alt + N 内联
Ctrl + Alt + M 提取方法
F5 复制
F6 剪切
Alt + Delete 安全删除
Shift + F6 方法或变量重命名
Ctrl + Alt + V 提取属性
Ctrl + Alt + F 提取字段
Ctrl + Alt + C 提取常量
Ctrl + Alt + P 提取参数
Ctrl + F6 更改签名
跳转
Ctrl #[0-9] + 跳转到标识的书签
Shift + F11显示书签
Shift + Esc 隐藏当前窗口,焦点到编辑窗口
Ctrl + Shift + F4 关闭主动运行的选项卡
Ctrl + G 查看当前行号、字符号
Ctrl + E 最近访问的文件
Ctrl+Alt+Left/Right 后退、前进
Ctrl + N 跳转到类
Ctrl + Shift + N 跳转到符号
Alt + Right/Left 跳转到下一个、前一个编辑的选项卡
F12 回到先前的工具窗口
Esc 从其他窗口回到编辑窗口
Ctrl+B / Ctrl+Click 跳转到声明
Ctrl + Alt + B 跳转到实现
Ctrl + Shift + I 查看快速定义
Ctrl + Shift + B 跳转到类型声明
Ctrl + U 跳转到父方法、父类
Alt + Up/Down 跳转到上一个、下一个方法
Ctrl + ]/[ 跳转到代码块结束、开始
Ctrl + F12 弹出文件结构
Ctrl + H 类型层次结构
Ctrl + Shift + H 方法层次结构
Ctrl + Alt + H 调用层次结构
F2 / Shift + F2 下一条、前一条高亮的错误
F4 / Ctrl + Enter 编辑资源、查看资源
Alt + Home 显示导航条F11书签开关
Ctrl + Shift +F11 书签助记开关
Ctrl+Shift+Backspace 导航到最近编辑区域
Alt + F1 查找当前文件或标识
调试
Alt + F9 运行游标
Alt + F8 验证表达式
F8 跳过
F7 进入
Ctrl + Alt + F8 快速验证表达式
F9 恢复程序
Ctrl + F8 断点开关
Ctrl + Shift + F8 查看断点
Shift + F8 退出
常用
Tab / Shift + Tab 缩进、不缩进当前行(可选中多行)
Ctrl+C/Ctrl+Insert 复制当前行或选定的代码块到剪贴板
Ctrl + D 复制选定的区域或行到后面或下一行
Ctrl + Y 删除当前行
Shift + Enter 下一行另起一行
Ctrl +J 插入模版
Ctrl + Shift +/- 展开/折叠全部代码块
Ctrl + Delete 删除到字符结束
Ctrl + Backspace 删除到字符开始
Ctrl + Shift + F7 将当前单词在整个文件中高亮
Alt + up/down 方法上移或下移动
Alt + Shift + up/down 当前行上移或下移动
Ctrl + B/鼠标左键 转到方法定义处
Ctrl + W 选中增加的代码块
Shift + F6 方法或变量重命名
Ctrl + E 最近访问的文件
Esc 从其他窗口回到编辑窗口
Ctrl + F1 显示错误描述或警告信息
Ctrl + / 行注释(可选中多行)