Couldn't figure this out. Just need to enter 1 emoji into a string and couldn't figure it out. Unicode is not working. Tried diagraph but didn't work either. Is there some trick to this in Vim? thx!
You do not need to install a plugin for this. All you need to do is enter the unicode value of the emoji. You can do that in insert mode with <C-v>
. From :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)
For example, if you want to enter this smiley-face, which has a unicode value of U+1F60A
, you could simply type:
<C-v>U1F60A<esc>
or if you don't want to hit <esc>
,
<C-v>U0001F60A
Just so you know, there's a good chance that it will not render properly in vim, depending on your font. If you are using gvim, you can change :se guifont=*
, or in regular vim, changing your consoles font to make it render (assuming you pick a font that can render this particular emoji)
Another approach is to use abbreviations.
I added a few in my .vimrc file and now I just type :pushpin: for 📌, :bulb: for 💡, :bomb: for 💣, etc...
" 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: 💻
There are a lot more of them on emojicopy.com or similar sites. I just picked a few I already used before.
While it is possible to <c-v>U1f60A<esc>
, it's not practical if you're
responding to email / entering a comment in a web form. I'm not going to
memorize unicode emoji tables 😒😫🙄 for quick "Thanks 😜" comment.
Few other options for such use cases:
Type your usual smileys like
:)
and have a plugin replace it with the unicode equivalent 😄. The plugin emoji-ab does this for you.Type codes like
:boom:
. Many markdown parsers will convert it to 💥 for you. But if you're not using such a parser, emoji-ab will also convert it for you.Use something like gucharmap (or one of the many online Unicode pickers) to copy and paste unicode characters into vim.
Another way to access these emojies in many contexts including Vim is to use the character map dialog window:
- On Mac, press Ctrl+Command+Space and select the character.
- On Windows, press Windows+R and type the charmap.
You can use emoji-fzf pip package
First install fzf
sudo apt install fzf
then intall emoji-fzf
pip install emoji-fzf
now make sure you can run emoji-fzf
emoji-fzf --help
if you get "comand not found" error please see pip installs packages successfully, but executables not found from command line
now add emoji-fzf to your .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>
restart your vim and press ctrl + e and search for your favourite emoji and press enter
© 2022 - 2024 — McMap. All rights reserved.