Valkertown Home

2005-09-26-hide-show-emacs-mode

Finalmente alguien encontro este modo de emacs para hacer

algo que vi en Kate y en otros editores pero no tenia ni idea

de como realizarlo en emacs, aunque los "keybindings" por defectos

son terribles aquí va un poco de código para añadir al ~/.emacs

66 (add-hook 'c-mode-hook 'hs-minor-mode)

 67 (add-hook 'c++-mode-hook 'hs-minor-mode)

 68 (add-hook 'c++-mode-hook 'cc++-keys)

 69 (add-hook 'c-mode-hook 'cc++-keys)

 70 ;;;;;;;;;;;;;;;;;;;;;; Complementar los modos de C y C++

 71 (global-unset-key [f1])

 72 (global-unset-key [f2])

 73 (global-unset-key [f3])

 74 (global-unset-key [f4])

 75

 76 (defun cc++-keys ()

 77 (defvar c++-mode-map nil)  ;; No-op actually

 78 (defvar c-mode-map nil)  ;; No-op actually

 79 (define-key c-mode-map [f1] 'hs-toggle-hiding)

 80 (define-key c-mode-map [f2] 'hs-show-block)

 81 (define-key c-mode-map [f3] 'hs-hide-block)

 82 (define-key c-mode-map [f4] 'hs-hide-all)

 83 (define-key c-mode-map [\C-f2] 'hs-hide-level)

 84 (define-key c-mode-map [\C-f4] 'hs-show-all)

 85 (define-key c++-mode-map [f1] 'hs-toggle-hiding)

 86 (define-key c++-mode-map [f2] 'hs-show-block)

 87 (define-key c++-mode-map [f3] 'hs-hide-block)

 88 (define-key c++-mode-map [f4] 'hs-hide-all)

 89 (define-key c++-mode-map [\C-f2] 'hs-hide-level)

 90 (define-key c++-mode-map [\C-f4] 'hs-show-all)

 91 )

Con esto se añaden unos bonitos keybindings para las teclas f1 a f4 pero

solo en los modos c y c++, como es posible que los modos de otros lenguajes

se entiendan con el hs-minor-mode, quiza seria mejor así el código:

66 (add-hook 'c-mode-hook 'hs-minor-mode)

 67 (add-hook 'c++-mode-hook 'hs-minor-mode)

 68 (add-hook 'cperl-mode-hook 'hs-minor-mode)

 69 ;;;;;;;;;;;;;;;;;;;;;; Complementar los modos de C y C++

 70 (global-unset-key [f1])

 71 (global-unset-key [f2])

 72 (global-unset-key [f3])

 73 (global-unset-key [f4])

 74

 75 (global-set-key [f1] 'hs-toggle-hiding)

 76 (global-set-key [f2] 'hs-show-block)

 77 (global-set-key [f3] 'hs-hide-block)

 78 (global-set-key [f4] 'hs-hide-all)

 79 (global-set-key [\C-f2] 'hs-hide-level)

 80 (global-set-key [\C-f4] 'hs-show-all)

El problema es que los keybindings quedarian enlazados para todos los otros modos que

no soportan el hs-minor-mode y quiza se podrian utilizar para esto…

¿A ver alguna idea para hacer esto más bonito?

EOT

comments powered by Disqus

© 2008-2012 Carlos A. Perilla deepspawn at valkertown dot org | Based on original design by Andreas Viklund