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

Posted

技术标签:

【中文标题】如何在 Vim 中将表情符号输入到字符串中?【英文标题】:How do I enter an emoji into a string in Vim? 【发布时间】:2017-03-08 20:05:00 【问题描述】:

想不通。只需要在字符串中输入 1 个 emoji 并无法弄清楚。 Unicode 不工作。尝试了图表,但也没有工作。在 Vim 中有什么技巧吗?谢谢!

【问题讨论】:

junegunn.kr/2014/06/emoji-completion-in-vim 谢谢。希望有一种方法可以在不添加整个插件的情况下输入它。添加插件没什么大不了的,只是似乎必须有另一种方式。 【参考方案1】:

您不需要为此安装插件。您需要做的就是输入表情符号的 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>

或者如果你不想打&lt;esc&gt;

<C-v>U0001F60A

您知道,它很有可能无法在 vim 中正确呈现,具体取决于您的字体。如果您使用的是 gvim,您可以更改 :se guifont=*,或者在常规 vim 中,更改您的控制台字体以使其呈现(假设您选择一种可以呈现此特定表情符号的字体)

【讨论】:

按照您的示例,我成功输入了笑脸。但我正在尝试输入❤️,它会出现两个代码点,“U+2764,U+FE0F”。不知道怎么输入!【参考方案2】:

另一种方法是使用缩写。

我在.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 或类似网站上还有很多。我只是挑选了一些我以前用过的。

【讨论】:

不错; following answer 专门链接到 emoji-ab,这基本上反映了我 utilize system-wide for replacements 的内容。 看来我又重新发明了***:-D。感谢@amcgregor 的报告【参考方案3】:

虽然可以&lt;c-v&gt;U1f60A&lt;esc&gt;,但如果你是 回复电子邮件/在网络表单中输入评论。我不打算 记住 unicode 表情符号表??? 快速“谢谢?”评论。

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

    输入你常用的笑脸,比如:),然后用插件替换它 Unicode 等价物?。插件 emoji-ab 为你做这件事。

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

    使用类似 gucharmap (或众多在线 Unicode 选择器之一)复制和粘贴 unicode 字符到 vim 中。

【讨论】:

【参考方案4】:

在包括 Vim 在内的许多环境中访问这些表情符号的另一种方法是使用字符映射对话框窗口:

在 Mac 上,按 Ctrl+Command+Space 并选择字符。 在 Windows 上,按 Windows+R 并输入字符表。

【讨论】:

GNOME 3.28 及更高版本(Ubuntu Linux 和其他地方)有一个表情符号选择器,但遗憾的是它在 GNOME 终端中不起作用。见omgubuntu.co.uk/2018/06/use-emoji-linux-ubuntu-apps【参考方案5】:

不需要任何插件或安装任何东西。通常,您只需复制表情符号并粘贴即可。例如,我从Symbol Go 抓取了?,然后复制到这里。

或者,您可以使用表情符号代码点。代码点?是 U1F338。 Symbol Go 也有这个。

您还需要确保使用正确的字体。 Google Noto 字体显示表情符号。

【讨论】:

以上是关于如何在 Vim 中将表情符号输入到字符串中?的主要内容,如果未能解决你的问题,请参考以下文章

如何从字符串中删除表情符号字符?

苹果emoji表情符号 那种特殊的符号怎么打出来

如何使用 javascript 检测表情符号

如何使用 javascript 检测表情符号

如何在 Postgres 中将 url 编码的表情符号保存为文本(例如“%F0%9F%98%80”)? (罗尔)

UITextField - 防止用户输入非标准字符(如表情符号)