Emoji searcher for use with fzf
Project description
emoji-fzf
Small utility for manipulating emojis via
fzf's --preview
hook!
Installation
-
Install
fzf
if you don't have it already to use its preview browser: -
Install the latest release of
emoji-fzf
from pypi:pip install emoji-fzf
See emoji-fzf --help
for supported commands.
This project allows you to install the tool in an isolated environment: https://github.com/pipxproject/pipx
zsh plugin
There's an excellent zsh plugin available, see here (thanks @pschmitt !): https://github.com/pschmitt/emoji-fzf.zsh
Manually
Shell alias
You could add a shell alias like the following to your shell init script:
# if you aren't installing to a virtual env, you may need to add this to path
# (if it wasn't already) to access the tool from a pip installation
export PATH=$PATH:~/.local/bin
# add me to your ~/.bashrc or ~/.zshrc or whatnot
alias emoj="emoji-fzf preview | fzf -m --preview "emoji-fzf get --name {1}" | cut -d " " -f 1 | emoji-fzf get"
# to copy to xclip system keyboard (on mac use pbcopy) after selecting
emoj | xclip -selection c
vim
You can also add the following to a ~/.vimrc
file (apologies for the kludgy
vimscript, I'm not great at it), to enable C-e
to open the emoji picker and
insert the selected emoji:
" 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>
Alternative setup
If you prefer not to use fzf's preview feature and have the emojis appear before their aliases you can use the following alias instead:
alias emoj="emoji-fzf preview --prepend | fzf | awk '{ print \$1 }'"
Custom emoji aliases
emoji-fzf uses a pre-defined set of aliases for every emoji. If you want to
define your own, ie add custom aliases for some emojis you can do this via the
--custom-aliases
flag.
Please note that these aliases will be appended to the list of pre-defined aliases and not replace them.
-
First you need to create a JSON file with the following structure:
[ { "👍": ["my-custom-alias", "good-boy"] }, { "💯": ["epic-victory-royale"] } ]
-
Now you can call
emoji-fzf
like so:emoji-fzf --custom-aliases /path/to/your-custom-aliases.json preview
Development/testing
This uses a Dockerfile to keep the test build environment relatively clean and locked. The full test infrastructure is:
- Docker container, based on Ubuntu 20.04
- tox to run the tests + build checks
- pre-commit to run isort, black, etc.
- check-wheel-contents for built wheel sanity
To run the test suite in docker just as CI does:
./test.sh
Building package for publishing
This just uses old timey setuptools:
python setup.py sdist bdist_wheel
Use twine
to upload to pypi.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file emoji-fzf-0.9.0.tar.gz
.
File metadata
- Download URL: emoji-fzf-0.9.0.tar.gz
- Upload date:
- Size: 54.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c195439f82bee9e80febbd1cf9c9b2da0b707304c3cb8c5f8c35dfce4ff3b0e |
|
MD5 | 277e625d3d6d5a52737b89b979fc7708 |
|
BLAKE2b-256 | 910a0d837eeea98d49e696468d7fc1d0ffeb1763a2e3e2a0a01c9d57a9b48ce8 |
File details
Details for the file emoji_fzf-0.9.0-py2.py3-none-any.whl
.
File metadata
- Download URL: emoji_fzf-0.9.0-py2.py3-none-any.whl
- Upload date:
- Size: 51.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 670a09c4e9f1d30cfa9e172bb7aba9a58423a19ae893c1ae8ac5bc977825f95d |
|
MD5 | a5b053a94196ddd308541d376dedf94f |
|
BLAKE2b-256 | 431c48feef19ddb3510c683373e1758547f1a001418cf107a838bd853f62c423 |