icon-picker.nvim is a Neovim plugin that helps you pick 𝑨𝕃𝚻 Font Characters, Symbols Σ, Nerd Font Icons & Emojis ✨
Icon.Picker.Demo.mp4
Icon.Picker.Demo.2.mp4
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 Lazy
{
"ziontee113/icon-picker.nvim",
config = function()
require("icon-picker").setup({ disable_legacy_commands = true })
local opts = { noremap = true, silent = true }
vim.keymap.set("n", "<Leader><Leader>i", "<cmd>IconPickerNormal<cr>", opts)
vim.keymap.set("n", "<Leader><Leader>y", "<cmd>IconPickerYank<cr>", opts) --> Yank the selected icon into register
vim.keymap.set("i", "<C-i>", "<cmd>IconPickerInsert<cr>", opts)
end
}
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
local opts = { noremap = true, silent = true }
vim.keymap.set("n", "<Leader><Leader>i", "<cmd>IconPickerNormal<cr>", opts)
vim.keymap.set("n", "<Leader><Leader>y", "<cmd>IconPickerYank<cr>", opts) --> Yank the selected icon into register
vim.keymap.set("i", "<C-i>", "<cmd>IconPickerInsert<cr>", opts)
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:
- alt_font
- emoji
- html_colors
- nerd_font
- nerd_font_v3 (if you're using Nerd Fonts version 3 and above)
- 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
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)
- Normal Mode:
PickEverything
(Nerd Font Icons & Emojis & Alt Font & Symbols)PickIcons
(Nerd Font Icons & Emojis)PickEmoji
PickNerd
PickNerdV3
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
PickNerdV3Yank
PickSymbolsYank
PickAltFontYank
PickAltFontAndSymbolsYank
- Insert Mode:
PickEverythingInsert
(Nerd Font Icons & Emojis & Alt Font & Symbols)PickIconsInsert
(Nerd Font Icons & Emojis)PickEmojiInsert
PickNerdInsert
PickNerdV3Insert
PickSymbolsInsert
PickAltFontInsert
PickAltFontAndSymbolsInsert
You can use :help
to see the details for any of those commands.
Example: :help PickAltFont
Fine tune the Insert Mode experience.
If you run into issues or come up with an awesome idea, please feel free to open an issue or PR.
@mcauley-penney for the amazing #3 🔥
@logan-connolly for adding Yank commands #7 👍
The project is licensed under MIT license. See LICENSE file for details.