xcatline - 拡張行連結

CONTENTS

最新版

概要

アーカイブ付属の解説テキスト: xcatline.txt 直

このマクロxcatline.macは、viのJコマンドを少し賢くしたようなマクロです。 カレント行と次行とを1つの行に連結しますが、このときホワイトスペース(半角スペース、全角スペース、タブ)によるインデントや、引用符などを考慮した、少し賢い連結をします。

このマクロは、ちまたによくある整形もののマクロのように、連結対象とすべき行範囲を自分では判断しません。純粋にカレント行と次行を連結させるだけです。

具体例

基本使用例

下図を見てください。カーソルは「あああああ」の行にあります。

ここでこのマクロを実行すると、下図のようになります。

実行1回目

さらに連続して実行していくと、次々に行が連結されていきます。

実行2回目

実行3回目

実行4回目

前述したように、このマクロは連結対象とすべき行範囲を自分では判断しません。上記の例で言うと、マクロを実行したときに2行目の「あああああ」から6行目の「おおおおお」までを一撃で連結して欲しい場合は、他のマクロを使用することをお勧めします。面目ありません。

その他の例

説明するより例を示した方が早いので、下記の例を見てください。いずれもカーソルは上の行にあるものとして、このマクロを実行するとどうなるかを示します。

  例1: 最も簡単な例)
    ┌─────────────────────────────┐
    |ああああああああああ                                      |
    |いいいいいいいいいい                                      |
    └─────────────────────────────┘
            ↓ マクロ実行後
    ┌─────────────────────────────┐
    |ああああああああああいいいいいいいいいい                  |
    |                                                          |
    └─────────────────────────────┘

  例2: 行の前にホワイトスペースがある場合)
    ┌─────────────────────────────┐
    |    ああああああああああ                                  |
    |    いいいいいいいいいい                                  |
    └─────────────────────────────┘
            ↓ マクロ実行後
    ┌─────────────────────────────┐
    |    ああああああああああいいいいいいいいいい              |
    |                                                          |
    └─────────────────────────────┘

  例3: 行の前に引用符(およびホワイトスペース)がある場合)
    ┌─────────────────────────────┐
    | # ああああああああああ                                   |
    | # いいいいいいいいいい                                   |
    └─────────────────────────────┘
            ↓ マクロ実行後
    ┌─────────────────────────────┐
    | # ああああああああああいいいいいいいいいい               |
    |                                                          |
    └─────────────────────────────┘

    ┌─────────────────────────────┐
    | > ああああああああああ                                   |
    | > いいいいいいいいいい                                   |
    └─────────────────────────────┘
            ↓ マクロ実行後
    ┌─────────────────────────────┐
    | > ああああああああああいいいいいいいいいい               |
    |                                                          |
    └─────────────────────────────┘

    ┌─────────────────────────────┐
    |    >>> ああああああああああ                              |
    |    >>> いいいいいいいいいい                              |
    └─────────────────────────────┘
            ↓ マクロ実行後
    ┌─────────────────────────────┐
    |    >>> ああああああああああいいいいいいいいいい          |
    |                                                          |
    └─────────────────────────────┘

    ┌─────────────────────────────┐
    | // ああああああああああ                                  |
    | // いいいいいいいいいい                                  |
    └─────────────────────────────┘
            ↓ マクロ実行後
    ┌─────────────────────────────┐
    | // ああああああああああいいいいいいいいいい              |
    |                                                          |
    └─────────────────────────────┘

  例4: 箇条書きの場合)
    ┌─────────────────────────────┐
    | ・ああああああああああ                                   |
    |   いいいいいいいいいい                                   |
    └─────────────────────────────┘
            ↓ マクロ実行後
    ┌─────────────────────────────┐
    | ・ああああああああああいいいいいいいいいい               |
    |                                                          |
    └─────────────────────────────┘
      箇条書きは「・」の他には、下記の記号を対象としています。
      ※、●、◆、★、▲、▼、■、○、◎、◇、☆、△、▽、□

制限事項

  1. 範囲選択に対応していません。現在カーソルがある行と次行の連結しかできず、範囲を選択して一気に連結することができません。
  2. 複数の引用符が重なる場合に対応していません。すなわち、下図の例:
    // # ああああああああああ
    // # いいいいいいいいいい
    	
    に対して、
    // # ああああああああああいいいいいいいいいい
    
    	
    とはできず、
    // # ああああああああああ# いいいいいいいいいい
    
    	
    となってしまいます。もしこのマクロを使う人がいて、要望をいただくようなら対応したいと思います(パターンをちょっと工夫する程度でできると思うのですが、面倒なので放ってあります)。
  3. 番号付き箇条書きの仕様に悩んでいます。
    (1) ああああああああああ
    (1) いいいいいいいいいい
    	
    に対して実行すると、
    (1) ああああああああああいいいいいいいいいい
    
    	
    となりますが、
    (1) ああああああああああ
    (2) いいいいいいいいいい
        
    に対して実行した場合は、下図のようになります。
    (1) ああああああああああ(2)いいいいいいいいいい
    
    	
    これで良いのか悪いのか、私自身が悩んでいます。
  4. 箇条書きの対象記号を(ソースを直接修正することでしか)カスタマイズできません。

更新履歴

Ver.1.01 2007/10/10
linehead.defの更新に伴い、kincludeをかけ直し。

Ver.1.00 2006/3/31
初版。