Valkertown Blog

Redirección a el nuevo blog en 5 segundos...

lunes, septiembre 26, 2005

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