# nvim-unicode
[toc]
## unicode字元
:::success
Except for the ASCII characters, it is often not straightforward to insert Unicode characters into Vim/Neovim. Below I will summarize a few ways to enter Unicode characters inside Neovim/Vim.
在nvim中設定 UTF-8 encoding (:set encoding=utf-8), and you are using a font with proper support for Unicode symbols, e.g., 在終端器 使用nerd-fonts字型 才可以正確顯示unicode字元
:::
## 輸入unicode字元
在 insert mode 使用 Ctrl-V 插入unicode字元
:::success
* ffff (in hex format): press u ( lower case), followed by its four-digit hex representation.
* 7fffffff (in hex format): press U ( upper case), followed by its eight-digit hex representation.
* 插入中逗點 the middle dot symbol (·), we can press <C-v>u00b7 or <C-v>ub7 followed by ESC. To insert the crying cat emoji (😿), we can press <C-v>U0001f63f2 or <C-v>U1f63f followed by ESC.
Use special escape sequence notation
We can also use special escape sequence to represent a character. To represent middle dot in the above section, use \u00b7 or \ub7. To represent the cry cat, use \U0001f63f or \U1f63f. Backspace is \b and Escape is \e.
For more details, see :h string.
:::
## 使用unicode.vim插件
* [chrisbra/unicode.vim](https://github.com/chrisbra/unicode.vim)
:::success
Unicode.vim 提供內建的ga功能 **:h ga** 在init.vim輸入
```nmap ga <Plug>(UnicodeGA)```
有內建的功能鍵
* :UnicodeName 顯示unicode字元訊息
* :UnicodeSearch 尋找unicode字元 使用regexp正則表示式 For example, to search Unicode character containing CAT, we can use :UnicodeSearch \<CAT\>. The bang version (:UnicodeSearch!) can also insert the chosen character into cursor position.
Insert-mode completion
:::
## 輸入模式時 自動補齊
:::success
Unicode.vim also provides insert mode completion for Unicode characters. We can type some character in the name of Unicode character, and press <C-X><C-Z> (i.e., Ctrl+X followed by Ctrl+Z). Alternatively, we can also provide the Unicode code point of a character and press <C-X><C-Z>.
For example, to insert middle dot, we can:
type dot, and press <C-X><C-Z> (A completion menu will pop up with candidate character).
type U+00b7, and press <C-X><C-Z>.
If you have fzf installed, you can also activate the fuzzy search feature to search Unicode (see :h unicode-fuzzy-insertion).
Use digraphs
Vim/Neovim also provides a feature called digraphs (see :h digraphs). Some non-printed character or commonly-used Unicode characters can be easily inserted using this feature. The command :digraphs will print the pre-defined digraphs table, like the following:
......
PI ¶ 182 pp ¶ 182 .M · 183 ~. · 183 ', ¸ 184 1S ¹ 185
A' Á 193 A> Â 194 A^ Â 194 A? Ã 195 A~ Ã 195 A: Ä 196
......
In each digraph group, the first two characters are the codes for the actual character, the middle being the actual character, and the last being the decimal value of the characters. For example, the codes for middle dot is .M, and its decimal number is 183.
To enter a character, press Ctrl-K in insert mode, followed by its codes. For example, to insert middle dot using digraphs, press <C-K>.M. To insert the copyright symbol (©), press <C-K>Co. To insert trademark symbol (™), press <C-K>TM.
Define your own digraphs
We can also define our own digraphs. The syntax is:
:digraphs {char1}{char2} {number}
{number} is the decimal value for the Unicode character. For example, to define a digraph entry for the loud crying face emoji (😭, decimal value 128557), use the following command:
:digraphs lc 128557
Then, in insert mode, pressing <C-K>lc will insert this emoji.
References
How to enter non-ASCII characters using hex or octal codes in vi?
What is the easiest way to insert Unicode characters into a document?
Enter Unicode characters with 8-digit hex code
https://sanctum.geek.nz/arabesque/special-characters-in-vim/
:::