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のテキストファイルを右移動用、左移動用を作って
一回のキーで移動させたい回数コピペする。
サクラエディタのマクロでループさせる方法見つけられなかったので
詳しい人記事とか書いてくれないかなぁ。
あとはショートカットキーにマクロを割り当てて
ショートカット一回で100文字分移動とか1000文字分移動できるようにする。
その他、サクラエディタのマクロは以下のページ内にあるリンク先にマクロ構文があります。
http://sakura-editor.sourceforge.net/htmlhelp/HLP000107.html
マクロは今回の様に何回も同じキーボードショートカットを繰り返すときに力を発揮します。
例えば特定の単語の頭に余分に1文字ついていて、コピー&ペーストをしてたから
何箇所も修正する必要がある場合、
マクロの記録でF3, Deleteの操作を記録、
後は1回だけ特定の単語を検索してからマクロ実行を繰り返せばokです。
如何に繰り返しの操作になる所を見つけるかがポイントです。
あとがき
私がVimのtips記事を書くときに
サクラエディタでの操作方法を併記することがあるのは
「特定のエディタの機能を覚える」ではなく、
「テキストエディタの機能を覚える」ことを意識しているからです。
新しいエディタを使う必要がある時役に立ちます。