Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/DougBeney/pickachu

The Best Color Picker for Vim! - A Color, Date, and File Chooser for Vim/NeoVim using Zenity
https://github.com/DougBeney/pickachu

Last synced: 19 days ago
JSON representation

The Best Color Picker for Vim! - A Color, Date, and File Chooser for Vim/NeoVim using Zenity

Awesome Lists containing this project

README

        

# Pickachu: The BEST color picker for Vim

**Table of Contents**:

* [Demo](#demo)
* [Installation](#installation)
* [Plug](#plug)
* [Pathogen](#pathogen)
* [Apt-Vim](#apt-vim)
* [Usage](#usage)
* [Commands](#commands)
* [Available Apps](#available-apps)
* [Keyboard shortcuts](#keyboard-shortcuts)
* [Configuration](#configuration)
* [Global Variables](#global-variables)
* [Default App](#default-app)
* [Default Color Format](#default-color-format)
* [Default Date Format](#default-date-format)
* [KDE / Qt5 / Qarma support](#kde--qt5--qarma-support)

## Demo

[Watch the GIF](https://gfycat.com/AccomplishedTintedJoey)

## 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](https://brewinstall.org/install-zenity-on-mac-with-brew/)

### 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](#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](#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 :Pickachu
```

**Mapping the file chooser to `alt+f`:**

```
map :Pickachu file
```

**Mapping the date chooser to `alt+d`:**

```
map :Pickachu date
```

## Configuration

### Global Variables

#### Default App

`let g:pickachu_default_app = "color"`

**Available apps:** See [Available Apps](#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](https://docs.python.org/2/library/datetime.html). 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"`