1

下面的函数应该#在行首插入一个 if ,如果不是,它应该到行尾并插入一个#。为什么这不起作用(它总是走到最后并插入一个#?

(defun end-of-line-hash () 
  (interactive)
   (if (beginning-of-line)
       (insert "#")  
     (end-of-line)
     (insert "#"))
)
(global-set-key (kbd "#") 'end-of-line-hash)
4

2 回答 2

3

函数beginning-of-line将点移动到行首。它可能会返回nil。试试这个。

(defun end-of-line-hash () 
  (interactive)
   (if (= (point) (line-beginning-position))
       (insert "#")  
     (end-of-line)
     (insert "#"))
)
于 2012-09-22T16:25:58.460 回答
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) 如果点(光标)位于行首,则在此处插入# 字符。

3) 如果点不是前两个中的任何一个,请将# 放在行尾。

于 2012-10-14T09:49:15.227 回答