Note: format markdown with vim
This commit is contained in:
@@ -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
|
||||||
|
```
|
||||||
|
|
||||||
Reference in New Issue
Block a user