类似excel那样鼠标右键拉序列的方式
你是说emacs-lisp?
(number-sequence 0 9)
;=> (0 1 2 3 4 5 6 7 8 9)
打印的话我之前在一个博客上看到了这种包,但是名字忘了……找半天也没找到
我想问的是类似excel那样鼠标右键拉序列的方式
找到啦,
谢谢…
这个是我想要的
先选中需要填充序列的区域,然后
通过 C-u C-x r N 调用 rectangle-number-lines 会询问起始值和格式,默认格式是 "%Nd ",尾巴带空格。可以现场改,也可以修改 rectangle–default-line-number-format 函数一劳永逸。
把解决方案给自己 不厚道吧
我觉得 这个更有用
哈哈....
解决方案在另一个帖子里,所以我用的是引用...
你怎么像excel里 拉第二列呢?
比如 我想让第二列 等于 第一列的2倍
所以 你的问题没有解决
等一个在 Emacs 里使用 Excel 的插件,名字我都想好了,就叫 Emaxcel
Why not excemacs(
Emaxcel 更顺口一点
Excaliburemas
2 个赞
不知道是不是你要的...
2 个赞
eval-print-last-sexp
?
1 个赞
这就不是单纯的生成序列了,涉及到计算/公式。通常这第二列也不会只生成一次就不变了,还需要随着第一列的改变自动更新。这么复杂的情况,何不用 org-spreadsheet ?
| Student | Maths | Physics | Mean |
|----------+-------+---------+------|
| Bertrand | 13 | 09 | |
| Henri | 15 | 14 | |
| Arnold | 17 | 13 | |
#+TBLFM: $4=vmean($2..$3)
光标放在公式上,按 C-c C-c
得到:
| Student | Maths | Physics | Mean |
|----------+-------+---------+------|
| Bertrand | 13 | 09 | 11 |
| Henri | 15 | 14 | 14.5 |
| Arnold | 17 | 13 | 15 |
#+TBLFM: $4=vmean($2..$3)
3 个赞
我觉得他可以和tiny结合起来的
可以了
;; test
;; m4,8*2x|*** TODO http://emacsrocks.com/e%02d.html
;; 67
(defun left-number ()
(save-excursion
(goto-char (line-end-position))
(while (looking-back "\s") (left-char 1))
(sexp-at-point)))
(defvar tiny-mapconcat-1 nil "")
(defun tiny-mapconcat-1 ()
""
(let ((parsed (tiny-mapconcat-parse)))
(if parsed
(setq tiny-mapconcat-1
(let* ((expr (or (nth 3 parsed) "x"))
(lexpr (read expr))
(n-have (if (and (listp lexpr) (eq (car lexpr) 'list))
(1- (length lexpr))
0))
(expr (if (zerop n-have) `(list ,lexpr) lexpr))
(n-have (if (zerop n-have) 1 n-have))
(tes (tiny-extract-sexps (or (nth 4 parsed) " %s")))
(fmt (car tes))
(idx -1)
)
`(let* ((x (left-number))(lst ,expr))
(format ,(tiny--strip-\n fmt)
,@(mapcar (lambda (x)
(if x
(read x)
(if (>= (1+ idx) n-have)
'x
`(nth ,(incf idx) lst))))
(cdr tes))))))
(when tiny-mapconcat-1
(insert (eval tiny-mapconcat-1)))
)))
(defun tiny-expand1 ()
(interactive)
(tiny-mapconcat-1)
(lie-move 1)
(goto-char (line-end-position))
)
图片