Home > sakuraeditor

sakuraeditor Archive

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Comments (Close): -
  • TrackBack (Close): -

サクラエディタのマクロ - ブックマークレットを簡易的に作成する

ブックマークレットを作成するといっても簡単なことしかやっていない。選択した文字列(選択していない時はすべての文字列)の空白、タブ、改行、コメントを削除して、「javascript:(function(){ })();」で囲うだけだ。

マクロの内容

  • 空白を削除。行の前後の空白(半角)を削除しているだけ。
  • タブを削除。空白と同じように行の前後のタブを削除。
  • コメントの「//」を削除。行の前にある場合だけ、コメントのある行を削除。行の途中にあるコメントは削除しないから、セミコロンがないとその後に続くコードが実行されなくなる。「/* */」は削除しない。
  • すべての改行(\n,\r)を削除。何の考慮もせず削除するから、セミコロンを付けてないと、エラーが出るかと。
  • スクリプトの先頭に「javascript:」がある時は、何もしない。スクリプトの先頭に「(function(){」があり、最後に「})();」がある時は、「javascript:」だけを付ける。その他の場合は、スクリプトの前に「javascript:(function(){」を、後ろに「})();」を付け足す。

ダウンロード

sakura_convertbookmarklet_easy.js

サクラエディタで日本語文字が含まれていないフォントの設定

フォントはめったに変えることがなく、忘れてしまうのでメモ。

サクラエディタのフォントの設定メニューで日本語文字が含まれていないフォントに変えると、文字化けする。

日本語文字が含まれていないフォントを設定する時は、サクラエディタを終了して、他のテキストエディタでサクラエディタの設定ファイル(sakura.ini)の [Font]の「lfFaceName=フォント名(例 lfFaceName=Consolas)」を書きかえればいい。

それだけのことなんだけど、一度フォントの設定メニューでフォントを変えて文字化けすると、サクラエディタの設定ファイル(sakura.ini)でフォントを設定しなおしても、文字化けを直すことはできない。

文字化けした場合は、サクラエディタを起動して、メニューのフォント設定で日本語を使えるフォントを選び、文字化けを直しておいてから終了させる。それから、サクラエディタの設定ファイル(sakura.ini)の「lfFaceName=」を書きかえることで、フォントを設定できる。

サクラエディタのマクロ - ファイルをリネーム

マクロの内容は、名前を付けて保存でファイルを作成しておいて、元のファイルを削除している。

マクロを実行するとダイアログが出るので、ファイル名を入力する。何も入力しないか、キャンセルすると、何も起こらない。

Dim filepath, filename, word, fso
Set fso = CreateObject("Scripting.FileSystemObject")

filepath = GetFilename
filename = ExpandParameter("$f")
word = InputBox("新しいファイル名を入力してください", , filename)
If word <> "" AND word <> filename Then
    FileSaveAs word, 99, 0
    fso.DeleteFile(filepath)
End If

2行目 Set fso = CreateObject("Scripting.FileSystemObject")の CreateObjectは VBScriptの関数です。サクラエディタマクロでは、WScript.Shell オブジェクトなどはいきなりは使えませんと、いうことです。

普通のスクリプトと同じように WScript.CreateObject("Scripting.FileSystemObject")などとやろうものなら、オブジェクトがないぞ :'WScript'と、何度も怒られる。

サクラエディタのマクロ - dlタグ挿入

dl,dt,ddタグ挿入のサクラエディタマクロをJScriptで作ってみた。

dl,dt,ddタグ挿入のスクリプト

//<dl>
//  <dt></dt>
//  <dd></dd>
//</dl>

var listArray, strInsert ;
var list = "" ;
var strSelect = "" ;
var arrayNumber = 0;
var listNumber = 2;    // 文字列を選択してない時のdt要素,dl要素の数

if ( Editor.IsTextSelected > 0 ) {
    strSelect = Editor.GetSelectedString;
    Editor.Delete;
    strSelect = strSelect.replace( /(\r\n|\r|\n)/g,  "\r\n" );
    listArray = strSelect.split("\r\n");
    for (var i = 0; i < listArray.length; i ++) {
        if ( listArray[i] != "") {
            arrayNumber ++;
            if ( arrayNumber % 2 ) {
                list = list + "  <dt>" + listArray[i] + "</dt>\r\n";
            } else {
                list = list + "  <dd>" + listArray[i] + "</dd>\r\n";
            }
        }
    }
    if ( arrayNumber % 2 ) {
        list = list + "  <dd></dd>\r\n";
    }
}
else {
    for (var i=0; i < listNumber; i++) {
        list = list + "  <dt></dt>\r\n";
        list = list + "  <dd></dd>\r\n";
    }
}

strInsert = "<dl>\r\n" + list + "</dl>\r\n";
Editor.InsText( strInsert );

マクロの動作

文字列を選択している時、空の行は削除する。一行ずつ(複数行単位で囲むことはできない)、dtタグからはじまり、dt,ddタグを交互に選択した文字列を囲む。最後の行がdtタグで終わっているときは、中身のないddタグを追加する。
<dl>
  <dt>(選択した文字列)</dt>
  <dd>(選択した文字列)</dd>
  <dt>(選択した文字列)</dt>
  <dd>(選択した文字列)</dd>
</dl>
選択されていない時は、空のリストを作成する。
<dl>
  <dt></dt>
  <dd></dd>
  <dt></dt>
  <dd></dd>
</dl>

リストの数を変えたいときは、10行目のlistNumberの数を変える。dt,dt一組の数になる。

var listNumber = 2;

ダウンロード

dl,dt,ddタグ挿入のスクリプト

サクラエディタのマクロ - h1タグ挿入

h1タグ挿入のサクラエディタマクロをJScriptで作ってみた。

Karafuto Blog サクラエディタのマクロ - pタグ挿入 (1)とほとんど同じです。

違うのは、最後に改行を加えないようにしたのと、選択した文字列の最後の文字が改行の時は終了タグを改行の前に入れるようにした。

h1タグ挿入のJScript

//<h4></h4>

var moveX, strSelect, staTag, endTag, lastChar, strShortSelect;

strSelect = "";
staTag = "<h4>";
endTag = staTag.replace( "<", "</");
moveX = staTag.length;


if ( Editor.IsTextSelected > 0 ) {
    strSelect = Editor.GetSelectedString;
}

//現在位置を移動履歴に登録
Editor.MoveHistSet ( );

//タグの挿入
strSelect = strSelect.replace( /(\r\n|\n\r|\r|\n)/g,  "\r\n" );
lastChar = strSelect.charAt( strSelect.length - 1);
strShortSelect = strSelect.substring( 0, strSelect.length - 2)
if ( lastChar == "\n" ) {
    Editor.InsText( staTag + strShortSelect + endTag + "\r\n");
} else {
    Editor.InsText( staTag + strSelect + endTag);
    Editor.Right();
}

//選択した文字列がない場合、カーソル移動
if ( strSelect == "" ) {
    Editor.MoveHistPrev ( );
    for ( i=0; i < moveX; i++ ) {
        Editor.Right();
    }
}

マクロの動作

選択した文字列がある場合はh1タグで囲い、カーソルは次の行に移る。
<h1>(選択した文字列)</h1>
(カーソルの位置)
選択した文字列がない場合はh1タグを挿入して、カーソルが開始タグと終了タグの間に来る。
<h1>(カーソルの位置)</h1>

ダウンロード

h1タグ挿入のサクラエディタマクロ

Home > sakuraeditor

おまかせリンク(R)
全記事表示リンク
Search
Meta
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。