https://github.com/pmeinhardt/thrasher
a heavy-metal music player for vim – :guitar: :metal: :zap:
https://github.com/pmeinhardt/thrasher
itunes music player vim
Last synced: 11 months ago
JSON representation
a heavy-metal music player for vim – :guitar: :metal: :zap:
- Host: GitHub
- URL: https://github.com/pmeinhardt/thrasher
- Owner: pmeinhardt
- License: mit
- Created: 2016-04-14T06:50:34.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-11-15T07:38:16.000Z (over 6 years ago)
- Last Synced: 2025-03-30T00:31:38.953Z (about 1 year ago)
- Topics: itunes, music, player, vim
- Language: Vim script
- Homepage:
- Size: 27.3 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
```
THRASHER - A HEAVY-METAL MUSIC PLAYER FOR VIM
,'
.c0:
.dNX'
.. ,kMM0.
'KX' .cKMMMd.
:WMMWl. .oNMMMWc
.xMMMMMM0.,kWMMMMN,
.KMMMMMMMMMMMMMMM0.
;NMMMMMMMMMMMMMMMx.
.oMMMMMMXMMMMMMMMWl
.0MMMMWk' cWMMMMMN,
,NMMMXl. ,NMMMK.
oMMMO;. .0Mk.
.OMWd. .;
'XKc.
ck,
..
```
[U+1F5F2](http://unicode-table.com/en/1F5F2/)
## What the heck?
Currently this project is in an experimental state,
but it is beginning to be actually usable (for me at least).
At the moment, Thrasher only works with iTunes on Mac OS X.
The idea is, of course, to support controlling other players as well.
If you're brave (curious) enough to give this project a try,
I'd love to hear back from you. *Let me know what you think.*
Thanks. You rock!
## Using
**Basic usage**
To bring up Thrasher's interface, type `m`.
Personally, I have mapped `` to `,`, which makes this key combination
very easy to type (on an English keyboard). You can easily
[change the default](#configuration) though.
The interface may take a moment to appear for the first time,
because it is caching track information in the background.
Following invocations should then be instantaneous.
You can then start typing to search for tracks matching your input.
Thrasher allows searching by `artist`, `album` or `track` name, and also
lets you look for tracks with `any` of these properties matching your query.
To switch between search modes, press `ctrl-v` (``).
You can scroll through the list of found tracks, using `` to go down and
`` to move up.
Hit `` to play the selected song!
To close, hit `` or ``.
**Advanced**
Inputting (prompt focus)
- type to search (letters, numbers, spaces…)
- `` moves the cursor left
- `` moves the cursor right
- `` jumps to the very end of your input
- `` places the prompt cursor at the start
- `` deletes the preceding character
- `` deletes the current character
- `` deletes the word in front of the cursor
- `` deletes your entire search input
Navigation
- `` moves the track selection down
- `` moves the track selection up
Search modes
- `` switch between search modes (`any`/`artist`/`album`/`track`)
Player control
- `` toggles between play and pause
- `` skips forward to the next track
- `` lets you return to the previous track
Focus
- `` switches between prompt and window focus
The prompt controls for entering queries are explained above.
Thrasher will launch with prompt focus by default.
With window focus you can navigate the result list more easily,
using standard vim navigation mappings. Hit `` to play the selection,
`` to close or `` to switch back to prompt focus.
The player controls and search mode mappings are available both with
prompt and window focus.
**Further documentation**
To open the vim documentation, run `:help thrasher`.
## Installing
**[Pathogen](https://github.com/tpope/vim-pathogen)**
`git clone https://github.com/pmeinhardt/thrasher.git ~/.vim/bundle`
Remember to run `:helptags` to generate the help tags.
**[Vundle](https://github.com/VundleVim/Vundle.vim)**
`Plugin 'pmeinhardt/thrasher'`
**[Plug](https://github.com/junegunn/vim-plug)**
`Plug 'pmeinhardt/thrasher'`
## Configuration
You can change the default key mapping for invoking Thrasher,
simply by adding `let g:thrashermap = "…"` to your `.vimrc` file.
Make sure to add these options before executing `pathogen#infect()`,
calling `vundle#end()` or `plug#end()` – i.e. before loading the plugin.
## Contributing
There are many ways in which you could contribute: Through code, by creating
pull-requests, but mainly by just providing me with feedback and
your thoughts on what to improve.
## Thanks
This project boldly steals some user interface ideas from the very useful
[ctrlp](https://github.com/ctrlpvim/ctrlp.vim),
a vim plugin which has been making my vim a lot more fun.