Main function is `centi-assign'. It's very similar to , except `centi-assign' prompts you for a key combination to use, while for this key combination is always . With `centi-assign' you can have as many macros as you wish, bound to whatever global keys you wish. Here's an example, assuming (global-set-key (kbd "") 'centi-assign) foo ;; Now inserts "foo". bar ;; Now inserts "foobar". -- ;; Now inserts "foo-foobar-foo". omg ;; Now inserts "omg", ;; - "omgbar", ;; - "omgbar-omg-omg". And here's the result of `centi-summary': [f8]: [f6 f7 f6] (was bookmark-bmenu-list) [f7]: [f6 98 97 114] (was winner-undo) [f6]: foo (was next-error) `centi-assign' will work with any global binding, i.e. you could even re-bind "a" to insert "b" if you wanted. Calling `centi-restore-all' will restore the previous global bindings.