diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/blog/2022-05-29-man/man.md | 15 | ||||
| -rw-r--r-- | src/blog/2022-09-05-man-col/man-col.md | 74 | ||||
| -rw-r--r-- | src/blog/blog.md | 1 | ||||
| -rw-r--r-- | src/blog/feed.xml | 7 |
4 files changed, 97 insertions, 0 deletions
diff --git a/src/blog/2022-05-29-man/man.md b/src/blog/2022-05-29-man/man.md index bfb1a26..26cad6b 100644 --- a/src/blog/2022-05-29-man/man.md +++ b/src/blog/2022-05-29-man/man.md | |||
| @@ -246,3 +246,18 @@ here, such as `less(1)`, or dive into more exciting stuff with something | |||
| 246 | like `sh(1)`. | 246 | like `sh(1)`. |
| 247 | 247 | ||
| 248 | Stay tuned! | 248 | Stay tuned! |
| 249 | |||
| 250 | ## Update 2022-09-05 | ||
| 251 | |||
| 252 | In [a more recent blog post](../2022-09-05-man-col) I comment on a part | ||
| 253 | of the manual that I skipped, although it is actually useful for writing | ||
| 254 | these blog entries: | ||
| 255 | |||
| 256 | ``` | ||
| 257 | When using -c, most terminal devices are unable to show the | ||
| 258 | markup. To print the output of man to the terminal with markup | ||
| 259 | but without using a pager, pipe it to ul(1). To remove the | ||
| 260 | markup, pipe the output to col(1) -b instead. | ||
| 261 | ``` | ||
| 262 | |||
| 263 | If you are curious, check the [new post](../2022-09-05-man-col)! | ||
diff --git a/src/blog/2022-09-05-man-col/man-col.md b/src/blog/2022-09-05-man-col/man-col.md new file mode 100644 index 0000000..e5f1b44 --- /dev/null +++ b/src/blog/2022-09-05-man-col/man-col.md | |||
| @@ -0,0 +1,74 @@ | |||
| 1 | # Pipe man into col -b to get rid of ^H | ||
| 2 | |||
| 3 | The man page reading club is returning soon. In the meantime, | ||
| 4 | here is a short post on a trick related to `man` itself that I skipped in the | ||
| 5 | [first post of the series](../2022-05-29-man). | ||
| 6 | |||
| 7 | ## Vi rocks | ||
| 8 | |||
| 9 | A cool feature of vi-like editors is that you can insert the | ||
| 10 | output a command in the file you are editing, without doing any awkard | ||
| 11 | copy-pasting. You can do this with the `r` ex command: | ||
| 12 | |||
| 13 | ``` | ||
| 14 | :r !date | ||
| 15 | ``` | ||
| 16 | |||
| 17 | Inserts the output of the `date` command on a new line. You can also | ||
| 18 | use the `!` (bang) command, combined with a motion, to feed the | ||
| 19 | text between the cursor and the target of the motion to a command and | ||
| 20 | replace it with the output of the command itself. For example | ||
| 21 | I often use `!}fmt` to format the next paragraph when I am writing | ||
| 22 | an email. | ||
| 23 | |||
| 24 | ## Man pages and ANSI escape codes | ||
| 25 | |||
| 26 | Unfortunately, if you try to use this feature to include parts of a man page, | ||
| 27 | you might not like the result. Typing `:r !man man | head` gives | ||
| 28 | |||
| 29 | ``` | ||
| 30 | MAN(1) General Commands Manual MAN(1) | ||
| 31 | |||
| 32 | N^HNA^HAM^HME^HE | ||
| 33 | m^Hma^Han^Hn - display manual pages | ||
| 34 | |||
| 35 | S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS | ||
| 36 | m^Hma^Han^Hn [-^H-a^Hac^Hcf^Hfh^Hhk^Hkl^Hlw^Hw] [-^H-C^HC _^Hf_^Hi_^Hl_^He] [-^H-M^HM _^Hp_^Ha_^Ht_^Hh] [-^H-m^Hm _^Hp_^Ha_^Ht_^Hh] [-^H-S^HS _^Hs_^Hu_^Hb_^Hs_^He_^Hc_^Ht_^Hi_^Ho_^Hn] | ||
| 37 | [[-^H-s^Hs] _^Hs_^He_^Hc_^Ht_^Hi_^Ho_^Hn] _^Hn_^Ha_^Hm_^He _^H._^H._^H. | ||
| 38 | |||
| 39 | D^HDE^HES^HSC^HCR^HRI^HIP^HPT^HTI^HIO^HON^HN | ||
| 40 | ``` | ||
| 41 | |||
| 42 | Not cool! This happens because manual pages are not made of plain text. They | ||
| 43 | contain *ANSI escape codes* to provide some basic formatting, like | ||
| 44 | bold text and whatnot (you might or might not see them, depending on the | ||
| 45 | capabilities of your terminal emulator). This is a complex topic and I don't | ||
| 46 | know much about it. Check out the excellent post | ||
| 47 | [Anatomy of a Terminal Emulator](https://poor.dev/terminal-anatomy) | ||
| 48 | by [poor.dev](https://poor.dev) if you want to learn more. | ||
| 49 | |||
| 50 | Long story short, the workaround is included in the man page itself: | ||
| 51 | |||
| 52 | ``` | ||
| 53 | When using -c, most terminal devices are unable to show the | ||
| 54 | markup. To print the output of man to the terminal with markup | ||
| 55 | but without using a pager, pipe it to ul(1). To remove the | ||
| 56 | markup, pipe the output to col(1) -b instead. | ||
| 57 | ``` | ||
| 58 | |||
| 59 | Indeed, using `:r !man man | col -b | head` gives: | ||
| 60 | |||
| 61 | ``` | ||
| 62 | MAN(1) General Commands Manual MAN(1) | ||
| 63 | |||
| 64 | NAME | ||
| 65 | man - display manual pages | ||
| 66 | |||
| 67 | SYNOPSIS | ||
| 68 | man [-acfhklw] [-C file] [-M path] [-m path] [-S subsection] | ||
| 69 | [[-s] section] name ... | ||
| 70 | |||
| 71 | DESCRIPTION | ||
| 72 | ``` | ||
| 73 | |||
| 74 | Hooray! | ||
diff --git a/src/blog/blog.md b/src/blog/blog.md index 52673bf..0da77e0 100644 --- a/src/blog/blog.md +++ b/src/blog/blog.md | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | [RSS Feed](feed.xml) | 3 | [RSS Feed](feed.xml) |
| 4 | 4 | ||
| 5 | * 2022-09-05 [Pipe man into col -b to get rid of ^H](2022-09-05-man-col) | ||
| 5 | * 2022-08-14 [How I update my website](2022-08-14-website) | 6 | * 2022-08-14 [How I update my website](2022-08-14-website) |
| 6 | * 2022-07-07 [The man page reading club: shutdown(8)](2022-07-07-shutdown) | 7 | * 2022-07-07 [The man page reading club: shutdown(8)](2022-07-07-shutdown) |
| 7 | * 2022-06-12 [The UNIX shell as an IDE: look stuff up with sed](2022-06-12-shell-ide-sed) | 8 | * 2022-06-12 [The UNIX shell as an IDE: look stuff up with sed](2022-06-12-shell-ide-sed) |
diff --git a/src/blog/feed.xml b/src/blog/feed.xml index 2e3382e..9596fb7 100644 --- a/src/blog/feed.xml +++ b/src/blog/feed.xml | |||
| @@ -9,6 +9,13 @@ Thoughts about software, computers and whatever I feel like sharing | |||
| 9 | </description> | 9 | </description> |
| 10 | 10 | ||
| 11 | <item> | 11 | <item> |
| 12 | <title>Pipe man into col -b to get rid of ^H</title> | ||
| 13 | <link>https://sebastiano.tronto.net/blog/2022-09-05-man-col</link> | ||
| 14 | <description>Pipe man into col -b to get rid of ^H</description> | ||
| 15 | <pubDate>2022-09-05</pubDate> | ||
| 16 | </item> | ||
| 17 | |||
| 18 | <item> | ||
| 12 | <title>How I update my website</title> | 19 | <title>How I update my website</title> |
| 13 | <link>https://sebastiano.tronto.net/blog/2022-08-14-website</link> | 20 | <link>https://sebastiano.tronto.net/blog/2022-08-14-website</link> |
| 14 | <description>How I update my website</description> | 21 | <description>How I update my website</description> |
