Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
ラベル 整形 の投稿を表示しています。 すべての投稿を表示
ラベル 整形 の投稿を表示しています。 すべての投稿を表示

2014年1月7日火曜日

表計算の式を Excel Formula Beautifier で整形する

1. 表計算の式を整形したい

Google スプレッドシートLibreOffice Calc, Excel で入力した「式」を整形したい。

SnapCrab_No-0640例えば、セルの値が「2で割り切れるか?」確認するために、

  • 2で割り切れる場合は「◯」
  • 割り切れない場合は「✕」

を対象のセルの隣に表示したいとする。

対象のセルが A1 の場合、以下のような式となる。

=if(mod(A1,2) = 0,"◯","?")

この程度なら、一行で書かれていても式の内容を理解できる。しかし、式が複雑になるに連れ、一目で把握することは難しい。

式を整形してから、意味を考えなくてはならない。

 

2. 式を整形する

Online Excel Formula Beautifier は、表計算の式を整形してくれる。

先ほどの式を上記サイトの左上のフィールドに貼り付けると、下に整形された式が表示される。

SnapCrab_No-0692

この程度の短い式でも、整形された方が読みやすい。

=if(
    mod(
        A1,
        2
    ) = 0,
    "◯",
    "?"
)

LebreOffice Calc, Excel では、整形された結果をブラウザ上でコピーしてからセルに貼り付けても、問題なく計算が行われる。

しかし、Google スプレッドシートでは、一度、整形結果をエディタに貼り付けてから、それをコピーして貼り付けないとエラーが表示された。

SnapCrab_No-0693

2012年9月28日金曜日

DrRacket でコードの整形

1. メニューから選択する

Emacs でコードの整形をする場合、C-M-\ を入力し、indent-region を呼び出す。

DrRacket でコードの整形をするには、

  1. インデントを整えたい式を範囲選択しておく。
  2. メニューより、Racket > Reindent を選択する。

表示されている全てのコードを整形するには、Reindent の下にある Reindent All を選ぶ。

 

2. キーボードで操作する

キーボードから、メニューの Racket > Reindent を選択するには、他のアプリケーションと同様に、

  • Alt, r, r

のキーを順に押せば良い。

もっと簡単に Reindent するには、整形するコードを選択した後、

  • Tab キー

を押す。

3.1 Menus によると、

Reindent : Indents the selected text according to the standard Racket formatting conventions. (Pressing the Tab key has the same effect.)

 

3. 移動、選択、整形の操作手順

コードを整形するには、式を選択する必要がる。S 式を選択するには、

3.3 Keyboard Shortcuts 

M-C-SPACE : select forward S-expression

 

ところで、DrRacket を Emacs のキーバインディングで利用している。また、Escape キーの入力は C-[ で代用している。

例えば、次のような式を入力した後、結果を display 手続きに渡したくなったとする。

(* 3
   (+ 1 2)
   (- 10 5))

キャレットが式に末尾にある場合、

  1. 先頭へ移動: Ctrl キーを押しながら [, b
  2. S 式の選択: Ctrl キーを押しながら [, Space
  3. 括弧で括る: Ctrl キーを押しながら [ 。次に ( を入力する。
  4. display と入力。

M-( : wrap selection in parentheses

このとき、キャレットは display の右横にある。

(display (* 3
   (+ 1 2)
   (- 10 5)))

全体を整形するために、

  1. 外側の括弧へ移動: Ctrl キーを押しながら [, u
  2. S 式の選択: Ctrl キーを押しながら [, Space
  3. 整形: Tab
  • M-C-u : move up out of an S-expression

  • M-C-d : move down into a nested S-expression

  •  

    4. その他

    メニューより、Edit > Keybindings > Show Active Keybindings を選択すると、現在有効なキーバインディングの一覧が表示される。

    S 式を選択する (forward-select-sexp) キーとして、上記以外に、

    • esc;c:s:f

    とあるが、キーを入力しても、forward-select-word

    • esc;s:f

    と同じ動作になってしまう。

    6.16 keymap% によると、

    For a special keyword, the capitalization does not matter. However, capitalization is important for single-letter keynames. Furthermore, single-letter ASCII keynames are treated specially: A and s:a are both treated as s:A. However, when c: is included on Windows without m:, or when d: is included on Mac OS X, then ASCII letters are not upcased with s:, since the upcasing behavior of the Shift key is cancelled by Control without Alt (on Windows) or by Command (on Mac OS X).

    その他、タブの入力に関する動作を以下に挙げておく。

    Index

    tabify
    tabify-all
    tabify-on-return?
    tabify-selection