|
あかねさん今日は、ひろです。
> 秀丸のタグジャンプは指定ファイルの指定行の位置を
> 開くという機能だと思いますが、位置の指定方法を
> 行ではなくラベルにすることはできないのでしょうか?
結局どういった形式を、その指定法の書式にするかでが問題になると思い
ます。
> この機能と、file://d:/temp/1.txt といったURLの
という URI の形式で良いのなら、比較的簡単なマクロですみます。また
file://d:/temp/1.txt#MARK の様なファイル内ので指定場所がないなら
ば、「...を秀丸で開く」を使うだけですみます。
なお file://d:/temp/1.txt#MARK の形式を含め URI や選択範囲、ファイ
ル名に対応したマクロは以下のとおりです。
//---------------- Open URI with Hidemaru -----------------------------
call GetURI;
call GetFileName $$return;
if( !existfile( $$return ) ){
call strstr2 $$return, "#";
if( ##return == -1 ){
message "Not exist file";
endmacro;
}
call OpenMarkedFile $$return, ##return;
}
else openfile $$return;
endmacro;
OpenMarkedFile:
$$file = leftstr( $$1, ##2 );
$$mark = rightstr( $$1, strlen( $$1 ) - ##2 - 1 );
if( !existfile( $$file ) ){
message "Not exist file";
endmacro;
}
openfile $$file;
##x = x;
##y = y;
gofiletop;
$$search = searchbuffer;
##search = searchoption;
searchdown2 $$mark, word, casesense;
if( !result ){
message "Not find mark";
moveto ##x, ##y;
}
else escape;
setsearch $$search, ##search;
return;
GetURI:
if( selecting ){
$$uri = gettext( seltopx, seltopy, selendx, selendy);
}
else{
##x = x;
##y = y;
while( colorcode&0x400 )left;
if( !(##x == x && ##y == y) )right;
##topx = x;
##topy = y;
moveto ##x, ##y;
while( colorcode&0x400 )right;
##endx = x;
##endy = y;
moveto ##x, ##y;
$$uri = gettext( ##topx, ##topy, ##endx, ##endy);
if( $$uri == "" ){
message "Not URI";
endmacro;
}
}
return $$uri;
GetFileName:
##i = strstr( $$1, "://" );
if( ##i != -1 )$$1 = rightstr( $$1, strlen( $$1 ) - ##i - 3 );
return $$1;
strstr2:
##RC = -1;
##Size = strlen($$2);
while( 1 ){
##Pos = strstr( $$1, $$2 );
if( ##Pos == -1 )break;
##RC = ##RC + ##Pos + ##Size;
$$1 = rightstr( $$1, strlen( $$1 ) - ##Pos - ##Size );
}
return ##RC;
|
|