DougBeney / pickachu

The Best Color Picker for Vim! - A Color, Date, and File Chooser for Vim/NeoVim using Zenity
https://dougie.io
MIT License
89 stars 1 forks source link

Pickachu: The BEST color picker for Vim

Table of Contents:

Demo

Watch the GIF

Installation

Notes:

Plug

Add this line to your plugin loop:

Plug 'DougBeney/pickachu'

Pathogen

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

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

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:

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"