Emacs函数用于哈希字符

时间:2012-09-22 15:27:13

标签: function emacs if-statement line

下面的函数应该在行的开头插入#,如果不是,则应该到行尾并插入#。为什么这不起作用(它总是结束并插入#

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

2 个答案:

答案 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不是前两个中的任何一个,则将#放在该行的末尾。