Guest User

Untitled

a guest
May 23rd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. (defun insert-str-with-line-context (regexp inserting-str default-char)
  2. (let ((ptr (point)))
  3. (beginning-of-line)
  4. (let ((str (buffer-substring (point) ptr)))
  5. (goto-char ptr)
  6. (if (string-match regexp str)
  7. (insert inserting-str)
  8. (insert default-char)))))
  9.  
  10. ;; typing "4" inserts "$", not "4" if you wrote "my " or "my ("
  11. (define-key cperl-mode-map (kbd "4")
  12. (lambda () (interactive)
  13. (insert-str-with-line-context "[ \t]*my[ ]+(?$" "$" "4")))
  14. (define-key cperl-mode-map (kbd "8")
  15. (lambda () (interactive)
  16. (insert-str-with-line-context "[ \t]*my[ ]+$" "(" "8")))
  17. ;; typing ":" insert "::" after writing "package ***"
  18. (define-key cperl-mode-map (kbd ":")
  19. (lambda () (interactive)
  20. (insert-str-with-line-context "^package" "::" ":")))
Add Comment
Please, Sign In to add comment