{"id":29005241,"url":"https://github.com/occivink/kakoune-filetree","last_synced_at":"2025-06-25T11:06:11.237Z","repository":{"id":89330269,"uuid":"121660656","full_name":"occivink/kakoune-filetree","owner":"occivink","description":"View and navigate files","archived":false,"fork":false,"pushed_at":"2023-12-02T15:34:01.000Z","size":76,"stargazers_count":26,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-18T01:44:20.173Z","etag":null,"topics":["files","kakoune","plugin"],"latest_commit_sha":null,"homepage":"","language":"KakouneScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/occivink.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}},"created_at":"2018-02-15T17:44:46.000Z","updated_at":"2025-06-14T18:44:37.000Z","dependencies_parsed_at":"2023-11-30T21:42:58.877Z","dependency_job_id":null,"html_url":"https://github.com/occivink/kakoune-filetree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/occivink/kakoune-filetree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/occivink%2Fkakoune-filetree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/occivink%2Fkakoune-filetree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/occivink%2Fkakoune-filetree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/occivink%2Fkakoune-filetree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/occivink","download_url":"https://codeload.github.com/occivink/kakoune-filetree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/occivink%2Fkakoune-filetree/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261859210,"owners_count":23220711,"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":["files","kakoune","plugin"],"created_at":"2025-06-25T11:02:32.816Z","updated_at":"2025-06-25T11:06:11.227Z","avatar_url":"https://github.com/occivink.png","language":"KakouneScript","funding_links":[],"categories":["KakouneScript"],"sub_categories":[],"readme":"# kakoune-filetree\n\n[Kakoune](http://kakoune.org) plugin to view and navigate files, using `tree`.\n\n[![Demo](https://asciinema.org/a/568907.png)](https://asciinema.org/a/568907)\n\n## Setup\n\nAdd `filetree.kak` and `filetree.perl` to your `autoload` directory: `~/.config/kak/autoload/`, or source the kakoune file manually.\nThe two files must be in the same directory for the plugin to function.\n\nThe plugin has a dependency on `tree` as well as `perl`.\n\n## Basic usage\n\nSimply call `:filetree`. A new buffer will be open with all files found below the specified directory (Kakoune's current directory by default), presented in a tree-like structure.\n\nFrom the `*filetree*` buffer, you can open files by pressing \u003ckbd\u003eReturn\u003c/kbd\u003e (calling the command `filetree-open-selected-files`).\n\nThe files that are open in buffers are highlighted with a special face.\n\n## Navigation\n\nThe `filetree-edit` command can be used for opening files, using the fuzzy matching engine of Kakoune. The completions are generated using the content of the `*filetree*` buffer: any file in the tree is proposed as a possible completion. This command can be used from any context, as long as the `*filetree*` buffer exists.\n\nThe `filetree-goto` command can be used for selecting entries in the filetree, using the same fuzzy completion as with `filetree-edit`.\n\nThe following commands can be used to navigate the files and directories depending on their relationship:\n* `filetree-select-prev-sibling`: select next entry in the same directory as the selected entry (`\u003ca-up\u003e`)  \n* `filetree-select-next-sibling`: select previous entry in the same directory as the selected entry (`\u003ca-down\u003e`)  \n* `filetree-select-parent-directory`: select parent directory of the selected entry (`\u003ca-left\u003e`)  \n* `filetree-select-first-child`: select first entry in the selected directory (`\u003ca-right\u003e`)  \n* `filetree-select-direct-children`: select all entries directly in the selected directory  \n* `filetree-select-all-children`: select all entries in all subdirectories of the selected directory  \n\nThe `filetree-select-open-files` command can be used to select all files currently opened in buffers.\n\n## Manipulation\n\nThe `*filetree*` buffer can be modified by hand as long as the general tree-structure is preserved (for example, certain irrelevant files or directories can be filtered out by deleting the corresponding lines).\n\nThe `*filetree*` buffer supports limited manipulation of the filesystem with the commands `filetree-create-child` and `filetree-create-sibling`. \nNote that the two commands do not create the files themselves, they only adjust the buffer to keep the tree structure valid. The desired filename can then be typed out, and then opened with `filetree-open-selected-files -create`.\n\nIt is currently not possible (nor planned) to rename, move or delete files using this plugin.\n\n## Customization\n\nThe `filetree` command offers various switches to control which files are shown in the tree and in which order.\n* `-files-first`: for each level, show files before directories  \n* `-dirs-first`: for each level, show directories before files  \n* `-consider-gitignore`: do not show any entries matched by gitignore rules  \n* `-no-empty-dirs`: do not show empty directories  \n* `-show-hidden`: show hidden files and directories  \n* `-depth \u003cDEPTH\u003e`: only traverse the root directory up to \u003cDEPTH\u003e directories deep (unlimited by default)  \n* `-only-dirs`: only show directories, not files  \n\nIn addition, the following options and faces can be changed to affect the style of the tree:\n* option `filetree_indentation_level`: number of padding characters for each depth level (\u003e=0, default 3)  \n* face `FileTreePipes`: used for the indentation lines of the tree (`rgb:606060,default`)  \n* face `FileTreeDirName`: used for directories (`blue,default+b`)  \n* face `FileTreeFileName`: used for files (`default,default`)  \n* face `FileTreeOpenFiles`: used for files that have an open buffer (`black,yellow`)  \n* face `FileTreeEmptyName`: used for highlighting empty (and therefore invalid) entries, such as when creating them (`default,red`)  \n\n## License\n\n[Unlicense](http://unlicense.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foccivink%2Fkakoune-filetree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foccivink%2Fkakoune-filetree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foccivink%2Fkakoune-filetree/lists"}