[email protected] writes: > Would you elaborate on this? I can guess what "fundamentally flawed in > its overdependence on key bindings" means but I expect my guess is acutally > wrong.
Key bindings form the only customizable user interface in Emacs. (There are also menus, but they are still underused.) Since the available combinations of keys is limited, we run up against the limitations pretty soon. The key space has been divvied up to various parties, some keys to core Emacs, some for the applications, and some for the users. It is good that it has been done. Otherwise, we would have had zillions of conflicts. But it also means that we run up against key space limitations even sooner. When I first started using Gnu Emacs, I remember reading "commands are Lisp functions that have an interactive specification," and thinking "why are they doing that?" Commands are elements of the user interface. Lisp functions are elements of the implementation. Why are they identifying commands with Lisp functions? Imagine an operating system like Windows or Linux asking the users to invoke operations, not by picking things from a menu, but rather calling operating system functions by the exact names that are used in the implementation! That is the situation we have in Emacs. But Lisp hackers, at least in the original days, didn't understand software engineering. The right solution would be to have a separate name space of "commands", which can be bound to Lisp functions in a mode-specific way. Then I could define a command like "imap" which is bound to "vm-visit-imap-folder" just in VM mode, but it won't interfere with any other modes. Since we don't have a separate name space of "commands", we can only borrow commands from function names. A global function name like "imap" cannot be bound at the application level. However, you, as the end user, can always define it for yourself. So, I recommend that you do so. It saves you from having to type in long function names like "vm-visit-imap-folder". Here are some more convenient aliases of this kind: (defalias 'folder 'vm-visit-folder) (defalias 'imap 'vm-visit-imap-folder) (defalias 'pop 'vm-visit-pop-folder) (defalias 'virtual 'vm-visit-virtual-folder) Cheers, Uday
