github のフレイバア?

今回も今回とて.
ここに綴ろうとしている事は,正直,たいした内容のものでもなかったりします.

わかってます(笑

でも,びっくりしたのでメモっておきたいと思います. 何か,こう...オツムの退行 & おバカの進行に,それが起こっている自分自身がついていけていないことに愕然とします.

そして,これが本当に怖いのですが,これから書こうとすることは,
実は以前にも書いてました.

ゾッとした.

もう本当に自分が,いや自分を?,信じられません(笑

はてなブログのシンタックスハイライト,markdown で書いているんだったら

コードを記述しているパラグラフの前後を,バッククォート backquote の x3 で囲んでやる.
なお最初の方には,つまり括弧で言うと "開き" 側には書いている言語のキーワードを書く.

Markdownモードにおいて、コードブロックのシンタックスハイライトに対応しました。
「```perl」のように言語を指定できます。
記法については「GitHub Flavored Markdown - Introduction」の「Syntax highlighting」セクションをご覧ください。

これまで何気なく,```{lannguage}...``` な書き方はしていたのですが,扱う言語のヴァリエーションを把握したかったのが切っ掛けで,
このお作法自身がどこのものかが気になり始めた.

markdown ではないはずだよな.
markdown はインラインならば `{code}`,ブロックならば tab x1 なりブランク x4 のインデントのはず.

はてなの記法だっけ? ... やーなんか違ったような.

ということで,上述引用に.
"markdown" でも "はてな" でもない.

答えは,GitHub Flavored Markdown
"Differences from traditional Markdown" って言っていから,
自分の知っていた markdown は traditional*1 の方で,
何気なく使っていたコードのシンタックスハイライトの書き方は,github が traditional markdown をもとに独自の仕様を加えた "GitHub Flavored Markdown" (GFM) でのもの.

で,はてなブログでも,これを採用した,ということなのね.

そして,```{lannguage}...``` な書き方は,traditional な markdown では使えない.

今まで,この点,アヤフヤなまま使っていた orz

どるびーさらうんどか

ということで,色々と腑に落ちたところで.

囲む,とゆーことは?
そう,surround.vim

コードのパラグラフを選択し,surround.vim の力を借りて ```{lannguage}...``` で囲むよう,
vimrc に以下のようにしてます.

" ********** surround.vim
let g:surround_{char2nr('c')} = "``` \1language\1 \r ```"

こちら surround.vim をカスタマイズする - ursmの日記 を参考にさせていただいてます.感謝. 基本ここを読めば十分.

一応.
[c] キーを宛てたのは,"code" の "c" のつもりです.

vipSc -> {language} -> [enter]

コードを書いたパラグラフにカーソル置いて vipSc と打鍵. するとコマンドラインに,上述ケースだと 'language' と出てくるかと,ここに言語のキーワードを指定し,[enter].

そうすると,
パラグラフがしかるべきスタイルで囲まれる,と.

分解しておこうかな,やっぱ,念のため.(嘲

vip はヴィジュアルモードでのオブジェクトに対する操作.
パラグラフごとビシッと一発で選択してくれます.

詳細は :h visual-operators とか :h v_ip をば.
他ですと,勿論 先述のこちら はじめ,おなじみ コチラ とか こちら を参考にさせていただいてます.

あ,パラグラフ,ってのは空行で判断してます,が複数あったらアレですね.

そして Sc
こちらは surround.vim でのお話.
先ほどの vimrc,\1language\1 と言うところ.
こうやって surround.vim に対し,ユーザからの入力をパラメータとして受け取る ことができるので,それを利用して言語のキーワードを指定できるようにしてます.

んなところでしょうか.
テキストオブジェクト,その便利さを認識すると,ほんと驚かされます.

ということで,
はい,おしまい.

*1:"standard" っても言ってますね.