The standard Emacs way to do this is C-x 8 RET followed by either the Unicode code point (a natural number) or the Unicode name of the character. Completion is available for the name.
If you use library Icicles then you can complete the name using parts of it, with multiple patterns matching different parts, if you want. And you can see the characters ...
If you are familiar with TeX, you will find the TeX input method helpful. Just do
M-x set-input-method TeX
then type something like \alpha — it will be replaced with the corresponding Unicode character. You can switch the input method off by typing C-\.
You can find all the supported TeX commands with
As explained in this EmacsWiki article, you can append stuff to an input method like this:
(let ((quail-current-package (assoc "TeX" quail-package-alist)))
(quail-define-rules ((append . t))
I also find it convenient to use ; instead of the cumbersome \ as a prefix for my symbols, so ...
This is a setting in Terminal.
In Terminal 2.5.1 the option is set differently than in the above comments:
In the main Terminal menu, choose "Preferences" to open a dialog. Click the "Profiles" icon in the top of the dialog.
In the Profiles section, make sure there is a check in the checkbox called "Use Option as Meta key."
So the requirement is: When I'm using the arabic input method, and I type a digit, I want Emacs to insert the Hindi character for that digit.
To do this, we can adapt your linked approach to extend an input-method like so:
'(let ((quail-current-package (assoc "arabic" quail-package-alist)))
You should be able to press C-\ (toggle-input-method) and give it german-postfix as an argument if asked (or with prefix) and then be able to type as you described.
The minibuffer will show you hints how to enter the diacritics. As always you can ask Emacs to show the documentation for a key with C-h K.
@EmreSahin put me on the right path to answer this question, so I'm laying out a little bit of the detail in case anyone else ever has to deal with a problem like this themselves.
As Emre points out, we need to add a Dvorak layout to quail-keyboard-layout-alist. It turns out that the quail library is not well-documented in the manual, in which two related ...
There is a method to change the physical layout definition for input method by setting quail-keyboard-layout-type. But it looks Dvorak is not among the possible candidates in quail-keyboard-layout-alist in my Emacs 24.4.
You can either define a new physical keyboard layout by looking at definition of quail-keyboard-layout-alist in quail.el or create a new ...
There's no general way to find out what input methods give access to a given set of characters. An input method is written in Emacs Lisp, and it can use any Emacs Lisp primitives to build characters. From a quick look under lisp/leim/quail, I see that the latin-4-postfix, latin-4-alt-postfix, and TeX input methods include vowels with macrons.
The whole ...
It's been almost 10 years since the last time I needed to edit a LaTeX document in Russian, but I can relate. :-)
According to the Emacs Lisp Manual every input method should disable key translation and conversion if overriding-local-map is set.
We should be able to rely on this to disable quail conditionally.
In Emacs 24.4 and later (using the new ...
After extensive search and experimentation I found a way to succeed using the stress. Also it must be noted that is not the best way (technically it doesn't solve the problem but you get what you want). I used the following key bind command for every letter that uses a stress:
(global-set-key (kbd "<dead-acute> α") "ά")
(global-set-key (kbd "<...
In the Customize interface (M-x customize or “Options” → “Customize Emacs” → “Top-level Cutomization Group”), navigate to “Environment” → “I18n” → “MULE”. Set the “Default Input Method”: choose “String” in the value menu, and set the string to polish-slash. Use the “State” button to set the value for the current session or to ...
In addition to C-x 8 RET, mentioned here that lets you insert any character by name, C-x 8 also has many shortcuts for inserting common characters. In this case, C-x 8 o inserts "°". See them all with C-x 8 C-h
The C-x 8 keymap is also a good place to define your own shortcuts to insert the characters you use most often. The Greek letters aren't bound to ...
Emacs is stuck somewhere between not supporting font fallback at all and supporting fully automatic fallback. As soon as you tell it to use a specific font, it will make use of this font's glyphs only, requiring you to explicitly set up fallback fonts with a fontset to display any extra glyphs not covered by it. Your arabic font for example doesn't have ...
Okay, so I found the real problem, and it was not Emacs. The thing is that I connect to a remote Ubuntu computer from my Windows computer using PuTTy and Xming. I found that it not only in Emacs that I had the keyboard layout issue, but in all programs that open in another window. The default setting in Xming was American keyboard layout. I changed the ...
That's exactly what you get with library cursor-chg.el.
Just turn on minor mode change-cursor-mode, and leave option curchg-change-cursor-on-input-method-flag with its default value of t.
The cursor color when an input method is used is controlled by option curchg-input-method-cursor-color (default value "Orange").
(If you do not also want the cursor ...
Without switching input methods there is direct access to all the german extra characters via C-x 8 ". In particular
C-x 8 " a gives ä
C-x 8 " A gives Ä
C-x 8 " s gives ß
Similarly C-x 8 ' a gives á, C-x 8 ` a gives à, C-x 8 ^ a gives â and C-x 8 , c gives ç and other accents may be obtained in a comparable way. C-h b shows all current key ...
Another option is to use the hooks namely input-method-activate-hook and input-method-deactivate-hook provided by emacs. Since you are new to elisp programming, you will find this section of the emacs manual helpful. Basically hooks are functions that are run when some event occurs.
In our case input-method-activate-hook is run when ever you activate a new ...
There are several ways. A key difference is how close H-g a is to typing an actual character α would be if you had that key on your keyboard. For example, you can make H-g a a macro that inserts the string α:
(define-key global-map (kbd "H-g a") "α")
But then H-g a differs from inserting a character in several ways which may or may not be desirable. For ...
Using quail-define-rules is overkill (note the rules, plural, in the function name) — an alternative is quail-defrule (one rule...)
Directly from my scratch buffer
(quail-defrule "á" ["something"])
— note that it's not (quail-defrule "á" "something"), to do what you want the string must be an element of a vector (ref. C-h f quail-defrule RET)...
I asked the same question recently on emacs-devel and Kenichi Handa told me I could do:
(defvar my-TeX-input-method-tweaked nil)
(defun my-quail-activate-hook ()
(when (and (not (member (quail-name)
(member (quail-name) '("TeX" "latin-1-prefix")))
(quail-defrule "uu" "ū")
nil in input-decode-map (or any of the other translation maps) means “don't translate this key”, not “translate this key to an empty sequence”. Use an empty vector instead.
(define-key input-decode-map [f13] )
This will effectively make Emacs ignore the key in most circumstances. For example, f13 won't interrupt a multi-key binding or a prefix argument. ...
First of all, I presume you're aware of key-chord (see also this SO thread). I've never used it, and have hazy memories that it doesn't always interact well with evil.
This answer is 95% of the way there. The last snag looks like it's in the actual binding of the key, but I don't know how to fix it because I don't know how Korean input methods work.
When you evaluate (insert "qwerty") the lisp reader creates a string object with the literal value "qwerty". No input method functionality is able to intervene there.
The input method has already done its work by the time a character is inserted into a buffer, such that (using your example) typing q would result in (insert "a"), not (insert "q").
defalias creates named aliases for functions, so you must start with a function before you can create an alias for it; and you are starting with a call to a function.
So you could write a function which does what you want, and then create an alias to that function. You can even use an anonymous function, in order to avoid creating two names when you only ...