如何将表情符号输入到 Vim 中的字符串中?

How do I enter an emoji into a string in Vim?

想不通。只需要将 1 个表情符号输入一个字符串,但无法弄清楚。 Unicode 不工作。试过 diagraph 但也没有用。在 Vim 中有什么技巧吗?谢谢!

您不需要为此安装插件。您需要做的就是输入表情符号的 unicode 值。您可以使用 <C-v> 在插入模式下执行此操作。来自 :h i_ctrl-v_digit:

                        *i_CTRL-V_digit*
With CTRL-V the decimal, octal or hexadecimal value of a character can be
entered directly.  This way you can enter any character, except a line break
(<NL>, value 10).  There are five ways to enter the character value:

first char  mode         max nr of chars   max value ~
(none)      decimal        3        255
o or O      octal          3        377      (255)
x or X      hexadecimal    2        ff       (255)
u           hexadecimal    4        ffff     (65535)
U           hexadecimal    8        7fffffff (2147483647)

例如,如果您想输入 this smiley-face,其 unicode 值为 U+1F60A,您只需键入:

<C-v>U1F60A<esc>

或者如果您不想点击 <esc>

<C-v>U0001F60A

请注意,根据您的字体,它很可能无法在 vim 中正确呈现。如果您使用的是 gvim,您可以更改 :se guifont=*,或者在常规 vim 中,更改您的控制台字体以使其呈现(假设您选择了可以呈现此特定表情符号的字体)

虽然可以 <c-v>U1f60A<esc>,但如果您 回复电子邮件/在网络表单中输入评论。我不打算 记住 unicode 表情符号表以便快速 "Thanks " 评论。

此类用例的其他选项很少:

  1. 输入您常用的笑脸,例如 :),然后让插件将其替换为 unicode 等效。插件 emoji-ab 为您完成。

  2. 键入 :boom: 这样的代码。许多降价解析器会将其转换为 for 你。但是如果你不使用这样的解析器, emoji-ab 也会将其转换为 你.

  3. 使用类似 gucharmap (或许多在线 Unicode 选择器之一)复制和粘贴 unicode 字符变成 vim.

另一种方法是使用缩写。

我在 .vimrc file 中添加了一些,现在我只需输入 :pushpin: for 、:bulb: for 、:bomb: for 等等...

" Emoji shortcuts
ab :white_check_mark: ✅
ab :warning: ⚠
ab :bulb: 
ab :pushpin: 
ab :bomb: 
ab :pill: 
ab :construction: 
ab :pencil: 
ab :point_right: 
ab :book: 
ab :link: 
ab :wrench: 
ab :info: 
ab :telephone: 
ab :email: 
ab :computer: 

emojicopy.com 或类似网站上有更多此类网站。我只是挑了一些我以前用过的。

在包括 Vim 在内的许多情况下访问这些表情符号的另一种方法是使用字符映射对话框 window:

  • 在 Mac 上,按 Ctrl+Command+Space 和 select 字符。
  • 在 Windows 上,按 Windows+R 并键入字符映射。

可以使用emoji-fzfpip包

先安装fzf

sudo apt install fzf 

然后安装 emoji-fzf

pip install emoji-fzf

现在确保你可以 运行 emoji-fzf

emoji-fzf --help

如果您收到“未找到命令”错误,请参阅

现在将 emoji-fzf 添加到您的 .vimrc

" Use emoji-fzf and fzf to fuzzy-search for emoji, and insert the result
function! InsertEmoji(emoji)
    let @a = system('cut -d " " -f 1 | emoji-fzf get', a:emoji)
    normal! "agP
endfunction

command! -bang Emoj
  \ call fzf#run({
      \ 'source': 'emoji-fzf preview',
      \ 'options': '--preview ''emoji-fzf get --name {1}''',
      \ 'sink': function('InsertEmoji')
      \ })
" Ctrl-e in normal and insert mode will open the emoji picker.
" Unfortunately doesn't bring you back to insert mode 
map <C-e> :Emoj<CR>
imap <C-e> <C-o><C-e>

重新启动您的 vim 并按 ctrl + e 并搜索您最喜欢的表情符号并按 输入