Note: format markdown with vim

This commit is contained in:
2026-05-08 14:34:08 +02:00
parent c3293ec3ac
commit b7493ddbaf
+52
View File
@@ -0,0 +1,52 @@
---
title: Format Markdown Columns in Vim
tags:
- writing
- vim
- markdown
---
Got a wonky markdown table?
```markdown
| Real Time | Game Time |
|:--|:-|
| 1 week | 1 month |
| 3 weeks | 3 months|
| 6 months | 2 years|
| 1 year | 4 years|
```
Vim can fix it without plugins.
Just use this snippet (type `:` to begin inputting a command):
```vim
:vmap <C-t> :!tr -s ' -' \|column -ts '\|' -o '\|'<Enter>j:s/ /-/g<Enter>k
```
Highlight the whole thing with `vap` then press `Control + t`.
Instantly, it is aligned:
```markdown
| Real Time | Game Time |
|:----------|:----------|
| 1 week | 1 month |
| 3 weeks | 3 months |
| 6 months | 2 years |
| 1 year | 4 years |
```
**NB:** This method has problems with centre-aligned columns (using `:---:`).
## Vim Run Commands
Put this in your `~/.vimrc` to make the mapping permanent:
```vim
vmap <C-t> :!tr -s ' -' \|column -ts '\|' -o '\|'<Enter>j:s/ /-/g<Enter>k
```