Vimかサクラエディタで固定長フォーマットを相手にする

( ´_ゝ`)ノシ

yoshitiaです。

VimConf 2017 は例年と違うようなのでちょっと期待してます。

 

固定長フォーマットって? 

以下のリンク参照で。

http://www.ipc.tohoku-gakuin.ac.jp/simlab/comlec/comop/prog05b.html

 

面倒な点

・行の左端から何番目かが重要

・改行コード無しの1行の場合、pagedownキー・pageupキーは無力。

 

Vimの場合

大体基本機能でok。

・フォーマット頭部分にカーソル移動

    固定長フォーマットは大体頭部分にどのフォーマットか判別するための値があるので

   それを指定して検索。

    nまたはNで前後の検索結果にカーソル移動。

 

・指定の桁数に移動

例: フォーマット開始桁から101桁目の場合。

Vimのノーマルモードのコマンドは使うコマンドの前に数字を入力すると

数字の回数だけ操作を繰り返す。

100hと入力するとカーソルが100桁分移動する。

サクラエディタの場合

・フォーマット頭部分にカーソル移動

    検索でやる。

    一度検索したらF3キーまたはShift+F3キーで

    前後の検索結果に移動できるので便利

 

・指定の桁数に移動

例: フォーマット開始桁から101桁目の場合。

基本のショートカットにはなさげなので

 マクロを用意する。※サクラエディタにはマクロ機能があります。

今回はカーソル移動をまとまった回数移動できるマクロを使います。

固定長フォーマットのファイルでカーソル移動するには

左右にカーソルキー100回分を1回のキー操作で移動できたら便利。(1000回分もありかも)

S_Right(0); // カーソル右移動
S_Left(0); // カーソル左移動

拡張子macのテキストファイルを右移動用、左移動用を作って

一回のキーで移動させたい回数コピペする。

サクラエディタのマクロでループさせる方法見つけられなかったので

詳しい人記事とか書いてくれないかなぁ。

nagoya-neko.com

あとはショートカットキーにマクロを割り当てて

ショートカット一回で100文字分移動とか1000文字分移動できるようにする。

その他、サクラエディタのマクロは以下のページ内にあるリンク先にマクロ構文があります。

http://sakura-editor.sourceforge.net/htmlhelp/HLP000107.html

マクロは今回の様に何回も同じキーボードショートカットを繰り返すときに力を発揮します。

例えば特定の単語の頭に余分に1文字ついていて、コピー&ペーストをしてたから

何箇所も修正する必要がある場合、

マクロの記録でF3, Deleteの操作を記録、

後は1回だけ特定の単語を検索してからマクロ実行を繰り返せばokです。

如何に繰り返しの操作になる所を見つけるかがポイントです。

あとがき

私がVimのtips記事を書くときに

サクラエディタでの操作方法を併記することがあるのは

「特定のエディタの機能を覚える」ではなく、

テキストエディタの機能を覚える」ことを意識しているからです。

新しいエディタを使う必要がある時役に立ちます。