{"id":13894703,"url":"https://github.com/muffinmad/emacs-ibuffer-project","last_synced_at":"2025-07-17T09:33:58.310Z","repository":{"id":149689605,"uuid":"159879673","full_name":"muffinmad/emacs-ibuffer-project","owner":"muffinmad","description":"Group ibuffer's list by project","archived":false,"fork":false,"pushed_at":"2024-03-14T09:00:15.000Z","size":19,"stargazers_count":29,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-07T18:31:25.946Z","etag":null,"topics":["emacs","ibuffer"],"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/muffinmad.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}},"created_at":"2018-11-30T21:18:01.000Z","updated_at":"2024-07-11T17:00:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"fbc72ae9-b562-4adf-af4f-b7733a235736","html_url":"https://github.com/muffinmad/emacs-ibuffer-project","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinmad%2Femacs-ibuffer-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinmad%2Femacs-ibuffer-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinmad%2Femacs-ibuffer-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muffinmad%2Femacs-ibuffer-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muffinmad","download_url":"https://codeload.github.com/muffinmad/emacs-ibuffer-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226248375,"owners_count":17595159,"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":["emacs","ibuffer"],"created_at":"2024-08-06T18:01:42.878Z","updated_at":"2024-11-24T23:31:21.886Z","avatar_url":"https://github.com/muffinmad.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://stand-with-ukraine.pp.ua)\n\n[![License GPL 3](https://img.shields.io/badge/license-GPL_3-green.svg)](http://www.gnu.org/copyleft/gpl.html)\n[![MELPA](http://melpa.org/packages/ibuffer-project-badge.svg)](http://melpa.org/#/ibuffer-project)\n[![MELPA Stable](https://stable.melpa.org/packages/ibuffer-project-badge.svg)](https://stable.melpa.org/#/ibuffer-project)\n\n# emacs-ibuffer-project\n\nEmacs package that provides ibuffer filtering and sorting functions to group buffers by custom functions or regexps. By default buffers are grouped by project or by default directory.\n\n## Usage\n\nTo group buffers set `ibuffer-filter-groups` to result of `ibuffer-project-generate-filter-groups` function:\n```elisp\n(add-hook\n 'ibuffer-hook\n (lambda ()\n   (setq ibuffer-filter-groups (ibuffer-project-generate-filter-groups))\n   (unless (eq ibuffer-sorting-mode 'project-file-relative)\n     (ibuffer-do-sort-by-project-file-relative))))\n```\n\n### Custom groups\n\nCreating custom groups is possible by customizing `ibuffer-project-root-functions`. For example, add function `file-remote-p` like this:\n```elisp\n(add-to-list 'ibuffer-project-root-functions '(file-remote-p . \"Remote\"))\n```\nIn this case all remote buffers will be grouped by a string identifying the remote connection.\n\n### Project relative filename\n\nThis package also provides column with filename relative to project. If there are no file in buffer then column will display buffer name.\n\nAdd `project-file-relative` to `ibuffer-formats`:\n```elisp\n(custom-set-variables\n '(ibuffer-formats\n   '((mark modified read-only locked \" \"\n           (name 18 18 :left :elide)\n           \" \"\n           (size 9 -1 :right)\n           \" \"\n           (mode 16 16 :left :elide)\n           \" \" project-file-relative))))\n```\n\nIt's also possible to sort buffers by that column by calling `ibuffer-do-sort-by-project-file-relative` or:\n```elisp\n(add-hook 'ibuffer-hook\n          (lambda ()\n            (setq ibuffer-filter-groups (ibuffer-project-generate-filter-groups))\n            (unless (eq ibuffer-sorting-mode 'project-file-relative)\n              (ibuffer-do-sort-by-project-file-relative))))\n```\n\n### Caching project per directory\n\nTo avoid calling `project-current` each time, one can set `ibuffer-project-use-cache`. Project info will be stored in the `ibuffer-project-cache` variable. Command `ibuffer-project-clear-cache` allows to clear project info cache.\n\n## Installation\n\n### With `package.el`\n\n`ibuffer-project` available on [MELPA](http://melpa.org):\n\n\u003ckbd\u003eM-x\u003c/kbd\u003e `package-install` \u003ckbd\u003eRET\u003c/kbd\u003e `ibuffer-project` \u003ckbd\u003eRET\u003c/kbd\u003e.\n\nAlternatively, you can download `ibuffer-project.el` and run:\n\n\u003ckbd\u003eM-x\u003c/kbd\u003e `package-install-file` \u003ckbd\u003eRET\u003c/kbd\u003e `\u003cpath-to-ibuffer-project-el\u003e` \u003ckbd\u003eRET\u003c/kbd\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuffinmad%2Femacs-ibuffer-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuffinmad%2Femacs-ibuffer-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuffinmad%2Femacs-ibuffer-project/lists"}