hungry-backspace / hungry-delete
global-set-keyして使ってたんですが,ちょっと理由が理解できないのですが,ミニバッファがおかしくなったので止めました.検索してるときに,バックスペースとか入れると検索を抜けちゃう現象が….
諦めて,まじめにadd-hookすることにしました.
(defun hungry-backspace (arg) "Deletes preceding character or all whitespaces." (interactive "*P") (let ((here (point))) (skip-chars-backward " \t") (if (/= (point) here) (delete-region (point) here) (delete-backward-char 1)))) (defun hungry-delete (arg) "Deletes following character or all white spaces." (interactive "*P") (let ((here (point))) (skip-chars-forward " \t\n") (if (/= (point) here) (delete-region (point) here) (delete-char 1)))) (defun hungry-keyboard (map) (define-key map [backspace] 'hungry-backspace) (define-key map [delete] 'hungry-delete) (define-key map "\C-d" 'hungry-delete)) (add-hook 'tuareg-mode-hook #'(lambda () (hungry-keyboard tuareg-mode-map))) (add-hook 'ruby-mode-hook #'(lambda () (hungry-keyboard ruby-mode-map)))
というか,昨日の時点ではadd-hookすることを知らなかっただけなんですけど.まあ,他には1日使ってみて「global-set-keyはちょっと過激すぎるかも」と思ったのもありますが.
微妙にダサいですが,lambdaの前の#'の意味がわからないので,もういいや.