Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun insert-str-with-line-context (regexp inserting-str default-char)
- (let ((ptr (point)))
- (beginning-of-line)
- (let ((str (buffer-substring (point) ptr)))
- (goto-char ptr)
- (if (string-match regexp str)
- (insert inserting-str)
- (insert default-char)))))
- ;; typing "4" inserts "$", not "4" if you wrote "my " or "my ("
- (define-key cperl-mode-map (kbd "4")
- (lambda () (interactive)
- (insert-str-with-line-context "[ \t]*my[ ]+(?$" "$" "4")))
- (define-key cperl-mode-map (kbd "8")
- (lambda () (interactive)
- (insert-str-with-line-context "[ \t]*my[ ]+$" "(" "8")))
- ;; typing ":" insert "::" after writing "package ***"
- (define-key cperl-mode-map (kbd ":")
- (lambda () (interactive)
- (insert-str-with-line-context "^package" "::" ":")))
Add Comment
Please, Sign In to add comment