Skip to content
The Best Color Picker for Vim! - A Color, Date, and File Chooser for Vim/NeoVim using Zenity
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
plugin
.gitignore
LICENSE MIT License Jan 12, 2018
readme.md Update readme.md Nov 10, 2018
todo.md Added tab completion/suggestion and :help menu to todo list (Issue #5) Jan 16, 2018

readme.md

Pickachu: The BEST color picker for Vim

Table of Contents:

Demo

Watch the GIF

Installation

Notes:

  • You must have a Vim installation with Python3 support. If you're using NeoVim, you can simply type pip3 install neovim.
  • You must have Zenity installed on your computer. On most Linux operating systems, this is already installed.
  • If you're on a Mac, there may still be hope. Here is a guide on installing Zenity with Homebrew on Mac

Plug

Add this line to your plugin loop:

Plug 'DougBeney/pickachu'

Pathogen

git clone https://github.com/DougBeney/pickachu.git ~/.vim/bundle/nerdtree

Apt-Vim

apt-vim install -y https://github.com/DougBeney/pickachu.git

Usage

Commands

:Pick

or...

:Pick [app] [optional: format]

Note: The full command of :Pick is :Pickachu. Use whatever feels more intuitive for you.

Note: By default, app is set to color and format has different defaults depending on what app you choose. See more about defaults and how to change them in the Configuration section

Available Apps

  • color - The color-picker utility. Default format = hex.
  • date - The date-picker utility. Default format is %m/%d/%Y. More about formatting is discussed in the Configuration section.
  • file - The file-picker utility. There are no format options for this utility.

Keyboard shortcuts

By default, there are no keyboard mappings to avoid conflicts with mappings you currently use.

However, here are some ideas:

Mapping the default color picker to alt+c:

map <A-c> :Pickachu<CR>

Mapping the file chooser to alt+f:

map <A-f> :Pickachu file<CR>

Mapping the date chooser to alt+d:

map <A-d> :Pickachu date<CR>

Configuration

Global Variables

Default App

let g:pickachu_default_app = "color"

Available apps: See Available Apps

Default Color Format

let g:pickachu_default_color_format = "hex"

Available color formats are:

  • hex
  • rgb
  • rgba

Default Date Format

let g:pickachu_default_date_format = "%m/%d/%Y"

Date formatting is done through Python datetime. Below is a table showing different formatting codes you could use.

Directive Meaning Example Notes
%a Weekday as locale’s abbreviated name.
Sun, Mon, …, Sat (en_US);
So, Mo, …, Sa (de_DE)
(1)
%A Weekday as locale’s full name.
Sunday, Monday, …, Saturday (en_US);
Sonntag, Montag, …, Samstag (de_DE)
(1)
%w Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. 0, 1, …, 6  
%d Day of the month as a zero-padded decimal number. 01, 02, …, 31  
%b Month as locale’s abbreviated name.
Jan, Feb, …, Dec (en_US);
Jan, Feb, …, Dez (de_DE)
(1)
%B Month as locale’s full name.
January, February, …, December (en_US);
Januar, Februar, …, Dezember (de_DE)
(1)
%m Month as a zero-padded decimal number. 01, 02, …, 12  
%y Year without century as a zero-padded decimal number. 00, 01, …, 99  
%Y Year with century as a decimal number. 1970, 1988, 2001, 2013  
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, …, 23  
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, …, 12  
%p Locale’s equivalent of either AM or PM.
AM, PM (en_US);
am, pm (de_DE)
(1), (2)
%M Minute as a zero-padded decimal number. 00, 01, …, 59  
%S Second as a zero-padded decimal number. 00, 01, …, 59 (3)
%f Microsecond as a decimal number, zero-padded on the left. 000000, 000001, …, 999999 (4)
%z UTC offset in the form +HHMM or -HHMM (empty string if the the object is naive). (empty), +0000, -0400, +1030 (5)
%Z Time zone name (empty string if the object is naive). (empty), UTC, EST, CST  
%j Day of the year as a zero-padded decimal number. 001, 002, …, 366  
%U Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, …, 53 (6)
%W Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, …, 53 (6)
%c Locale’s appropriate date and time representation.
Tue Aug 16 21:30:00 1988 (en_US);
Di 16 Aug 21:30:00 1988 (de_DE)
(1)
%x Locale’s appropriate date representation.
08/16/88 (None);
08/16/1988 (en_US);
16.08.1988 (de_DE)
(1)
%X Locale’s appropriate time representation.
21:30:00 (en_US);
21:30:00 (de_DE)
(1)
%% A literal '%' character. %  

KDE / Qt5 / Qarma support

If you are a KDE and/or would rather use Qt5's color picker, install qarma.

After doing so, add the following line to your configuration:

let g:pickachu_default_command = "qarma"

You can’t perform that action at this time.