17

emacs にこの形式のテーブルがありますorg-mode。3 列目と 4 列目の数値をフォーマットして、小数点を縦に並べる方法はありますか?

余談ですが、結果のファイルを bashsortコマンドを使用して並べ替えたところ、|各行の先頭にある余分な部分が列 1 としてカウントされていることがわかりました。たとえば、OUTPUTこのコンテキストでは見出しの列は 4 番です。

| CALL  | CHAN   |   OUTPUT |    INPUT | QTHR   | LOCATION       | NGR        | REGION   | CTCSS | KEEPER | Internet |
| GB3AH | RB11   |  433.275 |  434.875 | JO02KP | East Dereham   | TF94300990 | EAST ENG |  94.8 | G8PON  |          |
| GB3AS | RV48   |    145.6 |      145 | IO84LS | Wigton,Cumbria | NY33724123 | N.ENG    |    77 | G4KFN  |          |
| GB3AG | RV58   |  145.725 |  145.125 | IO86ON | Forfar         | NO48904170 | SCOT     |  94.8 | GM1CMF | Echolink |
| GB3AY | RV52   |   145.65 |   145.05 | IO75OR | Dalry          | NS26605190 | SCOT     | 103.5 | GM3YKE |          |
| GB3BA | RB01   |  433.025 |  434.625 | IO87SC | Banchory       | NJ72150255 | SCOT     |    67 | GM1XEA |          |
| GB3BD | RB06   |   433.15 |   434.75 | IO92RA | Ampthill       | TL01303860 | SE ENG   |    77 | G8MGP  |          |
| GB3AA | 23cm   |     1297 |     1291 | IO81RO | Alveston,Avon  | ST62608820 | SW ENG   | 118.8 | G4CJZ  |          |
| GB3AI | RV55   | 145.6875 | 145.0875 | IO91QQ | Amersham       | SU97089767 | SW ENG   |    77 | G0RDI  | Echolink |
| GB3AL | RV59   | 145.7375 | 145.1375 | IO91QP | Amersham       | SU95709550 | SW ENG   |    77 | G0RDI  |          |
| GB3AM | R50-13 |    50.84 |    51.34 | IO91QP | Amersham       | SU95709550 | SW ENG   |    77 | G0RDI  |          |
4

1 に答える 1

26

手順は次のとおりです。

  1. これは、物事をもう少し視覚的にするためのオプションです。 C-c }行番号と列番号のオーバーレイをオンにします。同じ組み合わせでオフになります。これらはバッファ内の変更ではなく、単なるツールチップであることに注意してください。C-c -列番号を表示するには、最初の行で実行することをお勧めします。
  2. カーソルをOUTPUT列に移動し、 で新しい列を挿入しますC-S-right
  3. カーソルが新しい列にあるはずです。と入力し$4=$3;%0.3fます。つまり、3 番目の列を 4 番目の列にコピーし、精度 3 の浮動小数点としてフォーマットします。Return キーを押すと、1 つのセルだけが入力されます。 を押すC-u C-c *と、すべてのセルが再計算されます。C-c C-cこれは、カーソルを#+TBLFM:行に置いてで行うこともできます。
  4. 必要に応じて古い列をC-M-left削除し、以下の表の数式を削除できます。

アップデート:

@phils からの入力のおかげで、別の方法を次に示します。

  1. カーソルを列 3 の任意の数字に移動します (例: ) 433.275
  2. を押すC-c =と、カーソルがミニバッファに移動します。
  3. 入力$0;%0.3fしてリターンを押します。ここで$0は現在の列を参照しますが、$3列 3 の場合も機能します。
  4. C-u C-c *ドキュメント内の任意の場所を押すか、カーソルを#+TBLFM:行に移動して を押しC-c C-cます。
  5. 列 4 に対して同じプロセスを繰り返します。
于 2013-09-23T19:13:09.683 に答える