ぽっかめろん

ゲームとかプログラミングとか

quickrunを使ってmarkdown形式のファイルをHTMLで出力する

割とmarkdown使ってHTMLファイル作成する機会が増えたのでマッピングしようと思ったらしばらくかかったので備忘録。

マッピングしよう

autocmd Filetype markdown nnoremap <Space>qf :QuickRun >file -mode=n<CR>

……
名前指定どうするんだろう?

ヘルプファイル

オプションは名前と値の組で、
-オプション名 値
で指定します。

マッピングしてみる

autocmd Filetype markdown nnoremap <Space>qf :QuickRun >file -mode=n -name=<CR>

……
ファイル名どうやって指定するんだろう?

テクニックバイブル

Vimエディタのコマンドラインで%を指定すると、コマンド実行時に%が可憐とファイルのパスに置き換わります。この機能と、ファイル名修飾子と呼ばれる機能を利用すると、編集中のファイルのファイルパスから、拡張子抜きのファイル名や、ファイルのフルパス、拡張子、などの情報を抜き出せます。

マッピングリトライ

autocmd Filetype markdown nnoremap <Space>qf :QuickRun >file -mode=n -name=%:p:t:r<CR>
quickrun: outputter/file: Specify the file.

✌('ω')。o(????????????)

ヘルプを探す

コマンドラインオプションにモジュール名を指定する際に、オプションの値を指定する
ことができます。オプションはモジュール名の後に任意の記号を続け、その記号でオプ
ションを区切ります。各オプションは name=value の形式で指定します。

リトライ

autocmd Filetype markdown nnoremap <Space>qf :QuickRun >file:name=%:p:t:r -mode=n<CR>
Output to "p" (6502 bytes)

oh......

<expr>で展開すればよくね!?

autocmd Filetype markdown nnoremap <expr> <Space>qf ":QuickRun >file:" . expand('%:p:t:r') . '.html -mode=n<CR>'

成功!ただ見た目がかっこわるい……

これを書いているとthinca氏からリプライが

うまく行きました。さすがvimmerは格が違った

結論

autocmd Filetype markdown nnoremap <Space>qf  :QuickRun >file!%{expand('%:p:t:r')}.html -mode=n<CR>

ところで

この環境を整えてやろうと思ってたことが全然進んでないことは気にしない