The BBC microcomputer had a button called COPY, which when you pressed it would copy the character on the line above the cursor. This was quite handy, and I recently was waiting for a large amount of code to link, and thought I'd have a go at implementing it.

There's not a lot to it in fact. This function just remembers the cursor position (using save-excursion) and then goes to the previous line, gets the character after the point, and finally after the save-excursion block I just insert the character.


(defun copy-char-above()
"copy the character above point into the buffer"
(interactive)
(let (c)
(save-excursion
(previous-line)
(setq c (char-after)))
(insert (char-to-string c))))


Here I just assign the function to a key...


(global-set-key [f6] 'copy-char-above)