ziontee113/icon-picker.nvim

github github
icon
star 76
stars
alert-circle 0
open issues
users 2
subscribers
git-branch 3
forks
CREATED

2022-06-20

UPDATED

19 days ago


icon-picker.nvim

icon-picker.nvim is a Neovim plugin that helps you pick 𝑨𝕃𝚻 Font Characters, Symbols Σ, Nerd Font Icons  & Emojis ✨

https://user-images.githubusercontent.com/102876811/174574267-d38861f2-cd11-416f-81b8-93ff115fe6b5.mp4

https://user-images.githubusercontent.com/102876811/174574279-37d4dc95-3fa3-41e2-881c-4c89860bbe22.mp4

Pick Symbol Screenshot

Alt Font Screenshot

Installation

This plugin utilizes vim.ui.select(), so you're gonna need something like dressing.nvim and a fuzzy finder like Telescope or fzf-lua

For Packer

use "stevearc/dressing.nvim"
use({
  "ziontee113/icon-picker.nvim",
  config = function()
    require("icon-picker").setup({
      disable_legacy_commands = true
    })
  end,
})

For Vim Plug

Plug 'stevearc/dressing.nvim'
Plug 'ziontee113/icon-picker.nvim'

lua << EOF
require("icon-picker").setup({ disable_legacy_commands = true })
EOF

Usage

Sample Config (new):

local opts = { noremap = true, silent = true }

vim.keymap.set("n", "<Leader><Leader>i", "<cmd>IconPickerNormal alt_font symbols nerd_font emoji<cr>", opts)
vim.keymap.set("n", "<Leader><Leader>y", "<cmd>IconPickerYank alt_font symbols nerd_font emoji<cr>", opts) --> Yank the selected icon into register
vim.keymap.set("i", "<C-i>", "<cmd>IconPickerInsert alt_font symbols nerd_font emoji<cr>", opts)

Available Commands:

  • IconPickerNormal - Pick Icon and insert it to the buffer (normal mode)
  • IconPickerInsert - Pick Icon and insert it to the buffer (insert mode)
  • IconPickerYank - Pick Icon and yank it to register (will not input to buffer)

You can cherry pick the Icon source to your preference using arguments, for example:

:IconPickerInsert alt_font symbols
:IconPickerInsert nerd_font emoji
:IconPickerInsert nerd_font
:IconPickerInsert emoji nerd_font alt_font symbols

Available arguments for the IconPicker commands:

  • emoji
  • nerd_font
  • alt_font
  • symbols

I personally use <C-i> for IconPickerInsert. If you also want to map <C-I> and can't do it, you can check out my quick guide to solve that on YouTube: Enable Special Keyboard Combinations in Alacritty / Kitty for Neovim

Sample Config (legacy):

local opts = { noremap = true, silent = true }

vim.keymap.set("n", "<Leader><Leader>i", "<cmd>PickEverything<cr>", opts)
vim.keymap.set("n", "<Leader><Leader>y", "<cmd>PickEverythingYank<cr>", opts)
vim.keymap.set("i", "<C-i>", "<cmd>PickEverythingInsert<cr>", opts)

Available Commands:

  • Normal Mode:
    • PickEverything (Nerd Font Icons & Emojis & Alt Font & Symbols)
    • PickIcons (Nerd Font Icons & Emojis)
    • PickEmoji
    • PickNerd
    • PickSymbols
    • PickAltFont
    • PickAltFontAndSymbols
  • Normal Mode (yank): These commands will Yank the selected icon into register
    • PickEverythingYank (Nerd Font Icons & Emojis & Alt Font & Symbols)
    • PickIconsYank (Nerd Font Icons & Emojis)
    • PickEmojiYank
    • PickNerdYank
    • PickSymbolsYank
    • PickAltFontYank
    • PickAltFontAndSymbolsYank
  • Insert Mode:
    • PickEverythingInsert (Nerd Font Icons & Emojis & Alt Font & Symbols)
    • PickIconsInsert (Nerd Font Icons & Emojis)
    • PickEmojiInsert
    • PickNerdInsert
    • PickSymbolsInsert
    • PickAltFontInsert
    • PickAltFontAndSymbolsInsert

You can use :help to see the details for any of those commands. Example: :help PickAltFont

Todo:

Fine tune the Insert Mode experience.

Feedback

If you run into issues or come up with an awesome idea, please feel free to open an issue or PR.

Special Thanks To

@mcauley-penney for the amazing #3 :fire:

@logan-connolly for adding Yank commands #7 :thumbsup:

License

The project is licensed under MIT license. See LICENSE file for details.