Byword for Mac

nvALTをめぐるタブとソフトタブの混乱

(はてなブログからの移行記事です。正常に表示されていない場合、ご連絡いただけると助かります。)

nvALT

nvALT

  • ElasticThreads and Brett Terpstra
  • 無料(執筆時点)

現在、MacのメモアプリとしてnvALTを利用しています。SimplenoteにもDropboxにも同期できて、Markdownも書けて検索も速くて他のアプリにも渡せるすごいアプリです。

ただし、ものすっごく挙動が怪しい点がいくつかあります。中でもかなりどうしようもないのが、Soft Tabs設定にまつわる問題です。

Soft Tabsとは?

MacでもWindowsでも、テキストエディタ等でタブキーを押すと、タブが入力されインデントされます。しかし、諸々の事情により、タブではなく半角スペースでインデントしたい場合があります。そのために、タブキーで半角スペースを入力する機能のことを、一般にSoft Tabsと言います。

多くの場合、Soft Tabs機能を持つアプリでは、挿入される半角スペースの数を指定できます。たとえばMarkdownリストのネストのためにSoft Tabsを利用する場合、半角スペースの数は4個であるべきです。

nvALTにおけるSoft Tabs問題

しかし、nvALTにおいては、Soft Tabsで挿入される半角スペースの数を指定することができません。まあ、それが2個とか4個で固定なら別にいいのですが、実際やってみると、その時の気分で3個とかになります。本当にいい奴なんだけれど、そこだけは本当に理解できない。

さすがにバグだろうと思ってググってはみたものの、全く情報が出てきませんでした。少なくともうちの環境では、nvALTのSoft Tabsは使い物になりません。

まあ、それならそれで使わなければいいんです。nvALTだけの話なら。

TabsとSoft Tabsの混乱

しかし、同じドキュメントを色んなアプリの間でぐるぐるしていると、逆にSoft Tabsしかできない奴がいたり、Tabsじゃないと不具合出す奴がいたりします。

  • Byword for Mac
    • 強制Soft Tabs
    • 読み込んだドキュメントのタブを半角スペースに強制変換
  • FoldingText
    • Soft Tabs不可
    • 半角スペースでネストされたリストを正常にハイライトできない
  • MarkdownPad2
    • タブでネストされたリストを正常にハイライトできない

nvALTを中心にドキュメントをぐるぐる回していると、ドキュメント内でタブと半角スペースが混じったりします。そうすると、リストの表示がガタガタになって大変困ります。

というか、Bywordに渡した覚えもないドキュメントに半角スペースが入ってたりするので、nvALT自体にそういう不具合があるような気も……。

困ったので、とりあえず全部タブに変換できるように、Automatorでサービスを作ってみました。これについては次回。

追記(2014/07/16)

Simplenoteとの同期をやめたら発生しなくなったので、どうやらSimplenote絡みの問題である模様。

Byword (Mac) まとめ

(はてなブログからの移行記事です。正常に表示されていない場合、ご連絡いただけると助かります。)


ver. 2.2 - ¥1,000( 仕事効率化 )
Metaclassy, Lda.

参考:カッコイイMarkdownエディタの機能にいい感じの呼び名をつけよう - 豆腐メンタルは崩れない

Markdown/テキストエディタとしての行き届いた機能

  • スマートハイライト
  • リスト記述支援
    • オートバレット
      • タブキーインデント
      • ショートカットキーインデント
    • リスト種別変換
  • シンタックス挿入ショートカット
    • 各種インラインシンタックス(bold等)
    • リスト
    • ブロック引用
    • 見出し
    • 強制改行(⌃↩︎)
  • 行の並べ替え
  • HTML変換機能
    • ファイルとして保存
    • クリップボードにHTMLコードをコピー
  • 外部サービス投稿機能
  • MultiMarkdown対応

表示の美しさ、安定性

  • ミニマルで美しいインターフェース
  • フォーカス
    • パラグラフ
    • ライン
  • タイプライタースクロール
    • 日本語でもガタつかない
  • 日本語でも行の高さなどが崩れない

Markdown/テキストエディタとしての高度な機能には実装されていないものも

  • アウトライン・ジャンプ機能なし
  • 正規表現検索/変換不可
  • ライブプレビュー不可
    • プレビューをメモリ上に常時展開しないため動作負荷が低いという長所も
  • テーマ変更不可
    • プレビューテーマも

コードエディタ的な運用が想定されていない

  • 作成時のデフォルト拡張子はtxt/rdfのみ
  • インラインコードおよびコードブロックのシンタックス挿入ショートカットがない
    • コードブロック化できないのはけっこう困る
  • 「他のアプリで開く」的な機能もない

マシな方だが、日本語特有の不具合も

  • たまにシンタックスハイライトが利かない
    • 編集中、一部のシンタックスが薄字にならないことがある
  • ショートカットキーでインラインシンタックス挿入時に、直前の文字/単語が挟まれる
    • テストの直後でCmd+Bすると**テスト**になったり。本来はテスト****になるべき
    • 選択テキストに付与する場合は正常

まとめ

  • とにかく美しい
    • いわゆる「iA Writer風」、見出しとリストのシンタックスがマイナスインデントされるやつ大きらいなので、なくてよかった
    • フォーカスしてなくても、上端と下端がグラデーションするのはきらい
  • リスト作成支援機能は非常に強力
    • リスト種別変換で数字付きリストにしたとき、ちゃんと順番通り番号振ってくれるのが気持ちいい
  • タイプライタースクロールが安定しているだけでホッとする自分がかなしい
  • 変換・投稿系の機能は便利
    • ただし外部サービスへの直接投稿はプレミアム専用
    • はてなブログに投稿できればなあ
  • 日本語圏の基本権は脅かされている
    • インラインシンタックス挿入がまともにできないのはつらい
  • コード的に複雑なドキュメントを書くには向かない
  • 想定されている通りの使い方をする分には極めて快適だが、その範囲が意外と狭い

Byword (Mac) のわかりにくい機能について確認&検証した

(はてなブログからの移行記事です。正常に表示されていない場合、ご連絡いただけると助かります。)


ver. 2.2 - ¥1,000( 仕事効率化 )
Metaclassy, Lda.

Mac標準の機能は除く。

参考:カッコイイMarkdownエディタの機能にいい感じの呼び名をつけよう - 豆腐メンタルは崩れない

メニューバー項目

Edit > Paste / Paste and Match Style

  • ファイルタイプがリッチテキスト(rdf)の場合
    • Paste : スタイルを保持して貼り付け
    • Paste and Match Style : スタイルを無視して、プレーンテキストとして貼り付け
  • ファイルタイプがプレーンテキスト(txt)の場合
    • 同じ結果。そりゃそうだ。なんでグレーアウトしてないんだろう

Edit > Insert > Hard Line Break

  • Markdownの強制改行(半角スペース×2+改行)を挿入
    • リスト行でも有効

Edit > Select > Increase / Decrease Selection at Caret

  • 選択範囲を、なし<単語<行<全文の範囲で拡大/縮小する
    • 日本語でも有効

Edit > Select > Move Up / Down

  • テキスト選択状態により挙動に違いがある。
    • 選択部分なし:カーソル行を移動
    • 選択部分あり:選択部を移動
      • 複数行を選択した場合、その全てを移動する。
        • 複数行を選択し、かつ行の一部を選択しない場合、選択していない部分は取り残される。

Format > Show PopOver

  • ファイルタイプがリッチテキスト(rdf)の場合のみ使用可能
  • テキスト装飾メニューを表示

Format > Underline / Highlight

  • ファイルタイプがリッチテキスト(rdf)の場合のみ使用可能
    • HTMLタグで表現すればプレビューには適用される
      • Underline: <u>~</u> など
      • Highlight: <mark>~</mark> など

Format > Bigger / Smaller

  • 見出しレベルの増減
    • 行頭の#を付けたり消したり
    • 元が見出し行だろうがリスト行だろうが引用行だろうがおかまいなし
    • 複数行を選択して実行すると選択行全てに適用されるが、あまり使いどころはなさそう

Format > Align Left / Center / Justify / Right

  • ファイルタイプがリッチテキスト(rdf)の場合のみ使用可能

Format > List > Insert Bulleted / Numberd List

  • カーソル行または選択行を順序なし/数字付きリストに変更
    • 順序なしリストのシンタックスは *
    • リスト行に対して実行した場合、リストシンタックスとインデントが削除される

Format > List > Convert List

  • カーソルを含むリストブロックを、順序なし/数字付きリストに相互変換する
    • 順序なしリストに変換した場合、シンタックスは * になる
    • テキスト選択中は実行できない
    • 入れ子リストの場合、カーソル行と同じインデントレベルの行のみが対象となる
      • そのため、入れ子リスト全体を変換するには、各インデントレベルで実行する必要がある

スクリーンショット

View > Pragraph Focus / Line Focus

どう違うのかというと……

スクリーンショット

スクリーンショット

ショートカットキー

Opt+Return

  • 通常は改行
  • リスト行で実行した場合のみ、「オートバレットせず改行×2」+「カーソル行+1レベルのインデント」になる
    • 要するに、リストの記述を終了し、空行を空け、一段深くインデントされた通常行を開始する
      • 全く意味がわからないし、使い道も思い付かない
    • リストの記述をワンアクションで終了する方法はこれのみ
      • 普通にReturn連打の方が楽そう

Byword (Mac) の機能について開発元に問い合わせてみた

(はてなブログからの移行記事です。正常に表示されていない場合、ご連絡いただけると助かります。)


ver. 2.2 - ¥1,000( 仕事効率化 )
Metaclassy, Lda.

参考:カッコイイMarkdownエディタの機能にいい感じの呼び名をつけよう - 豆腐メンタルは崩れない

メール原文

1.Is “Automatic Bulleting” possible?

Yes.

2.When I push Tab key other than a head of a line at the time of list making, can you insert Tab or Space in a head of a line?

Yes.

3.At the time of list making, can I add the item in shortcut key? When it is possible, can I add a lower item (nested item)?

If I understood what you mean, yes, Byword does that too.

Hope that helps. Let me know if you need anything else.

意訳

1.オートバレットできます?

おう。

2.タブキーインデントできます?

たりめえよ。

3.ショートカットキーで、リストに小項目追加できます?

そんな細かく説明しなくてもわかるから(笑)Bywordでもできるよ。

お役に立てたかな? まだなんかあったら言ってな。

これ以上疑問があるものか! 満点回答+4つの問い合わせ先で最速返信だよ!
迷いは消えた。買おう!

試してみた

  • オートバレットできる!
  • タブキーインデントもできる!
    • Shift+Tabでアウトデントもできる!
    • ただし、カーソル位置がシンタックスの直後である場合のみ。
    • カーソル位置が異なる場合は、Ctrl+Cmd+矢印キーでインデント/アウトデントしよう。
  • でも、小項目の追加ねーぞゴルァ!
    • 「改行+リストシンタックス追加+インデント」をワンアクションでできるか聞きたかったのだが。
      • TextMate2のMarkdownバンドルでいう、New Subitem(Shift+Enter)のこと。
    • 恐らく、「入れ子になったリストでもオートバレットができる」という回答だったのだろうな……
    • まあ、3はできたらいいな程度の話だからいいけど。