{"id":36212550,"url":"https://github.com/knu/vscode-easy-kill","last_synced_at":"2026-01-11T04:04:19.752Z","repository":{"id":329921020,"uuid":"1120661958","full_name":"knu/vscode-easy-kill","owner":"knu","description":"Copy \u0026 Mark Things Easily in VS Code - a port of easy-kill for Emacs","archived":false,"fork":false,"pushed_at":"2026-01-03T17:42:41.000Z","size":155,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-05T02:57:17.322Z","etag":null,"topics":["copy","select","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=knu.easy-kill","language":"TypeScript","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/knu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"knu"}},"created_at":"2025-12-21T17:25:59.000Z","updated_at":"2026-01-03T17:42:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/knu/vscode-easy-kill","commit_stats":null,"previous_names":["knu/vscode-easy-kill"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/knu/vscode-easy-kill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knu%2Fvscode-easy-kill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knu%2Fvscode-easy-kill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knu%2Fvscode-easy-kill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knu%2Fvscode-easy-kill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knu","download_url":"https://codeload.github.com/knu/vscode-easy-kill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knu%2Fvscode-easy-kill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28280426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T03:48:11.750Z","status":"ssl_error","status_checked_at":"2026-01-11T03:48:02.765Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["copy","select","vscode-extension"],"created_at":"2026-01-11T04:04:19.577Z","updated_at":"2026-01-11T04:04:19.740Z","avatar_url":"https://github.com/knu.png","language":"TypeScript","funding_links":["https://github.com/sponsors/knu"],"categories":[],"sub_categories":[],"readme":"# Easy Kill\n\nSelect \u0026 Copy Things Easily in VS Code - a port of [easy-kill](https://github.com/leoliu/easy-kill) for Emacs.\n\n## Install\n\n- Visual Studio Marketplace: https://marketplace.visualstudio.com/items?itemName=knu.easy-kill.  Official Microsoft marketplace listing for VS Code.\n- Open VSX: https://open-vsx.org/extension/knu/easy-kill.  Alternative registry used by VSCodium and other forks.\n\n## Features\n\n- **Drop-in replacement for standard copy** (\u003ckbd\u003eCmd\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e / \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e) - works with existing selections or triggers intelligent selection when no text is selected\n- **Quick copying/selecting** with intelligent selection\n- **30+ selection types**: subword, word, line, sentence, paragraph, sexp, defun, function, block, string, parentheses, brackets, curlies (with/without delimiters), buffer, filename, URL, email, character search, and more\n- **Interactive expansion/shrinking** of selections\n- **Duplicate selections** quickly before or after the current selection\n- **Vim-friendly character search** with f/t-style selection (forward/backward, to/up-to)\n\n## Usage\n\n### Commands\n\n**Selection Commands:**\n\n- **Easy Kill: Copy** (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e / \u003ckbd\u003eCmd\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e) - Copy text at point with intelligent selection. If text is already selected, performs standard copy.\n- **Easy Kill: Select** (\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003e2\u003c/kbd\u003e) - Select text at point\n\n**Movement Commands:**\n\n- **Easy Kill: Forward Subword** (\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e→\u003c/kbd\u003e / \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e→\u003c/kbd\u003e) - Move forward by subword (camelCase/snake_case aware)\n- **Easy Kill: Backward Subword** (\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e←\u003c/kbd\u003e / \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e←\u003c/kbd\u003e) - Move backward by subword\n- **Easy Kill: Forward Word** (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e→\u003c/kbd\u003e / \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003e→\u003c/kbd\u003e) - Move forward by word\n- **Easy Kill: Backward Word** (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e←\u003c/kbd\u003e / \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003e←\u003c/kbd\u003e) - Move backward by word\n- **Easy Kill: Forward Sentence** - Move forward by sentence\n- **Easy Kill: Backward Sentence** - Move backward by sentence\n\nNote: Movement commands support selection when invoked with shift key.\n\n**Duplicate Commands:**\n\n- **Easy Kill: Duplicate After** - Insert a copy after the selection\n- **Easy Kill: Duplicate Before** - Insert a copy before the selection\n\nThese commands duplicate the current selection, or if nothing is selected, the first matching object type from `easyKill.objectTypeOrderForDuplicate` (default: line).  The original text remains selected, entering Select mode so you can press \u003ckbd\u003ey\u003c/kbd\u003e repeatedly to create more copies.\n\n### Interactive Selection\n\nAfter triggering a command, you can interactively adjust the selection:\n\n- **Confirm** (\u003ckbd\u003eEnter\u003c/kbd\u003e) - Confirm selection and exit\n- **Cancel** (\u003ckbd\u003eEscape\u003c/kbd\u003e/\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eG\u003c/kbd\u003e) - Cancel and restore cursor position\n- **Expand** (\u003ckbd\u003e+\u003c/kbd\u003e/\u003ckbd\u003e=\u003c/kbd\u003e) - Expand selection by 1\n- **Shrink** (\u003ckbd\u003e-\u003c/kbd\u003e) - Shrink selection by 1\n- **Cycle** (\u003ckbd\u003eSpace\u003c/kbd\u003e) - Cycle through selection types\n- **Duplicate After** (\u003ckbd\u003ey\u003c/kbd\u003e) - Insert a copy after the selection\n- **Add to Count** (\u003ckbd\u003e1\u003c/kbd\u003e-\u003ckbd\u003e9\u003c/kbd\u003e) - Add N to current count (e.g., pressing \u003ckbd\u003e4\u003c/kbd\u003e when count is 1 expands to 5 instances; pressing \u003ckbd\u003e4\u003c/kbd\u003e when count is -1 expands to 3 instances)\n- **Reset** (\u003ckbd\u003e0\u003c/kbd\u003e) - Reset to initial size (count = 1)\n- **Change Type** (letter keys) - Switch to specific selection type (see Selection Types below)\n\nAll key bindings above (except Cancel) are customizable via the `easyKill.keyBindings` setting.  To customize Cancel (\u003ckbd\u003eEscape\u003c/kbd\u003e/\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eG\u003c/kbd\u003e), use VS Code's Keyboard Shortcuts settings for the `easyKill.cancel` command.\n\n### Selection Types\n\nAvailable selection types (default key bindings shown in parentheses, customizable via settings):\n\n**Text Objects:**\n\n- **Subword** (\u003ckbd\u003ew\u003c/kbd\u003e) - camelCase/snake_case aware word part\n- **Word** (\u003ckbd\u003eW\u003c/kbd\u003e/\u003ckbd\u003es\u003c/kbd\u003e) - \"word\" (symbol in Emacs / WORD in Vim)\n- **Line** (\u003ckbd\u003el\u003c/kbd\u003e) - Current line with newline\n- **Sentence** (\u003ckbd\u003e.\u003c/kbd\u003e) - Sentence ending with punctuation\n- **Paragraph** (\u003ckbd\u003ep\u003c/kbd\u003e) - Text between blank lines\n\n**Code Structures:**\n\n- **Sexp** (\u003ckbd\u003ee\u003c/kbd\u003e) - S-expression or balanced expression\n- **Defun** (\u003ckbd\u003ed\u003c/kbd\u003e) - Enclosing function/method/class definition\n- **Defun Name** (\u003ckbd\u003eD\u003c/kbd\u003e) - Name of enclosing function only\n- **Function** (\u003ckbd\u003ef\u003c/kbd\u003e) - Alias for defun\n- **Block** (\u003ckbd\u003eb\u003c/kbd\u003e) - Alias for sexp\n\n**Delimited Regions:**\n\n- **String** (\u003ckbd\u003eq\u003c/kbd\u003e) - String at cursor (language-aware)\n- **String Universal** (\u003ckbd\u003eQ\u003c/kbd\u003e) - String with any quote type\n- **Parentheses** (\u003ckbd\u003e(\u003c/kbd\u003e) - Text including parentheses\n- **Parentheses Content** (\u003ckbd\u003e)\u003c/kbd\u003e) - Text inside parentheses\n- **Brackets** (\u003ckbd\u003e[\u003c/kbd\u003e) - Text including brackets\n- **Brackets Content** (\u003ckbd\u003e]\u003c/kbd\u003e) - Text inside brackets\n- **Curlies** (\u003ckbd\u003e{\u003c/kbd\u003e) - Text including braces\n- **Curlies Content** (\u003ckbd\u003e}\u003c/kbd\u003e) - Text inside braces\n\n**Buffer Regions:**\n\n- **Buffer** (\u003ckbd\u003ea\u003c/kbd\u003e) - Entire buffer content\n- **Buffer Before** (\u003ckbd\u003e\u003c\u003c/kbd\u003e) - From buffer start to cursor\n- **Buffer After** (\u003ckbd\u003e\u003e\u003c/kbd\u003e) - From cursor to buffer end\n\n**Special:**\n\n- **Filename** (\u003ckbd\u003e/\u003c/kbd\u003e) - File path at cursor\n- **Buffer File Name** (\u003ckbd\u003en\u003c/kbd\u003e) - Current file's full path\n- **URL** (\u003ckbd\u003eu\u003c/kbd\u003e) - URL at cursor (auto-prefixes protocol)\n- **Email** (\u003ckbd\u003e@\u003c/kbd\u003e) - Email address at cursor\n- **Backward Line Edge** (\u003ckbd\u003e^\u003c/kbd\u003e) - From line start/indent to cursor\n- **Forward Line Edge** (\u003ckbd\u003e$\u003c/kbd\u003e) - From cursor to line end\n\n**Character Search:**\n\n- **To Char Forward** (\u003ckbd\u003ef\u003c/kbd\u003e) - From cursor to character (inclusive)\n- **Up To Char Forward** (\u003ckbd\u003et\u003c/kbd\u003e) - From cursor to before character\n- **To Char Backward** (\u003ckbd\u003eF\u003c/kbd\u003e) - From character to cursor (inclusive)\n- **Up To Char Backward** (\u003ckbd\u003eT\u003c/kbd\u003e) - From after character to cursor\n\n## How It Works\n\n### Copy Mode (\u003ckbd\u003eCmd\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e / \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e)\n\n1. If text is selected, performs standard copy\n2. If no selection, triggers easy-kill (copy) mode:\n   - Extension selects text starting from smallest match (word)\n   - Text is immediately copied to clipboard\n   - Adjust selection using quick pick menu\n   - Clipboard updates as you modify selection\n\n### Select Mode (\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003e2\u003c/kbd\u003e)\n\n1. Trigger the command\n2. Extension selects text starting from smallest match (word)\n3. Adjust selection using quick pick menu\n4. On confirm, text is selected in editor (not copied)\n\n## Inspiration\n\nThis extension is a port of [easy-kill](https://github.com/leoliu/easy-kill) and [easy-kill-extras](https://github.com/knu/easy-kill-extras.el) for Emacs, bringing their intelligent selection and manipulation capabilities to VS Code.\n\n## License\n\nCopyright (c) 2025-2026 Akinori Musha\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Repository\n\nhttps://github.com/knu/vscode-easy-kill\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknu%2Fvscode-easy-kill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknu%2Fvscode-easy-kill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknu%2Fvscode-easy-kill/lists"}