(add-hook 'php-mode-hook (function (lambda () (imenu-add-menubar-index)))) (defun show-onelevel () "show entry and children in outline mode" (interactive) (show-entry) (show-children)) (defun cjm-outline-bindings () "sets shortcut bindings for outline minor mode" (interactive) (local-set-key [?\C-,] 'hide-sublevels) (local-set-key [?\C-.] 'show-all) (local-set-key [C-up] 'outline-previous-visible-heading) (local-set-key [C-down] 'outline-next-visible-heading) (local-set-key [C-left] 'hide-subtree) (local-set-key [C-right] 'show-onelevel) (local-set-key [M-up] 'outline-backward-same-level) (local-set-key [M-down] 'outline-forward-same-level) (local-set-key [M-left] 'hide-subtree) (local-set-key [M-right] 'show-subtree)) (add-hook 'outline-minor-mode-hook 'cjm-outline-bindings) (add-hook 'php-mode-user-hook '(lambda () (outline-minor-mode) (setq outline-regexp " *\\(public funct\\|private funct\\|funct\\|class\\|#head\\)") (hide-sublevels 1))) (add-hook 'python-mode-hook '(lambda () (outline-minor-mode) (setq outline-regexp " *\\(def \\|clas\\|#hea\\)") (hide-sublevels 1))) ;; also use php mode for .module and .inc files. (add-to-list 'auto-mode-alist '("\\.php[34]\\'\\|\\.php\\'\\|\\.phtml\\'\\|\\.module\\'\\|\\.inc\\'" . php-mode)) ;; make tabs 4 charatcer wide (defun php-mode-hook () (setq tab-width 4 c-basic-offset 4 c-hanging-comment-ender-p nil indent-tabs-mode (not (and (string-match "/\\(PEAR\\|pear\\)/" (buffer-file-name)) (string-match "\.php$" (buffer-file-name)))))) (setq tramp-default-method "ssh")