| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2410 人关注过本帖
标题:【久受尊名 不详】比较智能的处理硬换行的emacs lisp代码
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:19 
【久受尊名 不详】比较智能的处理硬换行的emacs lisp代码
;*****************************************************************************************************************
;作者:zklhp
;Email:zklhp@
;QQ:493165744
;2013.1.14
;转载请保持完整
;*****************************************************************************************************************

写得比较水啦

程序代码:
(defun make-a-long-sentence ()
  "make a long sentence and also work on region"
  (interactive)
  (if (region-active-p)
      (progn    ; there is a text selection
    (let (str pt)
      (while (< (point) (region-end))
        (progn
          (delete-indentation 1)        ;一个现成函数 但要处理连字符
          (backward-char)
          (setq str (buffer-substring (setq pt (point)) (1+ pt)))
          (if (string-equal str "-")
          (delete-char 2)
        (forward-char)
        )
          )
        )
      )
    )
    )
  (progn
    (let (str pt)
      (delete-indentation 1)        ;一个现成函数 但要处理连字符
      (backward-char)
      (setq str (buffer-substring (setq pt (point)) (1+ pt)))
      (if (string-equal str "-")
      (delete-char 2)
    (forward-char)
    )
      )
    )
  )

;; C-;
(global-set-key [67108923] (quote make-a-long-sentence))


这个实现了从

this
is
a hard-war-
ped



this is a hard-warped

的一键转换 而且加了处理选区(region)的功能

程序代码:
(defun dwim-make-a-long-sentence ()
  "make a long sentence and also work on region"
  (interactive)
  (if (region-active-p)
      (progn    ; there is a text selection
    (save-restriction
      (narrow-to-region (region-beginning) (region-end))
      (goto-char (point-min))
      (while (search-forward "\n" nil t) (replace-match "" nil t))
      )
    )
    (progn
      (end-of-line)
      (delete-char 1)
      )
    )
  )

;; C-'
(global-set-key [67108903] (quote dwim-make-a-long-sentence))

;; C-M-;
(global-set-key [201326651] (quote dwim-make-a-long-sentence))


这个实现的是不加空格和删除连字符的版本 主要用于中文 例子

这句话

人为
分开了
好讨厌呀



这句话被人为分开了好讨厌呀

进步之处也是能处理选区

效率大大提高了诶 Emacs的无限可定制性真好

但有一个 要是能自动判断哪些是截断的就好了 不过我感觉实现有困难。。

显摆一下 顺便发今年的第一个有点技术的帖子。。



[ 本帖最后由 zklhp 于 2013-1-15 13:00 编辑 ]
搜索更多相关主题的帖子: Email 智能 
2013-01-15 11:54
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:10 
专程路过

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 11:59
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 
专业蹭分


[fly]存在即是合理[/fly]
2013-01-15 12:04
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:10 
专程蹭分
2013-01-15 12:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
太隐蔽了   很难找啊

DO IT YOURSELF !
2013-01-15 13:22
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:10 
z版把emacs玩的出神入化的时候有没有感到曲高和寡的悲凉

The quieter you become, the more you can hear
2013-01-15 14:53
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用madfrogme在2013-1-15 14:53:57的发言:

z版把emacs玩的出神入化的时候有没有感到曲高和寡的悲凉

【曲高和寡】这四个字 等什么时候我能去emacs的开发者邮件列表谈笑风生再说罢
2013-01-15 15:24
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:10 
切分
2013-01-15 16:00
Ayiis
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1086
专家分:3063
注 册:2011-4-10
收藏
得分:10 
对俄

  • 该单位
  • 正在被拖走
2013-01-15 20:29
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
再次专程路过,催促结贴

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-16 12:13
快速回复:【久受尊名 不详】比较智能的处理硬换行的emacs lisp代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015090 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved