Giter VIP home page Giter VIP logo

vim-emoji-icon-theme's Introduction

Vim Emoji Icon Theme 🎨

This plugin uses emojis to represent filetypes, signs and symbols for many plugins. So there is no need for overrided fonts.

For filetypes support this plugins extends vim-devicons and kyazdani42/nvim-web-devicons, adding support for icons as emojis on Vim and Neovim.

NERDTree with this plugin using material.nvim colorscheme:

Screenshot

Plugins Support πŸ€—

Icon plugins:

Others plugins:

Labels:

  • * Supported by vim-devicons;
  • ** Partial support. Waiting #392;
  • *** Support by an automated process using CI pipeline whenever this plugin has an update;
  • **** Partial support by vim-devicons;
  • ***** Supported by kyazdani42/nvim-web-devicons.

How to use πŸ€”

This plugin was tested with:

This plugin depends on vim-devicons or kyazdani42/nvim-web-devicons. With this dependency satisfied the plugin should work out of box.

Also the editor will be using Emoji fonts (version 12), so one have to be configured.

For skywind3000/asyncrun.vim you use the Emoji_Icon_Theme_Asyncrun() function to show on the statusline.

How to Add Support for Plugins πŸ”Œ

Icons for filetypes are supported by WebDevIconsGetFileTypeSymbol() function from the vim-devicons. So if the plugin use this function the support is already there.

For others configs, like specify symbols for plugins please open an issue request.

Installation πŸ§™

Add the following lines on the Vim/NeoVim config file:

Plug 'https://github.com/ryanoasis/vim-devicons'
Plug 'https://github.com/adelarsq/vim-devicons-emoji'

Or with kyazdani42/nvim-web-devicons on Neovim config file:

Plug 'https://github.com/kyazdani42/nvim-web-devicons'
Plug 'https://github.com/adelarsq/vim-devicons-emoji'

Then open the editor and install with PlugInstall.

use 'https://github.com/kyazdani42/nvim-web-devicons'
use 'https://github.com/adelarsq/vim-devicons-emoji'

Then open the editor and install with PackerInstall.

Add the following lines on the Vim/NeoVim config file:

call dein#add('ryanoasis/vim-devicons')
call dein#add('adelarsq/vim-devicons-emoji')

Or with kyazdani42/nvim-web-devicons on Neovim config file:

call dein#add('kyazdani42/nvim-web-devicons')
call dein#add('adelarsq/vim-devicons-emoji')

Then open the editor and install with call dein#install().

Motivations πŸ’“

  • Support n plugins and filetypes without a patched font;
  • There is no need for a patched font;
  • It's beautifull.

Bugs πŸ›

Vim and NeoVim have some bugs rendering emojis in some situations. So some emoji can't be used or need some tweeks.

For NeoVim blend shows emojis behind window or popup. See bug.

Acknowledgments πŸ’‘

Thanks goes to these people/projects for inspiration:

License πŸ“œ

MIT

Self-plug πŸ”Œ

If you liked this plugin, also check out:

  • neoline.vim - Status Line for Neovim focused on beauty and performance
  • neovcs.vim - VCS support for Neovim

vim-emoji-icon-theme's People

Contributors

adelarsq avatar atareao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vim-emoji-icon-theme's Issues

how reconfig default icon

default .go file icon is 🌰 , but i change it to , rewrite nvim.init , but it Not applied。

image

plugin load order, e.g. call gitgutter#highlight#define_signs()

Hi, thanks for compiling this great mapping of emoji ↔️ plugin settings into a single handy plugin!

I recently updated my plugins and re-organized them using multiple pack directories, and the emoji for gitgutter stopped working. I didn't see anything in the docs for either plugin, but after a little searching, it seems that the gitgutter signs are only defined when the plugin is loaded. By moving gitgutter to pack/git/start/gitgutter and this plugin to pack/ui/start/emoji-icon-theme, I accidentally made this plugin load after gitgutter's signs had already been created.

I found a few workarounds:

  1. Rename the plugin directory to an early sorting value, e.g. pack/00-init/start/emoji-icon-theme
    • This is simple for users to do, but a little bit annoying. It would need to be documented.
  2. :call gitgutter#highlight#define_signs() to redefine the signs
    • This should be inside an if or a try/catch, in case this plugin loads before gitgutter.
    • It could be added to after/plugin/vim-emoji-icon-theme.vim, letting it run after gitgutter has loaded. No new vimrc config necessary.
  3. autocommand VimEnter * call gitgutter#highlight#define_signs() could run after plugins have loaded.
    • I don't know that this is any better than just using an after dir.
  4. packadd vim-emoji-icon-theme inside the user's vimrc
    • This would ensure this plugin loads before gitgutter. But it would need to be documented. And it'll need to be installed to opt. Annoying
    • However, as an added benefit, this would let the user override this plugin's emoji inside their own vimrc, without needing to add anything to after/plugin.

I'm using the second option in my own ~/.vim/after/plugin dir. But, IMO, the best approach would be second option (in this plugin's after/plugin dir), because that will work without adding anything new to documentation or the user's vimrc. Additionally, to get the benefits of the last option, user overrides could be handled by replacing the lets like so:

let g:gitgutter_sign_added = 'πŸ”Ή'                                  " current
let g:gitgutter_sign_added = get(g:, 'gitgutter_sign_added', 'πŸ”Ή') " updated

What do you think? If you're interested, I should be able to put together a PR... but it might not happen this week. πŸ˜‰

Might want to add `pcall` to your lua `require`

right now if the lua imports fail (because the users have not installed say lsp-status), it kill the whole plugin.

Something like

local go, imported = pcall(require, "path")
if go then
   do something with imported
end

would solve this issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.