• [^] # Re: Le mode est changé dans le buffer dans lequel tu as lancé ta commande

    Posté par . En réponse au message [Emacs.Lisp] Définition des touches pour un mode majeur. Évalué à 0.

    Oui sans le code c'est difficile …

    Voici le code:

    (defconst rct-mode-buffer-name "*rct-main*"
     "*internal* Name of the rct main view buffer.") 
    ; Keymap
    (defvar rct-mode-map
     (let ((my-map (make-sparse-keymap)))
     (suppress-keymap my-map)
     (define-key my-map "q" 'quit-window)
     (define-key my-map (kbd "C-c m") 
     (lambda() (interacive) (message "\C-\c m pressed")))
     (define-key my-map (kbd "<f3>")
     (lambda() (interactive) (message "\<f3\> pressed")));
     (define-key my-map (kbd "<f4>")
     (lambda() (interactive) (message "\<f4\> pressed")))
     (define-key my-map (kbd "<f5>") 
     (lambda (interactive) (message "\<f5\> pressed")))
     my-map)
     "Local keymap")
    ;; h1 first header in blue
    (defface h1
     '((t :inherit default 
     (:background "blue")
     ))
     "Face for a header without any special flags."
     :group 'rct)
    (define-derived-mode rct-mode special-mode "rct:main"
     "Major mode for remote connections
    \\{rct-main-mode-map}."
     ; debug is activated 
     (set (make-local-variable 'debug-on-error) t)
     )
    ; Main Menu
    (defun main-menu ()
     "This function display the main menu of the RCT mode."
     (let ((buf (get-buffer-create rct-mode-buffer-name))
     (inhibit-read-only t))
     (with-current-buffer buf
     (erase-buffer)
     (insert
     "\n\n\n\n"
     (propertize "~~ Welcome ~~" 'face 'h1)
     "\n\n"
     "Main commands"
     "\n\n"
     "\t[Q] To quit the RCT-mode"
     "\n\n"
     "TEXT"
     "\n\n"
     "\t[F2] AAAAAAAA\n"
     "\t[F3] BBBBBBBB\n"
     "\n"
     "TEXT"
     "\n\n"
     "\t[F4] To Start XXXX\n"
     "\n\n"
     ); end-of insert
     ;(rct-mode)
     (pop-to-buffer buf)
     );end-of with-current-buffer
     );end-of let
     ;(toggle-read-only t)
     );end-of main-menu
    (defun rct() 
     ;; The menu have to be in a separate function.
     (rct-mode)
     (main-menu)
     )
    (provide 'rct-mode)