2013年5月19日

VimでMarkdown

最近、メモを書くときはMarkdown形式をよく利用しています。
かなり簡単に書けるのと、ソースそのままでも見やすいので重宝しています。
最近のこのブログの記事も、手元でMarkdownで書いています。

Markdownの書き方や特徴はWikipediaなどを参照してください。
流行っているようなので検索すればたくさん出てきます。

Markdownに対応したエディタも色々出ています。
しかし、テキストで書くならvimを使いたい、それが人情ではないでしょうか。
ちなみに、Markdown対応のエディタでできることは、

  • Syntaxハイライト(構文の色付け)
  • Live preview
  • htmlに変換して出力

などです。(個人的に欲しい機能)

羨ましかったのでvimでもこれらができるように悪戦苦闘しました。
せっかくなので結果を書き残しておきます。

※ 確認は全てKubuntu13.04で行なっています。
WindowsやMacでもパスなどを適宜修正すれば動作すると思います(未確認)。


Syntaxハイライト

vimはデフォルトではMarkdown形式には対応していないので、syntaxを追加します。
NeoBundleなどを使っていれば、.vimrcに下記の一行を追加して:NeoBundleInstallで一発です。

NeoBundle 'tpope/vim-markdown'

これでMarkdown形式のファイルを開けば色づけされるはずです。


アウトライン

Vimでは、ctagsを使うことで関数一覧からジャンプしたりTeXを編集中だったら見出しに飛んだりできます。(いわゆるタグジャンプ)
しかし、デフォルトではMarkdownには対応してません。
なので少し設定の追加が必要です。

私はtagbarというプラグインを使っているのでそれの設定方法を書きます。
やっていることはここをほぼそのままです。

ctagsに設定追加

homeディレクトリにある.ctagsファイルに以下を追加します。
ファイルがない場合は作成します。

--langdef=markdown
--langmap=markdown:.markdown,.mkd,.md
--regex-markdown=/^#[ \t]+(.*)/\. \1/h,heading1/
--regex-markdown=/^##[ \t]+(.*)/\.\. \1/h,heading2/
--regex-markdown=/^###[ \t]+(.*)/\.\.\. \1/h,heading3/
--regex-markdown=/^####[ \t]+(.*)/\.\.\.\. \1/h,heading4/
--regex-markdown=/^#####[ \t]+(.*)/\.\.\.\.\. \1/h,heading5/
--regex-markdown=/^######[ \t]+(.*)/\.\.\.\.\.\. \1/h,heading6/
Tagbarの設定

TagbarはNeoBundleなどで普通にインストールされているものとします。
Windowsでctagsの場所にパスが通っていない時は以下を.vimrcに書いて場所を教えてあげてください。

if has("win32")
    let g:tagbar_ctags_bin = "[ctags.exeまでのパス]"
endif

Markdown用に、以下の設定を.vimrcに追加します。

let g:tagbar_type_markdown = {
    \ 'ctagstype' : 'markdown',
    \ 'kinds' : [
        \ 'h:Headline'
    \ ],
    \ 'sort' : 0,
\ }

これで、見出しに応じたタグジャンプができるはずです。


プレビュー機能

Live previewって必要でしょうか。
正直、私には不要です。
Live previewに対応したエディタも使ってみましたが、むしろ動作がもっさりするような気がして、あまり好きになれませんでした。

とはいえ、手元でも確認しながら書きたいので、"保存時にプレビュー更新"に落ち着きました。
この用途ではmkdpreview-vimという素敵なvim pluginもあったのですが、保存時にちょと引っかかるのが気になったので今回は見送りました。

今は、プレビューにGoogle Chromeの拡張(Markdown Preview Plus)を使っています。
この拡張のいいところは、ファイルが更新されると自動で再変換&再描画してくれるところです。

インストールと使い方

まずは普通に拡張機能としてChromeに追加します。

次に「拡張機能」の画面で、「ファイルのURLへのアクセスを許可する」にチェックを入れます。
これをしないと変換してくれません。
ついでにオプションで「Enable auto-reload」にチェックを入れておきます。
これでmarkdownファイルが更新された時に自動リロードするようになります。
必要があればついでにcssの設定なども。

ここまで設定すれば、markdown形式のファイルをブラウザにD&Dるだけで勝手にhtmlに変換して表示してくれます。
vimで編集中にはD&Dとか面倒なので、簡単にスクリプトを書きました。

command! MkdChrome call MkdChrome()
function! MkdChrome()
    call system('chromium-browser ' . expand('%'))
endfunction

※ Chromium用です。
Google Chromeの場合はchromium-browserの部分をgoogle-chrome-stableなどに書き換えてください。

これを.vimrcに書いておけば、:MkdChromeでブラウザが立ち上がって(すでに起動している場合は新規タブで)編集中のファイルのプレビューが表示されます。
ファイルを編集して上書き保存すればプレビューも更新されます。
ただし、プレビューの更新には若干のタイムラグがあります。


HTML出力

書き終わったらHTMLとして出力したい場合もあるので変換します。

Markdown Preview Plusにも"Export To HTML"というボタンがありますが、なぜか私の環境では動作しませんでした・・・
なので別途変換手段を用意します。
とりあえずpandocを使っています。

pandocはapt-getからインストールできます。
非常に対応形式が豊富です。
とりあえずmarkdownからhtmlへの変換にしか使っていませんが。

インストールさえしておけば、

pandoc [input_file_name] -o [output_file_name] -f markdown -t html

で変換できます。
出力ファイルを指定しなければ変換結果は標準出力にでます。
これも毎回入力するのは面倒なので簡単なスクリプトを書きました。

command! MkdConv call MkdConv()
function! MkdConv()
    call system('pandoc ' . expand('%') . ' -o ' . expand('%:r') . '.html -f markdown -t html')
    let temp_html = expand('%:r') . '.html'
    execute 'sp ++enc=utf8 ' . temp_html
    execute 'normal ggVG"+ygg'
    call system('chromium-browser ' . expand('%'))
endfunction

以上を.vimrcに書いておけば、:MkdConvで以下の動作をします。

  1. 編集中のファイルをhtmlに変換
  2. ウィンドウを分割して変換後のhtmlファイルを表示
  3. htmlのソースを全てクリップボードにコピー
  4. ブラウザ(chromium)で変換後のhtmlを表示

htmlファイルも同じディレクトリに出力されます。
かなり強引な感じですが、一応手元では動作しています。
ブログの投稿ページで貼り付ければ終わりです(手動)。

ファイルのエンコーディングがUTF-8以外の時は、5行目の++enc=utf8を適宜変更してください。
編集中のファイルに合わせるのも簡単にできそうですが、pandocを使うのは当面のつなぎのつもりだったので面倒なのでやっていません。
ちなみにエンコードの判別をvimに任せる(++encオプション無しにする)と、vimがエンコードを決定する前にコピーしてしまって、コピーされた文字列が文字化けしました。


追記

投稿前に確認してたらもっと素敵なプレビューサービスを見つけました。

Markdown ドキュメントをとっても簡単にリアルタイムプレビュー編集できるサービス

設定不要でhtmlもちゃんと出力できます。
リロードがかなり高速です。
拡張やpandocなどのインストールも不要です。
今度からこっちにするかもしれません。
あ、でもcssが固定ですかね?

(でもせっかく書いたので記事は全部公開しておきます・・・)

2013年5月17日

Tortoisehg直った@Kubuntu13.04

先日の記事で書いた通り、Tortoisehgが起動しなかったのですが、別のリポジトリから安定版を入れれば起動はするようです。

バグ報告の記事に書いてありました。
ちょうど前回の記事を書いた時に報告されるというタイミングの悪さ・・・

ppaを追加するので、自己責任でお願いします。


安定版Tortosehgのインストール

端末から下記のコマンドで追加できます。Mercurialとtortoisehgの両方が必要らしいです。

sudo add-apt-repository ppa:tortoisehg-ppa/stable-snapshots
sudo add-apt-repository ppa:mercurial-ppa/stable-snapshots

それぞれ確認メッセージが出るので問題なければEnter。その後、普通にupdateします。

sudo apt-get update

すでにMercurialとTortoisehgがインストールされていれば、upgradeすれば安定版にアップデートされるはずです。

sudo apt-get upgrade

この時点でまだインストールしていなかった場合は普通にインストールしてください。正常にupgrade (またはinstall) されれば、thgで起動するはずです。

試しに使ってみた感じでは正常に動作しているようでした。

2013年5月4日

オーディオ機器(その5) ヘッドホン

Sennheiser HD595

ヘッドホンはSennheiser HD595を使っています。

すでに購入してから5年以上経ちますが、問題なく利用できています。とはいえイヤーパッドはさすがにヘタったので、一度交換しました。簡単に購入できて、値段も3,000円くらいでした。交換も簡単でした。今は後継のHD598が出ていますね。見た目以外は何が変わっているのでしょうか。

遮音性・遮音性

開放型なので遮音性はほとんどありませんし音は全て漏れます。屋外で使うものではありません。

装着感

全く締め付ける感じはありません。何時間でもつけていられます。メガネをしていても問題ありません。

音の印象

視聴して同じくらいの価格帯で色々比較した時の印象ですと、音は低音から高音までしっかり出て、特に高音が綺麗です。高音と言いますか、ちょうど女性ボーカルくらいの帯域がとても綺麗にでます。低音もしっかり出ていますが、ズンドコ響くような鳴り方とは違います。かと言って締りがないわけでもなく、絶妙なバランスだと思います。たまに迫力のある密閉型のヘッドホンも欲しくなりますが、なんだかんだで非常に気に入っているヘッドホンです。


関連記事

オーディオ機器(その4) D/Aコンバータ

LUXMAN DA-200

DAC+プリアンプ兼ヘッドホンアンプとしてLUXMAN DA-200を使っています。

アンバランス接続でパワーアンプ(Model 102)につないでいます。サイズは大きすぎず小さすぎず、丁度いいです。

入力

デジタル入力はUSBと光と同軸が各1系統あります。使ったことはありませんが、アナログ入力も2系統あります。

PCからの入力はUSBで入れています。OSはWindowsとLinux (Ubuntu, Debian)でつないだことがありますが、ロックに失敗したことはありません。ドライバーを別途インストールする必要もありませんでした。USB入力は96kHzまで対応です。

出力

出力はバランスとアンバランス各1系統です。アンバランスだけがボリューム固定/可変の切り替えに対応しています。このボリュームはヘッドホン出力と兼用です。ヘッドホンを接続してもミュートはされません。バランス接続は常に固定出力です。

普段の使い方は、前述したように102にアンバランス接続してプリアンプ代わり、かつヘッドホンアンプとしても使っています。この使い方だと、やはりミュートは欲しいですね。ヘッドホンアンプとして使う時は102をスタンバイにして、逆にスピーカーから出すときはヘッドホンを外しています。なんかこの使い方を続けているとヘッドホン端子がいつか壊れそうで・・・まぁ間に延長ケーブルでも入れてそれを挿しっぱなしにしておけばいいんですが。

ボリュームつまみがそれほど大きくないので、小音量時の微調整は難しいです。このあたりはリモコンがあるといいですね。

音の印象

同じ価格帯のDACとは比較していませんが、いい音だと思います(適当)。といいますか、機能が多いので一部の機能だけを比較するのが面倒困難です。同価格帯くらいのDAC付きのプリメインアンプのヘッドホン出力よりは良い音だと思います。

LUXMAN製品ですが、いわゆるラックストーンと言われるようなクセはあまりないと思います(正直ラックストーンがどんなものかはよくわかっていません)。全体的に色付けは控えめで音をそのまま出しているのではないかと。かと言って冷たい音というわけではありません。全体的にバランスよく聴きやすい楽しい感じです。

一言でまとめますと、音も機能も気に入ってます(笑)。

リモコンとミュートもあると嬉しいです。


関連記事

オーディオ機器(その3) パワーアンプ

Jeff Rowland MODEL102

パワーアンプにはJeff Rowland MODEL102を使っています。
(画像とリンク先は102S)

これのいいところは、出力は100Wと大きいにも関わらずコンパクトで消費電力も小さいというところでしょうか。使用中もほんのりあたたまるだけです。さすがデジアン(ICEpower)です。

パワーアンプなので、使い方は基本的に電源オンして音を出すだけです。ゲイン切り替えやアッテネータなどもありません。102だとスタンバイのスイッチすらついていません。後継の102Sにはスタンバイスイッチがあるようです。やっぱり要望が多かったんでしょうか。

102にはスイッチはありませんが、背面にミニプラグの差込口がありまして、ここからスタンバイにできます。102Sの取扱説明書(pdf)によると、電気的にopenでOn、ショートでスタンバイとのことです。地味に便利です。私はヘッドホンアンプ兼用のDA-200から出力している都合上、ヘッドホンで聞くときはスピーカーをミュートする必要があります。この時に毎回電源を引っこ抜くのはさすがに面倒です。この端子、非常に重宝しています。(とはいえ多少面倒なのでプリアンプが欲しいです・・・)

音の印象

正直パワーアンプでそんなに変わらないだろ、と信じて試聴なしで買いました。そもそも同じくらいの価格帯だと選択肢もあまりありませんでした。これを選んだ理由としては、後継の102Sが出てお買い得感があったのと、小型なデジアンだったところです。扱いが楽そう、ということに加えて、どうもスピーカー(ELAC 310CE)のウーハーの駆動にパワーが必要そうに感じていたので、デジアンなら十分駆動できるだろうと期待して。最後の決め手はブランド(Jeff Rowland)です。小さくてもデジタルでも一番安くてもJeff Rowlandには違いありません。きっと精神的にもいい音に聞こえるに違いありません。少なくとも気持ち的にはマイナスではありません。

最初に音出ししたときの印象としては期待どおり低音の鳴り方が改善したように記憶しています。高音も綺麗に出ています。他のプリメインと自宅で比べた時はかなり良くなっていた気がしたのですが、比較にある通り、今となっては気のせいだった可能性も大です。


関連記事

オーディオ機器(その2) スピーカー

ELAC 310CE

ELAC 310CE/HBを使っています。

初めて購入した高いオーディオ機器なので思い入れがあります。コンパクトさに惹かれて買いました。音も良いと思います。特に幅は12cmちょっとしかないのでかなり小さいです。一方で奥行きは30cm近くある上に背面バスレフなので、見た目によらず奥行き方向はかなり場所をくいます。音の指向性もかなり高いようで、コンパクトなくせに設置は大変でした。。。

接続は購入時につけてもらったスピーカーケーブルでバイワイヤリングしてます。製品付属のバイワイヤリング用ターミナルは質がいまいちなのか音が悪かったです。

音の印象

※ 以下、個人の感想です。感じ方には個人差があります。そんなにいろいろ聞き比べたわけではないので印象とか理由付けとか間違ってる可能性大です。

音は綺麗です。 購入時に同価格帯のスピーカーと比較した印象では、特に高音が綺麗でした。綺麗すぎて驚きました。女性ボーカルとか非常に綺麗な出方をします。そのせいか、音がよく広がって綺麗に響いていきます。(語彙が少なくて綺麗を連呼してますがなんとなく伝われば。)

一方で、低音は出てはいるのですが高音には負けているかな、という感じです。このあたりはアンプや音量にも依存するのでなんとも言えませんが。特に小さい音量で聞くときは低音に不満が出ると思います。出ないというのとは違うんですが、なんかボンボンする感じなんですよね。いかにも設置の仕方が悪い時の感想のような。試聴した時には気にならなかったんですけどね。

特に低音に関しては、設置状態やリスニングポイントの影響が大きいようです。前述したように指向性が高いスピーカーなのですが、特に低音の指向性が高いようです。奥行きを長くして小さいウーハーで低音を稼いでいるためでしょうか。そんな低音の出し方なので、パワーを食っているのかアンプの影響もありそうです。以前使っていたPioneerのA-A9mk2だと(ツイーターに比べて)ウーハーを駆動するパワーが不足するのか低音が負けているような印象でした。今のアンプ(102)に変えて改善、したような気がします(お値段効果(プラシーボ)の可能性大ですが)。

最近ELACから出たBS403のレビューを見ていたら、低音についてはかなり改善されているようですね。バスレフも底面にあるということで、設置場所の影響も少なそうです。しかもJETも新型ということで、これはかなりの当たりなんじゃないでしょうか。なんかステマっぽくなってますが、正直欲しいです。。。


関連記事