下面的函数应该在行的开头插入#
,如果不是,则应该到行尾并插入#
。为什么这不起作用(它总是结束并插入#
?
(defun end-of-line-hash ()
(interactive)
(if (beginning-of-line)
(insert "#")
(end-of-line)
(insert "#"))
)
(global-set-key (kbd "#") 'end-of-line-hash)
答案 0 :(得分:3)
函数beginning-of-line
将点移动到行的开头。它可能会返回nil
。试试这个。
(defun end-of-line-hash ()
(interactive)
(if (= (point) (line-beginning-position))
(insert "#")
(end-of-line)
(insert "#"))
)
答案 1 :(得分:0)
在rwb的回答的帮助下:
(defun hash-character-ESS ()
(interactive)
(if (region-active-p)
(comment-region (region-beginning) (region-end))
(if (= (point) (line-beginning-position))
(insert "#")
(end-of-line)
(insert "#")))
)
1)如果选择了文本,请评论该区域。
2)如果point(光标)位于行的开头,则在那里插入#colracter。
3)如果point不是前两个中的任何一个,则将#放在该行的末尾。