[![Build Status](https://github.com/dstein64/vimgolf/workflows/build/badge.svg)](https://github.com/dstein64/vimgolf/actions)
vimgolf
=======
This project contains a [vimgolf](https://www.vimgolf.com/) client written in Python.
The user interface is similar to the [official vimgolf client](https://github.com/igrigorik/vimgolf),
with a few additions inspired by [vimgolf-finder](https://github.com/kciter/vimgolf-finder), and an
optional way to specify keys to type when launching a challenge.
Installation
------------
#### Requirements
- Python 3.5 or greater
#### Install
```sh
$ pip3 install vimgolf
```
#### Update
```sh
$ pip3 install --upgrade vimgolf
```
Usage
-----
#### Launch
If the launcher script was installed within a directory on your `PATH`, vimgolf can be launched
directly.
```sh
$ vimgolf
```
Otherwise, vimgolf can be launched by passing its module name to Python.
```sh
$ python3 -m vimgolf
```
#### Commands
```text
vimgolf [help] # display this help and exit
vimgolf config [API_KEY] # configure your VimGolf credentials
vimgolf local IN OUT [KEYS] # launch local challenge
vimgolf put CHALLENGE [KEYS] # launch vimgolf.com challenge
vimgolf list [PAGE][:LIMIT] # list vimgolf.com challenges
vimgolf show CHALLENGE # show vimgolf.com challenge
vimgolf diff CHALLENGE # show diff for vimgolf.com challenge
vimgolf version # display the version number
```
`CHALLENGE` can be a 24-character ID from vimgolf.com, or a plus-prefixed ID corresponding to the
last invocation of `vimgolf list`. For example, a `CHALLENGE` of `+6` would correspond to the sixth
challenge presented in the most recent call to `vimgolf list`.
For the `local` command, `IN` and `OUT` are paths to files.
For the `local` and `put` commands, the optional `KEYS` specifies a set of keys to enter when
launching the challenge. For example, `ihello world<esc>` would enter insert mode, type "hello
world", and then switch back to normal mode. The character `<` is assumed to start a special
sequence (e.g., `<esc>`) if that would be possible given the characters that follow. The input
string should use `<lt>` to disambiguate.
<details open><summary><h2>Demo</h2></summary>
<img src="https://github.com/dstein64/media/blob/main/vimgolf/screencast.gif?raw=true" width="800"/>
</details>
License
-------
The source code has an [MIT License](https://en.wikipedia.org/wiki/MIT_License).
See [LICENSE](https://github.com/dstein64/vimgolf/blob/master/LICENSE).
Raw data
{
"_id": null,
"home_page": "https://github.com/dstein64/vimgolf",
"name": "vimgolf",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": "",
"keywords": "vim,vimgolf",
"author": "Daniel Steinberg",
"author_email": "ds@dannyadam.com",
"download_url": "https://files.pythonhosted.org/packages/af/80/dbffc921c18897d60fb50dd17144a3ffaaa9073b35d08210b5b98dd734ae/vimgolf-0.5.1.tar.gz",
"platform": null,
"description": "[![Build Status](https://github.com/dstein64/vimgolf/workflows/build/badge.svg)](https://github.com/dstein64/vimgolf/actions)\n\nvimgolf\n=======\n\nThis project contains a [vimgolf](https://www.vimgolf.com/) client written in Python.\n\nThe user interface is similar to the [official vimgolf client](https://github.com/igrigorik/vimgolf),\nwith a few additions inspired by [vimgolf-finder](https://github.com/kciter/vimgolf-finder), and an\noptional way to specify keys to type when launching a challenge.\n\nInstallation\n------------\n\n#### Requirements\n\n- Python 3.5 or greater\n\n#### Install\n\n```sh\n$ pip3 install vimgolf\n```\n\n#### Update\n\n```sh\n$ pip3 install --upgrade vimgolf\n```\n\nUsage\n-----\n\n#### Launch\n\nIf the launcher script was installed within a directory on your `PATH`, vimgolf can be launched\ndirectly.\n\n```sh\n$ vimgolf\n```\n\nOtherwise, vimgolf can be launched by passing its module name to Python.\n\n```sh\n$ python3 -m vimgolf\n```\n\n#### Commands\n\n```text\n vimgolf [help] # display this help and exit\n vimgolf config [API_KEY] # configure your VimGolf credentials\n vimgolf local IN OUT [KEYS] # launch local challenge\n vimgolf put CHALLENGE [KEYS] # launch vimgolf.com challenge\n vimgolf list [PAGE][:LIMIT] # list vimgolf.com challenges\n vimgolf show CHALLENGE # show vimgolf.com challenge\n vimgolf diff CHALLENGE # show diff for vimgolf.com challenge\n vimgolf version # display the version number\n```\n\n`CHALLENGE` can be a 24-character ID from vimgolf.com, or a plus-prefixed ID corresponding to the\nlast invocation of `vimgolf list`. For example, a `CHALLENGE` of `+6` would correspond to the sixth\nchallenge presented in the most recent call to `vimgolf list`.\n\nFor the `local` command, `IN` and `OUT` are paths to files.\n\nFor the `local` and `put` commands, the optional `KEYS` specifies a set of keys to enter when\nlaunching the challenge. For example, `ihello world<esc>` would enter insert mode, type \"hello\nworld\", and then switch back to normal mode. The character `<` is assumed to start a special\nsequence (e.g., `<esc>`) if that would be possible given the characters that follow. The input\nstring should use `<lt>` to disambiguate.\n\n<details open><summary><h2>Demo</h2></summary>\n\n<img src=\"https://github.com/dstein64/media/blob/main/vimgolf/screencast.gif?raw=true\" width=\"800\"/>\n\n</details>\n\nLicense\n-------\n\nThe source code has an [MIT License](https://en.wikipedia.org/wiki/MIT_License).\n\nSee [LICENSE](https://github.com/dstein64/vimgolf/blob/master/LICENSE).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A vimgolf client written in Python",
"version": "0.5.1",
"project_urls": {
"Homepage": "https://github.com/dstein64/vimgolf"
},
"split_keywords": [
"vim",
"vimgolf"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2e8a2df1442d0566ebfdc1b45d3d268e161bf3c9a2e10481f70a14fdbd17e216",
"md5": "585296b028a6ec3ff449ccf24b80d9ef",
"sha256": "9dc2aeca4d424e5185ef3e6cb79524abbabad6ba8d8dc7fa777a88cf1b7c44d6"
},
"downloads": -1,
"filename": "vimgolf-0.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "585296b028a6ec3ff449ccf24b80d9ef",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 18616,
"upload_time": "2023-10-07T01:47:49",
"upload_time_iso_8601": "2023-10-07T01:47:49.509202Z",
"url": "https://files.pythonhosted.org/packages/2e/8a/2df1442d0566ebfdc1b45d3d268e161bf3c9a2e10481f70a14fdbd17e216/vimgolf-0.5.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af80dbffc921c18897d60fb50dd17144a3ffaaa9073b35d08210b5b98dd734ae",
"md5": "00c39cd232542127b3f9cd7fb3dbcf71",
"sha256": "8e41abf7a694ed520958bb12d99b78652babeda34290e17492307fb6410b3f65"
},
"downloads": -1,
"filename": "vimgolf-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "00c39cd232542127b3f9cd7fb3dbcf71",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 20619,
"upload_time": "2023-10-07T01:47:51",
"upload_time_iso_8601": "2023-10-07T01:47:51.025162Z",
"url": "https://files.pythonhosted.org/packages/af/80/dbffc921c18897d60fb50dd17144a3ffaaa9073b35d08210b5b98dd734ae/vimgolf-0.5.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-07 01:47:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dstein64",
"github_project": "vimgolf",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "vimgolf"
}