{"id":13937143,"url":"https://github.com/pindexis/qfc","last_synced_at":"2025-04-05T09:06:44.356Z","repository":{"id":34916296,"uuid":"38966892","full_name":"pindexis/qfc","owner":"pindexis","description":"Quick Command-line File Completion","archived":false,"fork":false,"pushed_at":"2022-02-20T15:57:01.000Z","size":33,"stargazers_count":579,"open_issues_count":25,"forks_count":22,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-29T08:06:21.636Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/pindexis.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}},"created_at":"2015-07-12T15:32:36.000Z","updated_at":"2025-03-13T18:17:37.000Z","dependencies_parsed_at":"2022-09-17T05:11:04.581Z","dependency_job_id":null,"html_url":"https://github.com/pindexis/qfc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pindexis%2Fqfc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pindexis%2Fqfc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pindexis%2Fqfc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pindexis%2Fqfc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pindexis","download_url":"https://codeload.github.com/pindexis/qfc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312077,"owners_count":20918344,"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":"2024-08-07T23:03:19.662Z","updated_at":"2025-04-05T09:06:44.272Z","avatar_url":"https://github.com/pindexis.png","language":"Python","readme":"# qfc\nQuick Command-line File Completion\n\n![qfc](https://cloud.githubusercontent.com/assets/2557967/8640880/582cb8fe-28ff-11e5-9753-41464dda938e.gif)\n\nqfc is a shell auto-complete alternative which features real-time multi-directories matching: It provides results  while you type against files in the current directory and its sub-directories.\nThis is useful, to avoid the burden of writing the whole path whenever you want to `cd` or `vim` a file, which is frequent especially if you use the terminal as your IDE(The terminal is the best IDE, remember! :-) ).\n\n\n## Features:\n- Real-time matching: Results are displayed while you type.\n- Multi-directories \u0026\u0026 Context relevant matching: if you're in a cvs(git,mercurial) managed directory, qfc will matches against your tracked(or new) files only. This is very useful to avoid 10000+ of dependency files cluttering up the results. for unmanaged dirs, qfc looks for unhidden files up to a maximum depth(set to 3).\n- Enhanced Filtering/Sorting of matches.\n- No dependencies.\n\n\n## Requirements\n- python (2.7+ or 3.0+)\n- Bash-4.0+ or Zshell.\n- Linux Or OSX  \nIn OSX, it seems like Bash 3.x is the default shell which is not supported. you have to [update your Bash to 4.0+](http://apple.stackexchange.com/a/24635) or [change your shell to zshell](http://stackoverflow.com/a/1822126/1117720).\n\n\n## Installation:\n- `git clone https://github.com/pindexis/qfc $HOME/.qfc`\n- Add the following line to your *rc (.zshrc, .bashrc, .bash_profile in OSX):  \n    `[[ -s \"$HOME/.qfc/bin/qfc.sh\" ]] \u0026\u0026 source \"$HOME/.qfc/bin/qfc.sh\"`\n\n\n## Usage:\n- `Ctrl-f` : complete the word under cursor using qfc\n- while qfc is open:\n    - `TAB`: Append the selected match to the current path.\n    - `ENTER`: Append the selected match to the current path and returns the result.\n    - `Ctrl-f`: Returns the current path.\n    - `Arrow keys`: Navigation between files.\n\n\n## Even more Productivity:\nIf you're using zshell or Bash 4.3+, You can combine qfc with commands you frequently use to get one key-stroke experience. For example, I have the following lines in my .zshrc:\n```\nqfc_quick_command 'cd' '\\C-b' 'cd $0'\nqfc_quick_command 'vim' '\\C-p' 'vim $0'\n```\nThis allows me to switch directories by just pressing Ctrl-b(or editing a file by pressing Ctrl-p).\n![qfc](https://cloud.githubusercontent.com/assets/2557967/8654777/78534320-2984-11e5-8684-f18709af0748.gif)\n\n`qfc_quick_command` expects an `id`, `a shortcut`, and a command with `$0` placeholder(which will be replaced with the completion path).  \nIt's recommended to choose a 2-5 length letters only `id`(else you may encounter issues).  \nAlso, be careful with what keyboard shortcuts to choose(mapping some keys can prevent the terminal from working correctly).\n","funding_links":[],"categories":["Python","Command-Line Productivity"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpindexis%2Fqfc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpindexis%2Fqfc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpindexis%2Fqfc/lists"}