我可以通过点击emacs中的linum列来选择文本吗?

时间:2011-11-12 07:05:27

标签: emacs

请参阅下面的答案

下一段是为了让机器人高兴

T-bone bresaola boudin pork chop,ullamco non voluptate qui venison fugiat rump pastrami nulla in drumstick。 Nostrud ham pariatur,labis brisket duis aliquaelitleberkäse。 Capicola ut猪肉猪肚,肉丸veniam菲力牛排舌鼓腿侧面ut proident广告。 T-bone shankle culpa舌头nulla dolore biltong,pancetta nostrud ut。 Sed牛肉牛腩occaecat,胸肉anim sint。 Culpa带牛排练习ea aute肩膀。 Ribeye肩夹头,带牛排圆形sed胸肉牛腩肉桂capicola牛肉leberkäse柄cillum。

1 个答案:

答案 0 :(得分:3)

以下是您可以添加到.emacs的代码 当您单击边距并释放光标时,它会选择相应的行 用gnu emacs测试23.3

更新:错误修正

(defvar *linum-mdown-line* nil)

(defun line-at-click ()
  (save-excursion
    (let ((click-y (cdr (cdr (mouse-position))))
          (line-move-visual-store line-move-visual))
      (setq line-move-visual t)
      (goto-char (window-start))
      (next-line (1- click-y))
      (setq line-move-visual line-move-visual-store)
      ;; If you are using tabbar substitute the next line with
      ;; (line-number-at-pos))))
      (1+ (line-number-at-pos)))))

(defun md-select-linum ()
  (interactive)
  (goto-line (line-at-click))
  (set-mark (point))
  (setq *linum-mdown-line* (line-number-at-pos)))

(defun mu-select-linum ()
  (interactive)
  (when *linum-mdown-line*
    (let (mu-line)
      (setq mu-line (line-at-click))
      (if (> mu-line *linum-mdown-line*)
          (progn
            (goto-line *linum-mdown-line*)
            (set-mark (point))
            (goto-line mu-line)
            (end-of-line))
          (progn
            (goto-line *linum-mdown-line*)
            (set-mark (line-end-position))
            (goto-line mu-line)
            (beginning-of-line)))
      (setq *linum-mdown* nil))))

(global-set-key (kbd "<left-margin> <down-mouse-1>") 'md-select-linum)
(global-set-key (kbd "<left-margin> <mouse-1>") 'mu-select-linum)
(global-set-key (kbd "<left-margin> <drag-mouse-1>") 'mu-select-linum)