フォーラムの返信を作成しました。
- 作成者投稿
- takuyaParticipant
EmEditor 7.x beta版ではHTMLバープラグインが追加されているので試してみてはいかがでしょうか
私は、こういうマクロをキーボードに割り当てています。参考になれば幸いです。
//Element tag 書くマクロ
if( document.selection.Text ){
document.selection.Text =
““+ document.selection.Text +”
“;
document.selection.WordLeft(false,3);
}else{
document.write(““);
document.selection.WordLeft(false,3);
}重箱の隅つつきですが。WYSIWYGの用語利用法が間違っているかも。本来の意味のWYSIWYGエディタをご希望ならEmEditorは選択肢から外れるかも。それとも、HTMLをプレビューしながらHTMLソースを編集する意味なのでしょうか。一度ご確認下さい。
http://la.ma.la/misc/demo/realtime_cssedit.htm
こういうのがご希望でしたら現状EmEditorのWebプレビュープラグインが、完璧ではないが、近いことが出来るかもしれません
takuyaParticipant作者さんも忙しそうなのでSnipptsはユーザ有志でマクロ作るってのはどうでしょうかAyeさん
CodeReposでコード共有してマクロ共有すれば何とかならないかな。思いつきですけど。
SnipptsのライブラリのSVNの共有とかも欲しいですし。takuyaParticipantいまのところWebPreviewプラグインはそう動作するようです。。。。IEエラー通知はデフォルトでOFFですが、WebPreviewプラグインはデフォルトONのようです。そのためこのような動作をするのだと思います。
個人的にはこのようなマクロで回避していますが、これも解決策としてはイマイチです。
//開いてるソースをIEで表示するマクロ
document.selection.SelectAll();
var src = document.selection.Text;
ie = new ActiveXObject(“InternetExplorer.Application”);
ie.Visible = true;
ie.Navigate(“about:blank”);//ソースの取得元URL
while(ie.Busy){
Sleep(1);
}ie.Document.write(src);
takuyaParticipant箱型選択で改行を含もうとするとき、キーボード側から選択操作できませんでした。またクリックすると、フリーカーソルモードのようにカーソルがみえてしまう。。
USBメモリ動作の場合。
タスクトレイアイコンの履歴が相対パスなってしまい。なぜか存在しないファイルのパスを指してしまいます。
タスクトレイアイコンが非表示になってしまうときがあります。AutoCompletion
フォントが8pt でIPAフォントを指定すると候補文字が折り重なってしまいました。MSゴシック以外なので仕方ないのでしょうか?HTMLバープラグイン
フォント指定にタグがW3C非推奨なのでの書式を使った方が良いのかもしれませんtakuyaParticipantありがとうございます。ヘルプのタグジャンプを読んでも書いてなかったので。。。書式通り書けば勝手にハイライトされるとまた思いこんでました。
takuyaParticipantクリックで開くのはプラグインのソースを弄らないと無理だと思います。残念です。。。
“EmEditorに関連付けられていない形式のファイルはデフォルトを維持する設定が欲しい”
このようにエクスプローラープラグインの要望に挙げてみてはいかがでしょうか。takuyaParticipantなるほど、ちょっとした処理をぱぱっとするわけですね。
意味が分りました。それはEvalするとことで解決しませんか?。//選択範囲を実行するマクロ
//Eval.Jsee
eval(document.Selection.Text);これをマクロツールバーに置くか、キーボード割り当てておき、範囲選択後に実行でいかがでしょう
takuyaParticipantヘルプのマクロリファレンスについてです。
マクロが充実して嬉しい限りです。
しかしリファレンスがすこし見づらくなってきました。XXXPropの項目が増えすぎて見通しが悪いです。
個人的にはProperty.XXXとオブジェクトにまとまってると嬉しいですが。
そうも言ってられないので、設定項目と動作項目などに分けていただけるとわかりやすいのではないでしょうか。あと、Editor オブジェクトとWindow/Windowsの名前から存在するメソッドが類推しにくく。。。Window.SetFocus/Document.Activate()などが似ていて混乱しそうです。
すこしドキュメントを整理してみてはいかがでしょうか。ドキュメント類なら我々ユーザーでもお手伝いできると思います。Wiki/forumで整理&議論なども行えますし。
takuyaParticipant作成したマクロを編集するときに
a = document.selection.Text;//選択文字列を変数aに代入
このコードを先頭に記述すれば選択文字やマクロに変数を渡すことはある程度可能なのかなと思いますが。どうでしょうか。
保存は、ファイルメニューから保存が可能ですよ。あと、再利用のときま[マクロメニュー]->[選択]で作成済みマクロを選択して再実行できると思います。
私も、マクロの書き方が分らないときは、キーボードマクロを実行しています。幾つか細切れにキーボードマクロを実行して複数ファイルに開いています。それらをコピー&ペーストで1ファイルにまとめてから、出来上がったJSEEファイルを選択して実行しています。
このやり方が参考になれば幸いです
takuyaParticipantすいません、引用の閉じミスです。
修正いたしました。Ayeさん失礼しました
takuyaParticipantqtv>キー操作によってどのクリップボードへ保存するかが決められるならば,私でも使えるかもしれない,と思いました.
Aye Wong>あまり使いやすいとはいえないので、EmEditorの一機能として提供されているとよいとおもいました。
同感です。
たしか秀丸にはあったと思います。クリップボードへ追加コピーとか、クリップボードがスタックになってるヤツ。
EmEditorマクロに
clipboardData.pop();
clipboardData.push();
clipboardData.shift();
clipboardData.unshift()があれば、あとはキーボード割り当てで再現できるかも??
去年同じようなこと考えてマクロにしてみたのがあるので貼っておきます。
takuyaParticipantちょうど同じような処理をしていたところなので、私の考えた選択肢をマクロにしてみました。
幾つか方法はあると思います。
0)マクロ無し
マクロ使わないなら、EmEditorでTab区切りCSV化しEXCELに貼付けてソートして削除が楽かと。1) 正規表現を工夫するとか
正規表現なら置換ダイアログだけでOK。document.selection.Replace( “.*abc.*”, “”, eeFindReplaceRegExp+eeReplaceAll );//*abc*を検索して空白に
document.selection.Replace( “^n”, “”, eeFindReplaceRegExp+eeReplaceAll );//空白行を削除2)JavaScriptっぽくマクロ処理するなら
Redraw = false;
document.selection.SelectAll();
lines = document.selection.Text.split(/n/g);
for( i in lines){
if( lines.indexOf(“abc”) > -1 ){
lines.splice(i,2);
}
}
document.selection.Text = lines.join(“”);
document.selection.Collapse();
Redraw = true;
3)7.0版のみで動作させるマクロ、
この処理が早いと思う1行ずつ読み込んでいるから。
Redraw = false;
for(i=1;i -1){
document.selection.SetActivePoint( eePosLogical, 1,i,false );
document.selection.SelectLine();
document.selection.Delete();
i–;
}
}
Redraw = true;追記1:
LineDown()は最終行を検出できないのでループで使うべきではないと判明。
追記2:
ダイアログを使った正規表現置換は画面の再描画があるので遅かった。追記3:個人的にはDocumentオブジェクトでgrep処理 + rubyっぽいiterator処理が出来れば理想的です。
//EmEditorで開いてるファイルにGrep処理がしたい
document.grep( “abc” ).each(function(index,value){#行削除処理#});コレは実装するのは大変ですが。個人的に作りかけだったりします。そのうち公開します。
takuyaParticipantベータ版で新しいマクロ機能をつかうテストをしているときに気になった箇所があります。
document.selection.SetActivePoint( eePosLogical, 0,0,false );
txt = document.GetLine(document.selection.GetActivePointY(eePosLogical) );//カレント行が返される
txt = document.GetLine(0);//これはエラーになるそもそも、(x,y)=(0,0)へのSetActivePointが通ってしまうのがおかしいのかもしれません、そもそもGetLine(0)は想定外なのでエラーは理解できますが、SetActivePointがエラーにならないのはバグではなく当たり前のことなのでしょうか??
あとGetLineのマニュアル部分eeGetLineWithNewLines フラグが、「テキストに改行コードを追加しません。 」となってるのは「省略の場合はテキストに改行コードを追加しません。 」でよいでしょうか。
takuyaParticipantありがとうございます。
takuyaParticipantFSOでも良いのですが、EmEditor側にある方が、エディタのマクロとして自然かなと思ったりします。
#include “http://hoo.baz/foo.js”
//↓展開
var ld = WScript.CreateObject(“WSH.SubScriptLoader”);
ld.load(“http://hoo.baz/foo.js”, this);#includeをエディタがマクロ実行前に展開するだけだし。。。
あまり難しいことではないような気がする。作者さんのポリシー次第かなと思ってる。
takuyaParticipant秀丸でもOnloadみたいな起動時スクリプトが実装されてるようで、うらやましいなぁと思います。
>実装前にアイデア出しをある程度しておいたほうがよいでしょうね。
そうですね。アイディアが無いとどうしようもない。
http://www37.atwiki.jp/emeditor/pages/37.html
について、イベントやキーイベントが取得できたら実現可能なものがありそうです。CTRL+ホイールでフォントを大小 #キー&マウスイベント
ファイルから検索でファイルを直接開きたい #検索終了イベント
4回クリックで全選択 #マウスイベント
マクロでキー入力を取得 #キーイベント
ワークスペースの自動保存 #OnSave個人的には、
保存時にEmFTPでサーバーへファイル転送。
保存時にWebPreviewを更新
保存時にコンパイル
保存時にシンタックスチェックなどが可能になると思います。
現状Ctrl+Sにマクロを割り当てないと出来ないし。
EmFTPもCOMとして自在に使えないので実現できない。JScriptやVBはユーザーが多いのでより多くの開発者を呼び込む呼び水になればと思うのです。
EmEditorにあって秀丸にない箇所がさらに魅力になって欲しい。
takuyaParticipantIE/FireFoxやOperaもuser.jsで拡張できますよね。表示設定とか。
イベント実装は多少パフォーマンスが落ちても便利なので欲しいなと思う。
takuyaParticipantβ版でも新バージョンでも搭載予定無しでしょうか?
ScriptControl側にEvalを付加してくれるとソコソコ動作するのですが、EmEditorのマクロエンジン側に実装して貰えると嬉しい。var engine = new ActiveXObject(“ScriptControl”);
engine.Language = “JScript”;
js = engine.CodeObject;
WScript.Echo( js.eval(“aa=1”) );
WScript.Echo( js.aa );上記のEval部分を 外部ファイルのSRCコードにして欲しいのですが。。。
#include “sample.js”
alert(“test”);とEmEditorマクロを書けば、実行時にスクリプトエンジンに
追記されると嬉しいです。仰られるように、
#include
構文を実行前に固定コードへ展開しても良いと思います。takuyaParticipantおっしゃるとおりです。
Emeditorの場合、Windowの分割は1ファイルのみ操作&閲覧が行えるだけなので、キャレットは1つです。消える方が当然と思いこんでいました。。。
takuyaParticipanttakuyaです。
印刷プレビュー画面でMSオフィスのように、ページの余白を調節できると便利と思います。プレビュー画面から、余白設定までの手続きが3Stepあり、初心者にはちょっとわかりにくいかなと思います。ワープロでは無いから仕方の無いことなのでしょうか
takuyaParticipant大量のテキストをアウトプットバーに出力すると、いろいろおかしくなる点は私も気づいています。
yahoo.co.jpのHTMLを取り出して、アウトプットバーに出してみます。
out.txt
とコンソールから、リダイレクトを使って保存すると期待通りの結果が得られることは確認しています。
もし。
perl sample.pl | Emeditor.exe –outputbar
と出力をパイプで渡すことができれば・・
takuyaParticipantid:takuyaです
動作としては、nayaさんのご指摘通りです。
行の2重化だからその通りに動くのでしょうが。選択範囲の2重化と考えるとどうも違和感がありませんか?行選択してるのだから行の2重化コマンド実行が選択行が2重化されると意識が行くのが自然じゃないかなと思うのですが。
不具合というより、要望に上げた方が良いですかね。
takuyaParticipantShuheiさんありがとうございます。やっぱりdocument.replace()はもっさり動きますよね。WSHつかって正規表現ライブラリを直接コールした方が良いのかなぁ。
document.HighlightFind=false
画面が緑になるのは回避できました。強調表示OFF。ありがとうございます。以前自分が作ったマクロライブラリで使ってたのにスッカリ忘れてました。 :-)
takuyaParticipant面白そうなのでいろいろ調べてみました。
CSSで縦書きを指定する(IE限定)
http://www.tagindex.com/stylesheet/text_font/writing_mode.htmlというモノがありました。WebPreviewプラグインとCSSとを組み合わせれば、編集しながら時々縦書きで見る。程度のことならなんとか可能ですね。(縦書き編集からはほど遠いけど)
EmEditorの編集部分がIEコンポーネントで出来てたらCSSで縦書き編集モードとかできそうですね。
takuyaParticipant私が、良くやる方法は、保存時設定を書き換えて、一括して改行コードを変更する方法ですね。
設定のプロパティー->ファイル->保存時->保存時の改行コード
でCR+LFにしておき、開いてCTRL+Sするだけで一気に変換できます。
警告が鬱陶しいのであれば、改行コードの不一致警告をOFFにしてしまうとか。
ファイルサイズがある程度小さいのであれば改行コードをばっさり置換しちゃうのも手かもしれない。r を消して n をrnにするとか。
- 作成者投稿