{"id":29204864,"url":"https://github.com/5ht/pie","last_synced_at":"2025-07-02T15:37:11.869Z","repository":{"id":208904016,"uuid":"479198672","full_name":"5HT/pie","owner":"5HT","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-17T19:18:58.000Z","size":96,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-17T20:27:12.800Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/5HT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-04-08T01:06:33.000Z","updated_at":"2025-06-17T19:22:12.000Z","dependencies_parsed_at":"2023-11-23T23:22:40.735Z","dependency_job_id":"b9e6bbc1-a25f-4b66-a7fc-a10dcb8924f9","html_url":"https://github.com/5HT/pie","commit_stats":null,"previous_names":["5ht/pie-editor","bitedits/pie"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/5HT/pie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5HT%2Fpie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5HT%2Fpie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5HT%2Fpie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5HT%2Fpie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/5HT","download_url":"https://codeload.github.com/5HT/pie/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5HT%2Fpie/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263167005,"owners_count":23424290,"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","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":"2025-07-02T15:37:08.343Z","updated_at":"2025-07-02T15:37:11.854Z","avatar_url":"https://github.com/5HT.png","language":"Erlang","readme":"Programmer's Interactive Editor\n===============================\n\nEmacs-like Erlang editor fully written in Erlang with S-Lang driver.\nIt is refined and ready to run on R16B01 with built-in sync and lager.\nPie codebase is very tiny, clean and extendable.\n\n![Unicode](http://i.juick.com/photos-512/2505478.jpg)\n\nMac Install\n-----------\n\n    $ curl ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v2.2/slang-2.2.4.tar.gz | tar xzf -\n    $ ./configure --prefix=/usr\n    $ make static\n    $ sudo make install-static\n\nUbuntu Install\n--------------\n\n    $ sudo apt-get install libslang2-pic\n\nInstall Pie\n-----------\n\n    $ rebar get-deps\n    $ rebar compile\n    $ ./install\n\nRun\n---\n\n    $ pie README.md\n\nCUA mode\n--------\n\nPie suports Extended Kystrokes and CUA mode being general purpose\neditor saving your hands from RSI.\n\n    CURSOR            -- Navigation\n    HOME (Fn-LEFT)    -- Begining of line\n    END  (Fn-RIGHT)   -- End of line\n    PGUP (Fn-UP)      -- Page up\n    PGDN (Fn-DOWN)    -- Page down\n\nSelection\n    \n    S-CURSOR    -- Selection\n    C-S-LEFT    -- Begining of line\n    C-S-RIGHT   -- End of line\n    M-S-LEFT    -- Word left\n    M-S-RIGHT   -- Word right\n\nSelection CUA mode caveats due to Linux Terminal limitations\n    \n    C-S-UP/DN   -- unbinded\n    S-PGUP/PGDN -- unbinded\n    \nCopy \u0026 Paste\n\n    M-c -- Copy\n    M-v -- Paste\n\nRemember that Pie is an Emacs (Erlang Macros) editor thus\nit supports all basic Emacs commands which you can find\nin edit_globalmap bindings. Here are most important:\n\nFile Operations\n---------------\n\n    C-x C-c -- Quit\n    C-x C-f -- Find File, supports autocompletion in popup-windows\n    C-x C-s -- Save File\n\nWindow Management\n-----------------\n\n    C-x o   -- Next Window\n    C-x 0   -- Delete selected Window\n    C-x 1   -- Delete other Windows\n    C-x 2   -- Vertical Split \n    \nPie Commands\n------------\n\n    M-x     -- will run internal Pie command in module:function format.\n               E.g. you can type \"edit_lib:scroll_up\"\n\nFor developing Pie commands a parse_transform syntax was introduced.\nHere is example of edit_lib:unix_command\n\n    -command({unix_command, [{shell_command, \"Shell command:\"}]}).\n    unix_command(State, Cmd) -\u003e\n        Text = os:cmd([\"sh -c '(cd \",edit_util:pwd(State),\" ; \",Cmd,\")'\"]),\n        edit_util:popup_message(State, '*Shell Command Output*', Text).\n\nState is mandatory first argument of Pie state.\n\nEval\n----\n\n    M-:     -- command will evaluate Erlang Expression in the minibuffer,\n               like \"os:type().\" or \"lists:seq(1,100).\". If output is\n               not fit into one line another window will be created.\n\nInteractive Mode\n----------------\n\n    C-x i   -- command will enter Erlang Interactive shell \n               where you can evaluate Erlang expressions \n               inside editor buffer by pressing ENTER on them.\n               The result would be displayed also in the \n               editor buffer below.\n\n                    os:type(). ENTER\n                    =\u003e {unix,linux}\n                    \u003e\u003e\n\nFundamental Mode\n----------------\n\n    C-x f   -- command will bring you back to Fundamental mode which\n               is defaul editing mode.\n\nErlang Mode\n-----------\n\n    C-x e   -- command will dive you into Erlang mode which helps you edit Erlang code.\n    C-i     -- reformat selected code\n\nFuther tasks\n------------\n\n* Syntax Coloring\n* UTF-8\n\nCredits\n-------\n\n* Torbjorn Tornkvist -- original edit program\n* Luke Gorrie -- ermacs package\n* Maxim Sokhatsky -- pie renaissance\n\nNotes\n-----\n\nThis file was edited using Pie.\nPie supports self-developing using sync.\n\nOM A HUM\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5ht%2Fpie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F5ht%2Fpie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5ht%2Fpie/lists"}