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)PickEmojiPickNerdPickNerdV3PickSymbolsPickAltFontPickAltFontAndSymbols
- 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)PickEmojiYankPickNerdYankPickNerdV3YankPickSymbolsYankPickAltFontYankPickAltFontAndSymbolsYank
- Insert Mode:
PickEverythingInsert(Nerd Font Icons & Emojis & Alt Font & Symbols)PickIconsInsert(Nerd Font Icons & Emojis)PickEmojiInsertPickNerdInsertPickNerdV3InsertPickSymbolsInsertPickAltFontInsertPickAltFontAndSymbolsInsert
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.