扩展emacs之一:计算buffer选中区域的字符串长度
来源:互联网 发布:网络传播 编辑:程序博客网 时间:2024/06/14 02:53
这是一个简单的场景,目的是将其他语言编写的程序集成到emacs里面,而不是打开emacs shell,执行这个脚本。
假设有一个文件,里面存放的是文本,用emacs打开,
然后选择一段文本
现在运行一个自定义命令M-x get-length
get-length会运行预先准备好的newlisp脚本,来统计被选中的文本的长度,输出到一个新的 buffer,并显示该buffer.
现在准备一个文本文件: input.txt,里面有一堆字符串
maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
编写一个elisp文件region.el
(defun region-length (startPos endPos) "Do some text processing on region. This command calls the external script “wc”." (interactive "r") (let (cmdStr) (setq cmdStr "/your/path/length.lsp") ; full path to your script (shell-command-on-region startPos endPos cmdStr nil nil nil t) (switch-to-buffer-other-window "*Shell Command Output*") ) )
说明:
shell-command-on-region的第4个参数nil表示会打开*Shell Command Output* buffer.
newlisp脚本lenght.lsp输出的结果到stdout,会写入到这个buffer中. newlisp脚本需要设置绝对路径
现在看一下length.lsp
#!/usr/bin/newlisp(while (read-line) (setf str (current-line)) (println (length str)) )(exit)
现在测试一下:
M-x load-file 加载region.el
然后打开input.txt buffer,选中几个字符
M-x region-length
结果会打开一个buffer,显示长度。
0 0
- 扩展emacs之一:计算buffer选中区域的字符串长度
- 计算字符串的长度
- 计算字符串的长度
- 计算字符串的长度
- 计算字符串的长度
- 计算中英文字符串的长度!
- java 字符串的长度计算
- 数组、字符串长度的计算
- JS计算字符串的长度
- 字符串长度的计算与字符串比较
- 动态计算字符串的区域大小
- emacs的模式和buffer
- 计算中英文合并的字符串的长度
- ios的计算字符串的长度
- 计算含有汉字的字符串的长度
- (小技巧八)计算字符串的长度
- 计算字符串的空间长度(像素)
- 计算中英文混合字符串的长度
- EffectiveJava(2)应对多个构造函数应当使用构建器
- 汇编基础:函数调用堆栈
- 聚类算法
- POJ角谷猜想
- iOS数据安全-md5加密
- 扩展emacs之一:计算buffer选中区域的字符串长度
- 深入学习的艺术——每一个程序员都必不可少的技能
- nyoj 取石子(七) 环形博弈
- Docker for Windows Nginx&PHP 使用
- 漫步数学分析二十二——魏尔斯特拉斯测试
- brew安装
- EffectiveJava(3)使用是由构造器或枚举类型强化singleton
- 1056: 历届试题 回文数字
- java中不同数据类型的运算