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)ポイントが前の2つのいずれでもない場合は、行の最後に#を付けます。

于 2012-10-14T09:49:15.227 に答える