{"id":18109338,"url":"https://github.com/jessepav/vim-boxdraw","last_synced_at":"2025-03-29T15:30:49.282Z","repository":{"id":236118552,"uuid":"791948722","full_name":"jessepav/vim-boxdraw","owner":"jessepav","description":"Vim 9 plugin to draw boxes, tables, and lines","archived":false,"fork":false,"pushed_at":"2024-05-20T21:39:42.000Z","size":39,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T23:39:05.755Z","etag":null,"topics":["vim","vim-plugin","vim9","vim9-plugin","vim9script"],"latest_commit_sha":null,"homepage":"https://github.com/jessepav/vim-boxdraw","language":"Vim Script","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/jessepav.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-25T17:21:35.000Z","updated_at":"2025-03-18T21:17:16.000Z","dependencies_parsed_at":"2024-05-01T06:30:09.657Z","dependency_job_id":"6a17f97d-fd81-4842-852f-ce3786cbe6d1","html_url":"https://github.com/jessepav/vim-boxdraw","commit_stats":null,"previous_names":["jessepav/vim-boxdraw"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessepav%2Fvim-boxdraw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessepav%2Fvim-boxdraw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessepav%2Fvim-boxdraw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessepav%2Fvim-boxdraw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jessepav","download_url":"https://codeload.github.com/jessepav/vim-boxdraw/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246204533,"owners_count":20740330,"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":["vim","vim-plugin","vim9","vim9-plugin","vim9script"],"created_at":"2024-11-01T00:01:42.524Z","updated_at":"2025-03-29T15:30:48.949Z","avatar_url":"https://github.com/jessepav.png","language":"Vim Script","funding_links":[],"categories":["Vim Script","Miscellaneous"],"sub_categories":[],"readme":"# BoxDraw\n\nDraw pretty boxes in Vim\n\n\u003e This README was converted by hand from the\n\u003e [vimdoc](https://github.com/jessepav/vim-boxdraw/blob/master/doc/boxdraw.txt)\n\u003e included with the plugin. Please see that file for the definitive\n\u003e documentation.\n\n## INSTALL\n\nThis plugin is written in `vim9script` and requires Vim v9.1.0120 or higher.\n\n* [`vim-plug`](https://github.com/junegunn/vim-plug)\n\n  `Plug 'jessepav/vim-boxdraw'`\n\n* Manual installation:\n\n  Copy files from the `plugin`, `autoload`, and `doc` directories to your `.vim`\n  directory.\n\n## OVERVIEW\n\nBoxDraw provides a command to draw boxes using ASCII or Unicode box-drawing\ncharacters. It can also draw horizontal, vertical, and diagonal lines, and\nselect existing boxes.\n\n*(We use images in the examples below because many fonts won't display all the\nbox types correctly.)*\n\n### Box Styles\n\n![box types image](https://raw.githubusercontent.com/jessepav/vim-boxdraw/master/images/boxtypes.png)\n\n### Diagonal Lines\n\n![diagonal lines image](https://raw.githubusercontent.com/jessepav/vim-boxdraw/master/images/diagonals.png)\n\n### Line Joining\n\nWhen you draw a \"box\" that is just a vertical or horizontal line, we\nattempt to join the ends intelligently by examining the surrounding\ncharacters:\n\n![line joining image](https://raw.githubusercontent.com/jessepav/vim-boxdraw/master/images/line-joins.png)\n\n## USAGE\n\nOnce the plugin is loaded, it provides one command:\n\n```\n  :BoxDraw [box-type or command] [force] [empty]\n```\n\nYou make a selection in block-wise visual mode (setting `'virtualedit'` to\n`block` is very useful in this regard), and then invoke `:BoxDraw` with the\ndesired arguments. Or you can use the [`boxdraw-mappings`](#mappings) below.\n\n|  Argument   |   Description  |\n| ----------- | -------------- |\n|  box-type / command |  Either one of the named box types above (`single`, `rounded`, `double`, `ascii`, `clear`), or `IBID`, to use the same box type as last time, or a special command (`SELECTBOX`, `DIAGONAL_BACKWARD`, `DIAGONAL_FORWARD`), each of which will be described below. |\n|    force    |  Use `true` or `1` to disable intelligent box joining, and just draw the type of box indicated, overwriting any existing box characters encountered. |\n|    empty    |  Use `true` or `1` to replace the interior of the box with spaces, thus \"emptying\" it. |\n\n### Selection\n\nIf the command provided to `BoxDraw` is `SELECTBOX`, we examine the character\nunder the cursor, and attempt to visually select the box that the character\nbelongs to. This works for stand-alone boxes, or the enclosing box of a\ntable, but not for table cells. It also works better for box-types other than\n`ascii`, since they have different characters for each of the four corners.\n\n### Diagonal Lines\n\nIf the command is `DIAGONAL_FORWARD` or `DIAGONAL_BACKWARD`, we draw a\ndiagonal line starting at the bottom-left (for `FORWARD`) or top-left (for\n`BACKWARD`) corner of the visual selection, and proceed until the line reaches\na selection boundary, horizontal or vertical.\n\n\n## MAPPINGS\n\nIf the global variable `g:boxdraw_skip_mappings` is unset or is `0`, then\nthese mappings will be provided when the plugin is loaded:\n\n```\n  # Not-forced not-emptied boxes\n  vnoremap \u003cLeader\u003ebs \u003cEsc\u003e\u003cCmd\u003eBoxDraw single\u003cCR\u003e\n  vnoremap \u003cLeader\u003ebd \u003cEsc\u003e\u003cCmd\u003eBoxDraw double\u003cCR\u003e\n  vnoremap \u003cLeader\u003ebr \u003cEsc\u003e\u003cCmd\u003eBoxDraw rounded\u003cCR\u003e\n  vnoremap \u003cLeader\u003eba \u003cEsc\u003e\u003cCmd\u003eBoxDraw ascii\u003cCR\u003e\n  vnoremap \u003cLeader\u003ebc \u003cEsc\u003e\u003cCmd\u003eBoxDraw clear\u003cCR\u003e\n  vnoremap \u003cLeader\u003ebb \u003cEsc\u003e\u003cCmd\u003eBoxDraw\u003cCR\u003e\n\n  # Not-forced emptied boxes\n  vnoremap \u003cLeader\u003ebes \u003cEsc\u003e\u003cCmd\u003eBoxDraw single false true\u003cCR\u003e\n  vnoremap \u003cLeader\u003ebed \u003cEsc\u003e\u003cCmd\u003eBoxDraw double false true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eber \u003cEsc\u003e\u003cCmd\u003eBoxDraw rounded false true\u003cCR\u003e\n  vnoremap \u003cLeader\u003ebea \u003cEsc\u003e\u003cCmd\u003eBoxDraw ascii false true\u003cCR\u003e\n  vnoremap \u003cLeader\u003ebec \u003cEsc\u003e\u003cCmd\u003eBoxDraw clear false true\u003cCR\u003e\n\n  # Diagonals (always 'single' style)\n  vnoremap \u003cLeader\u003eb/ \u003cEsc\u003e\u003cCmd\u003eBoxDraw DIAGONAL_FORWARD\u003cCR\u003e\n  vnoremap \u003cLeader\u003eb\\ \u003cEsc\u003e\u003cCmd\u003eBoxDraw DIAGONAL_BACKWARD\u003cCR\u003e\n\n  # Selection\n  vnoremap \u003cLeader\u003ebl \u003cEsc\u003e\u003cCmd\u003eBoxDraw SELECTBOX\u003cCR\u003e\n\n  # Forced not-emptied boxes\n  vnoremap \u003cLeader\u003eBS \u003cEsc\u003e\u003cCmd\u003eBoxDraw single true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBD \u003cEsc\u003e\u003cCmd\u003eBoxDraw double true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBR \u003cEsc\u003e\u003cCmd\u003eBoxDraw rounded true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBA \u003cEsc\u003e\u003cCmd\u003eBoxDraw ascii true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBC \u003cEsc\u003e\u003cCmd\u003eBoxDraw clear true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBB \u003cEsc\u003e\u003cCmd\u003eBoxDraw IBID true\u003cCR\u003e\n\n  # Forced emptied boxes\n  vnoremap \u003cLeader\u003eBES \u003cEsc\u003e\u003cCmd\u003eBoxDraw single true true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBED \u003cEsc\u003e\u003cCmd\u003eBoxDraw double true true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBER \u003cEsc\u003e\u003cCmd\u003eBoxDraw rounded true true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBEA \u003cEsc\u003e\u003cCmd\u003eBoxDraw ascii true true\u003cCR\u003e\n  vnoremap \u003cLeader\u003eBEC \u003cEsc\u003e\u003cCmd\u003eBoxDraw clear true true\u003cCR\u003e\n\n  # Normal mode selection\n  nnoremap \u003cLeader\u003e\u003cLeader\u003ebl \u003cCmd\u003eBoxDraw SELECTBOX\u003cCR\u003e\n\n  # One-key meta shortcuts\n  vnoremap \u003cM-b\u003e \u003cEsc\u003e\u003cCmd\u003eBoxDraw\u003cCR\u003e\n  vnoremap \u003cM-B\u003e \u003cEsc\u003e\u003cCmd\u003eBoxDraw IBID true\u003cCR\u003e\n  vnoremap \u003cM-l\u003e \u003cEsc\u003e\u003cCmd\u003eBoxDraw SELECTBOX\u003cCR\u003e\n  nnoremap \u003cM-l\u003e \u003cCmd\u003eBoxDraw SELECTBOX\u003cCR\u003e\n```\n\n\n## AUTHOR\n\nJesse Pavel\n\njpavel@gmail.com\\\nhttps://github.com/jessepav/vim-boxdraw\n\n## LICENSE\n\nMIT\n\n\u003c!-- vim: set linebreak tw=90 : --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessepav%2Fvim-boxdraw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjessepav%2Fvim-boxdraw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessepav%2Fvim-boxdraw/lists"}