{"id":15732988,"url":"https://github.com/airblade/vim-interdental","last_synced_at":"2025-07-19T22:40:20.306Z","repository":{"id":191179219,"uuid":"680208673","full_name":"airblade/vim-interdental","owner":"airblade","description":"Indent guides that span empty lines","archived":false,"fork":false,"pushed_at":"2023-10-05T13:14:04.000Z","size":671,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T07:39:40.042Z","etag":null,"topics":["indentation","vim","vim-plugin"],"latest_commit_sha":null,"homepage":"","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/airblade.png","metadata":{"files":{"readme":"README.markdown","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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-18T15:53:41.000Z","updated_at":"2024-08-11T04:03:13.000Z","dependencies_parsed_at":"2024-10-24T23:24:19.140Z","dependency_job_id":"a9815c31-78f1-421a-8e79-0d6c7b173db1","html_url":"https://github.com/airblade/vim-interdental","commit_stats":null,"previous_names":["airblade/vim-interdental"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/airblade/vim-interdental","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airblade%2Fvim-interdental","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airblade%2Fvim-interdental/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airblade%2Fvim-interdental/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airblade%2Fvim-interdental/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/airblade","download_url":"https://codeload.github.com/airblade/vim-interdental/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airblade%2Fvim-interdental/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260751696,"owners_count":23057196,"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":["indentation","vim","vim-plugin"],"created_at":"2024-10-04T00:40:31.043Z","updated_at":"2025-06-19T12:34:42.838Z","avatar_url":"https://github.com/airblade.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vim-interdental\n\nIndent guides that span empty lines.\n\n\n### Quick start\n\n1. Set `g:leadmultispace` to your indent guide characters – without escaping spaces.  For example:\n\n    ```vim\n    let g:leadmultispace = '  ⋮ · ⋮ · ⋮ · ⋮ · ⋮ · ⋮ · ⋮ · ⋮'\n    ```\n\n    (Don't set `'listchars+=leadmultispace:...'`.  The plugin manages it for you.)\n\n2. Set up a map to toggle your indent guides.  For example:\n\n    ```vim\n    nmap \u003cLeader\u003eti \u003cPlug\u003e(InterdentalToggle)\n    ```\n\n3. Set the filetypes for which you want indent guides by default.  For example:\n\n    ```vim\n    autocmd FileType ruby,html call interdental#toggle(1)\n    ```\n\n\n### Description\n\nThe built-in option `'lcs-leadmultispace'` is perfect for indent guides.  It is one or more characters that are shown cyclically when a line has leading spaces.\n\nFor example, I like:\n\n- indent guides every two characters;\n- alternating two different characters to help distinguish the guides;\n- not having a guide in column 1.\n\nThis is how to set it up.  Note that spaces have to be escaped.\n\n```vim\nsetlocal listchars+=leadmultispace:\\ \\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\n```\n\nAnd here is what it looks like:\n\n![Intermittent indent guides](./before.png?raw=true)\n\nThe problem is that empty lines don't have any leading spaces, so they don't get indent guides.\n\nThis plugin uses virtual text to display the indent guides on empty lines.\n\n```diff\n- setlocal listchars+=leadmultispace:\\ \\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\\ ·\\ ⋮\n+ let g:leadmultispace = '  ⋮ · ⋮ · ⋮ · ⋮ · ⋮ · ⋮ · ⋮ · ⋮'\n```\n\nBehold the unbroken indent guides!\n\n![Continuous indent guides](./after.png?raw=true)\n\n\n### Intellectual property\n\nCopyright Andrew Stewart, AirBlade Software Ltd.  Released under the MIT licence.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairblade%2Fvim-interdental","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fairblade%2Fvim-interdental","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairblade%2Fvim-interdental/lists"}