縦書きモードのカーソル移動方向

  1. エディターなので、早速カーソルコントロールのマクロを作成してショートカットに登録しました。
    ところが、縦書きモードに切り替えて使おうとすると、カーソルを動かす方向も90度回転してしまい、例えば右方向に動かす Document.Selection.CharRight(false, 1) だと縦書きモードでは右方向(前行方向)ではなく、下方向に動くことになります。しかし、動かす方向を脳内変換してというのはとてもややこしくて大変です。
    それで、縦書きモードにしても同じようにカーソルが上下左右横書きモードと同じ方向に動くようにしたいのです。縦書きモードかどうかを判定するために縦書きモードであることを返してくる関数などがあれば、マクロで処理できるかも知れないとも思いつつ(当方にそんなマクロが組めるかどうかは分かりませんが)。縦書きモードになっていることを調べる方法はあるでしょうか?
    なお、カーソルキーを使う場合は、縦書きモードでもカーソルキーの矢印の方向にカーソルが動きます。
    調べたところ、sukemaruさんのマクロ紹介がありましたが、Mery2.7.6以降では使えませんとなってるし、当方にはこれほど複雑なマクロを使いこなすのは無理です。
    以上、よろしくお願いします。

     |  QQ  |  返信
  2. 縦書きモードかどうかは QueryStatusByID を使って取得できると思います。

    if ((editor.QueryStatusByID(2238) & 2) !== 0)
    	alert("縦書き");
    else
    	alert("横書き");

    2238 は [縦書き] コマンドの ID です。

    【参考】QueryStatusByID メソッド - MeryWiki
    https://www.haijin-boys.com/wiki/マクロリファレンス:3:Editor_オブジェクト#QueryStatusByID_メソッド

    QueryStatusByID はコマンドの有効・無効を取得する関数ですがチェック状態も取得できます。

    ちなみに、QueryStatusByID の戻り値は、

    ・0 (無効、チェック無し)
    ・1 (有効、チェック無し)
    ・2 (無効、チェック有り)
    ・3 (有効、チェック有り)

    となっているので 2 でマスクしてやればチェック状態のみを取得できます。

     |  Kuro  |  返信
  3. 早速のご丁寧な返信、有難うございます。
    できました。快適に動くようになりました。

    ついでと言っては何ですが、要望と言うかアドバイスと言うか、
    当方、まだMeryを使い始めて一ヶ月にもならないのですが、XPの頃から使っていたエディターは、もう大分前にバージョンアップもサポートも無くなり、さすがにそろそろ新しいソフトにするしか無いかとエディターソフトを探していました。
    そしてMeryを見かけて試しにインストール(ver3.3.7)してみました。欲しかったアウトライン機能があるようだし、縦書き機能もあるし、なかなか便利で良くできているなと思い、これを使って見ることにしました。しかし、使ってみると、

    アウトライン機能については、メインページの主な機能のところに記入されているので、知りました。
    しかし、ヘルプを見てみても説明が見当たりません。そのメニューがどこにあるのか探し回った挙げ句、ツールのプラグイン機能のところにあるのを見つけてチェックを入れて見ました。しかしながら、自分は行頭ピリオドのアウトラインを使っているのですが、アウトラインを選択してみても白いボックスが表示されるだけで何も表示されません。オプションでは行頭ピリオド形式の表示も選択できるように見えるけれど、どうすればそれを選択できるのか、わかりません。色々やってみてようやくオプションのタイプをカスタムにすれば良いことを発見しました。
    ヘルプ等に、もう少し詳しい説明があればと思いました。

    表示メニューの中にZenモードと言うのを発見しました。何や、これは?
    これもオンラインヘルプ等を見ても説明がなく、エエイやってみるかと選択してみたところ、全画面表示のような画面になって、メニューも消えてしまい、どうしたら元に戻れるのか分からず焦りました。ESCを押してみたりしたが結局分からず、Meryを強制終了して戻りました。
    Zenモードもとても面白い機能で、今は特に縦書きで多用させていただいております。そして、これも主な機能だとおもうので、メインページの主な機能のところに説明を入れれば良いのにと思いました。ただしマウスカーソルを上端に持っていけばメニューが出るという戻り方も一言必ず記入しておいて欲しいなと思いました。

    以上、また分からないところがあれば、よろしくお願いします。

     |  QQ  |  返信
  4. ご返信ありがとうございます。うまくいったようで安心しました。

    ヘルプにつきましては、現在ベータ版につき、機能の追加・変更・削除が発生するため更新していませんが、正式版のリリースに向けて整備中です。

    でも、趣味で余暇時間を利用して作っているものですから、いつになるか分かりませんしサポートも期待しないでくださいね。

    アウトライン機能についてはググると便利な使い方を紹介してくれているサイトがたくさんヒットすると思うので、私なんかが解説するよりよっぽど有益だと思います。

    Zen モードなどベータ版で追加された機能の使い方についてはブログ記事で紹介しているので、ぜひ読んでみてくださいね。(Zen モードの終わらせ方とかも書いてます)

    【参考】Zen モードについて
    https://www.haijin-boys.com/software/mery/mery-2-6-15

    マニュアルとしてまとめて読みたいというお気持ちはわかりますが、なにぶんブログサイトの広告費で開発・運営している Mery なものですから、機能追加の都度、ブログ記事にて使い方を紹介しているので読んでみていただけると嬉しいです。

     |  Kuro  |  返信
  5. ご返信いただき有難うございます。

    ヘルプは単に更新されていなかったのですね。どおりで実際のメニューの項目にあるものが記載されていなかったり、メニューに無いものが記載されていたり、変なヘルプだなと思っていました。次回更新される際は、ついでに更新日とかどのバージョン番号用か等を記入しておくのが良いかも知れませんね。

    Zenモードからの戻り方は、結局ググって、あるダウンロードサイトの紹介記事で知りました。
    ブログ記事とは〝開発者のブログ〟のことですね。確かに色々と詳細な説明や面白い使い方の紹介記事とかありますね。気がついてなかったです、済みません。

    この種フリーソフトは余暇時間に作っておられるということは理解しているつもりです。なので、すぐに対応してもらえるとは思っていません。縦書きカーソル移動方向の質問についても翌日に返信が帰ってきてて驚いたぐらいです。
    お忙しい中、有用なソフトを御提供いただき大変感謝申し上げます。当方が欲しい機能は大体揃っているように思われ、ほとんど完成の域にあると思っています。
    今後さらにどのように発展して行くのか楽しみにしております。

     |  QQ  |  返信
スポンサーリンク