{"id":13862493,"url":"https://github.com/abo-abo/tiny","last_synced_at":"2025-10-10T20:17:03.755Z","repository":{"id":9702637,"uuid":"11653326","full_name":"abo-abo/tiny","owner":"abo-abo","description":"Quickly generate linear ranges in Emacs","archived":false,"fork":false,"pushed_at":"2023-03-21T16:52:22.000Z","size":69,"stargazers_count":147,"open_issues_count":2,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-08-16T00:14:37.365Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abo-abo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-07-25T06:13:58.000Z","updated_at":"2025-08-15T11:48:26.000Z","dependencies_parsed_at":"2024-06-18T23:00:51.633Z","dependency_job_id":"2c3149dc-f551-48a4-9c41-2fb10e536104","html_url":"https://github.com/abo-abo/tiny","commit_stats":{"total_commits":65,"total_committers":6,"mean_commits":"10.833333333333334","dds":"0.41538461538461535","last_synced_commit":"c107480fca7e42737c51b2afaa33ac31e92a7290"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abo-abo/tiny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abo-abo%2Ftiny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abo-abo%2Ftiny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abo-abo%2Ftiny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abo-abo%2Ftiny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abo-abo","download_url":"https://codeload.github.com/abo-abo/tiny/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abo-abo%2Ftiny/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005267,"owners_count":26083861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-05T06:01:45.758Z","updated_at":"2025-10-10T20:17:03.723Z","avatar_url":"https://github.com/abo-abo.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/abo-abo/tiny.svg?branch=master)](https://travis-ci.org/abo-abo/tiny)\n[![Coverage Status](https://coveralls.io/repos/abo-abo/tiny/badge.svg?branch=master)](https://coveralls.io/r/abo-abo/tiny?branch=master)\n\n### Main idea:\n\nThis is an alternative to inserting numeric ranges with macros (i.e. `F3 F3`).\nThe advantages are:\n\n1. Brevity: consider `F3 F3 SPC M-1 M-0 F4` vs. `m10 C-;`.\n2. Much better undo context: a single `C-_` will undo the whole thing\n   and allow you to edit the code. With macros you'd have to undo multiple\n   times and restart from scratch, instead of tweaking what you just invoked.\n3. The ability to insert the same number several times in a single iteration,\n   and transform it with `format`-style expressions\n   e.g. `m6\\n15%s=0%o=0x%x` will expand to\n\n        6=06=0x6\n        7=07=0x7\n        8=010=0x8\n        9=011=0x9\n        10=012=0xa\n        11=013=0xb\n        12=014=0xc\n        13=015=0xd\n        14=016=0xe\n        15=017=0xf\n4. Last but not least, the ability to transform the number with lisp expressions.\n   For instance:\n    1. `m5 10*xx` -\u003e `25 36 49 64 81 100`\n    2. `m5 10*xx|0x%x` -\u003e `0x19 0x24 0x31 0x40 0x51 0x64`\n    3. `m10+x?a%c` -\u003e `a b c d e f g h i j k`\n    4. `m10+x?A%c` -\u003e `A B C D E F G H I J K`\n    5. `m97,105stringx` -\u003e `a,b,c,d,e,f,g,h,i`\n    6. `m97,102stringxupcasex` -\u003e `aA,bB,cC,dD,eE,fF`\n    7. `m,3|%(+ x x) and %(* x x) and %s` -\u003e `0 and 0 and 0,2 and 1 and 1,4 and 4 and 2,6 and 9 and 3,8 and 16 and 4,10 and 25 and 5`\n\n### Use in conjunction with `org-mode`:\n\n    m1\\n14|*** TODO http://emacsrocks.com/e%02d.html\n\n    *** TODO http://emacsrocks.com/e01.html\n    *** TODO http://emacsrocks.com/e02.html\n    *** TODO http://emacsrocks.com/e03.html\n    *** TODO http://emacsrocks.com/e04.html\n    *** TODO http://emacsrocks.com/e05.html\n    *** TODO http://emacsrocks.com/e06.html\n    *** TODO http://emacsrocks.com/e07.html\n    *** TODO http://emacsrocks.com/e08.html\n    *** TODO http://emacsrocks.com/e09.html\n    *** TODO http://emacsrocks.com/e10.html\n    *** TODO http://emacsrocks.com/e11.html\n    *** TODO http://emacsrocks.com/e12.html\n    *** TODO http://emacsrocks.com/e13.html\n    *** TODO http://emacsrocks.com/e14.html\n\nYou can even schedule and deadline:\n\n    m\\n8|**** TODO Learning from Data Week %(+ x 2) \\nSCHEDULED: \u003c%(date \"Oct 7\" (* x 7))\u003e DEADLINE: \u003c%(date \"Oct 14\" (* x 7))\u003e\n\n    **** TODO Learning from Data Week 2\n    SCHEDULED: \u003c2013-10-07 Mon\u003e DEADLINE: \u003c2013-10-14 Mon\u003e\n    **** TODO Learning from Data Week 3\n    SCHEDULED: \u003c2013-10-14 Mon\u003e DEADLINE: \u003c2013-10-21 Mon\u003e\n    **** TODO Learning from Data Week 4\n    SCHEDULED: \u003c2013-10-21 Mon\u003e DEADLINE: \u003c2013-10-28 Mon\u003e\n    **** TODO Learning from Data Week 5\n    SCHEDULED: \u003c2013-10-28 Mon\u003e DEADLINE: \u003c2013-11-04 Mon\u003e\n    **** TODO Learning from Data Week 6\n    SCHEDULED: \u003c2013-11-04 Mon\u003e DEADLINE: \u003c2013-11-11 Mon\u003e\n    **** TODO Learning from Data Week 7\n    SCHEDULED: \u003c2013-11-11 Mon\u003e DEADLINE: \u003c2013-11-18 Mon\u003e\n    **** TODO Learning from Data Week 8\n    SCHEDULED: \u003c2013-11-18 Mon\u003e DEADLINE: \u003c2013-11-25 Mon\u003e\n    **** TODO Learning from Data Week 9\n    SCHEDULED: \u003c2013-11-25 Mon\u003e DEADLINE: \u003c2013-12-02 Mon\u003e\n    **** TODO Learning from Data Week 10\n    SCHEDULED: \u003c2013-12-02 Mon\u003e DEADLINE: \u003c2013-12-09 Mon\u003e\n\nHere's how to schedule a task that repeats Monday through Friday at 10:00, every week:\n\n    m0\\n4|** TODO Something work-related\\nSCHEDULED: \u003c%(date \"mon\" x) 10:00 +1w\u003e\n\n    ** TODO Something work-related\n    SCHEDULED: \u003c2013-11-04 Mon 10:00 +1w\u003e\n    ** TODO Something work-related\n    SCHEDULED: \u003c2013-11-05 Tue 10:00 +1w\u003e\n    ** TODO Something work-related\n    SCHEDULED: \u003c2013-11-06 Wed 10:00 +1w\u003e\n    ** TODO Something work-related\n    SCHEDULED: \u003c2013-11-07 Thu 10:00 +1w\u003e\n    ** TODO Something work-related\n    SCHEDULED: \u003c2013-11-08 Fri 10:00 +1w\u003e\n\n### Setup\nIn `~/.emacs`:\n\n    (require 'tiny)\n    (tiny-setup-default)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabo-abo%2Ftiny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabo-abo%2Ftiny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabo-abo%2Ftiny/lists"}