https://github.com/lujun9972/mylisp
https://github.com/lujun9972/mylisp
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/lujun9972/mylisp
- Owner: lujun9972
- Created: 2015-03-01T03:42:40.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2021-02-23T00:46:55.000Z (over 5 years ago)
- Last Synced: 2025-09-14T13:51:00.255Z (10 months ago)
- Language: Emacs Lisp
- Size: 194 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
#+TITLE: README
#+AUTHOR: lujun9972
#+OPTIONS: ^:{}
* org-gamification
是一个简单的对Org-mode游戏化的尝试,主要就是通过完成任务赚取积分,用然后用积分购买奖励物品.
* 使用"(org-babel-load-file "org-gamification.org")"加载代码
* 执行`M-x org-gamification-init'初始化游戏状态(该动作每个org文件只需要做一次)
* 执行`M-x org-gamification-start'则会进入游戏状态. 这时每完成一个事项即可增加积分.
默认情况下[#A]级任务增加30积分,[#B]级任务增加20积分,[#C]级任务增加10积分.
但可以通过为每个entry设置REWARD属性的方式自定义完成该entry所获得的奖励积分数,需要为整数.
* 可以使用`M-x org-gamification-add-reward'来添加想购买的奖励物品
将表示奖励物品的entry设置为完成状态表示购买该奖励物品,需要消耗积分. 若积分不够,则会阻止购买,即该entry无法变为完成状态
* 执行`M-x org-gamification-end'来退出游戏状态
* autoftp
由于经常需要在本地编辑代码后上传到远程服务器上编译,因此写了这么个小东西,每次保存文件时自动通过tramp上传到远程服务器上.
* 配置`autoftp-local-remote-root-alist'变量
该变量指明了本地路径的文件应该上传到远程服务器的哪个地方,即它为本地项目root与对应的remote地址的alist
其中remote-root的格式应为/username@ip:/path/to/root/
* 使用`(require 'autofetp)'加载代码
* 使用`M-x turn-on-auto-ftp'进入自动上传状态,这时保存本地文件会自动上传到远程服务器上
* 使用`M-x turn-off-auto-ftp'退出自动上传状态.
* monitor
* 在使用前,请保证系统有plink或ssh
* 加载monitor库:
#+BEGIN_SRC emacs-lisp
(require 'monitor)
#+END_SRC
* 创建一个process连接到要监控的远程机器上
#+BEGIN_SRC emacs-lisp
(setq p1 (start-connect-process "IP" "USR" "PWD"))
#+END_SRC
* 可以创建多个process连接到不同的远程机器上
* 创建一个monitor,一个monitor由要执行的检测命令,以及根据检测命令的返回结果指定相应回应命令的rule列表组成
#+BEGIN_SRC emacs-lisp
(setq m1 (make-monitor :exam-cmd "df |grep cnaps2"
:reaction-rules '(("[89]?%" . "echo disk is almost full")
("100%" . "echo disk is full! please clean it"))))
#+END_SRC
reaction-rules的格式为由(match . action)组成的alist
当process的output匹配matchN时,执行actionN命令:若action为字符串,则往process发送action命令,否则action为函数,它接收output作为参数,并返回要发送給process的命令字符串"
* 使用add-process-monitor将monitor应用到表示远程机器的process上
#+BEGIN_SRC emacs-lisp
(add-process-monitor p1 m1)
#+END_SRC
* 可以为一个process添加多个monitor
* 执行(active-all-processes-monitors)会执行次所有process中的所有monitor
* 若想每隔10s钟自动激活一次process中的所有monitor,可以:
#+BEGIN_SRC emacs-lisp
(setq t1 (run-at-time 0 10 #'active-all-processes-monitors))
#+END_SRC
* evolution-game
"land of lisp"中进化模拟游戏的elisp实现.
其实基本都是照抄书里的...
* proc-info
方便查看/proc信息的小工具
** TODO 增加/proc信息的中文解释
* eshell-ido-pcomplete
在eshell中使用ido进行补全,目前支持命令,文件路径,lisp函数和lisp变量的补全
使用方法为
1. 将eshell-ido-pcomplete.el放到`load-path'中
2. 在eshell buffer中执行`(require 'shell-ido-pcomplete)',则tab键被绑定到eshell-ido-pcomplete
* eshell-auto-execute-commands
允许eshell中不按回车,自动执行命令
使用方法为
1. 将eshell-auto-execute-commands.el放到`load-path'中
2. 配置变量`eshell-auto-executable-commands',改变量为一个存储自动执行命令的list.
例如要在eshell下输入iff就立即执行ido-find-file命令,只需要,先在eshell中执行
#+BEGIN_SRC sh
alias iff ido-find-file
#+END_SRC
然后在emacs配置文件中加入
#+BEGIN_SRC emacs-lisp
(add-to-list 'eshell-auto-executable-commands 'iff)
#+END_SRC
3. 执行命令`turn-on-eshell-auto-execute-commands'开启自动执行command模式
此时,在eshell中输入iff则会自动调用`ido-find-file'函数
4. 执行命令`turn-off-eshell-auto-execute-commands'关闭自动执行command模式