Hello eveyone it’s me candle.
This time I will show you how to solve the problem that you can’t use symbol keybind on your iTerm2 emacs.
Basically, emacs on iTerm2 can’t use key binding of control + symbol.
The detail thing is written in this article.
Acouding to the article
Apparently it seems that the range of ASCII that ctrl key can control is decided.
This post referred to the below linked article.
I tried how to setup symbol key binding a few years ago and I was frustrated.
But I solved it by that. it was really helpful.
You use emacs
You use iTerm2
First of all, I wrote it in the abstract chapter, iTerm2 can’t use control + symbol key binding directly.
So we use the function of emacs as if we hit the control + symbol.
Since I don’t know about detail thing of emacs, I quoted from the referenced article.
(I translated to English)
For example, pressing C-x @ c (event-apply-control-modifier) and pressing RET is equivalent to pressing C-RET.
We use this function.
For example, if you want to realize “C-.” , like this “C-x @ c .”.
If you try to run “C-x @ c.” on your emacs, the same action as “C -.” will be executed.
Of course if that key binding is set.
Next, use the global shortcut key of iTerm2’s function.
When you hit “C-.” in iTerm2, if you make it to send “C-x @ c .” to emacs, you can use the “C-.” key binding in emacs.
Key setting of iTerm2
Start iTerm2 and select “Preferences…” from “iTerm2” of the top menu.
Choose the “Keys”, push the + button
We’ll try to add “C-.”
Type the “control + .” in “keyboard shortcut” field which state is active. After typing it will be displayed as “^.”
Next select “Send Hex Code” from the pull down menu.
Write the below text in the appeared text field.
This Hex code corresponds to these.
40 = @
63 = c
2e = .
In brief, that is
Push the ok button.
The other key bindings are these.
|C-,||18 40 63 2c|
|C-.||18 40 63 2e|
|C-:||18 40 63 3a|
|C-;||18 40 63 3b|
|C-<||18 40 63 3c|
|C->||18 40 63 3e|
I want you to be careful.
“C-<" is Control + Shift + <
“C->” is registered with Control + Shift + >
As you can see from the above image, the only difference is the last hex code.
If you want to assign C-( or C-/ etc, please see hex code from the below site.
iTerm2 setting is finish.
Bind a key in emacs
We will assign C-.
We create a function to display the path of the file and assign it to shortcut.
Open the emacs configuration file.
(defun show-file-name () "Show the full path file name in the minibuffer." (interactive) (message (buffer-file-name))) (global-set-key (kbd "C-.") 'show-file-name)
Save it and reload the file.
And execute C-.
This means that “C-.” entered on the keyboard has been converted to “C-x @ c .” with iTerm2 and that keybinding worked well on emacs.
It works good.
You can define more shortcut keys with simple symbol key bindings.