EmEditor」タグアーカイブ

EmEditor C# snippet

正月から Windows 7 を使っているけど Opera と EmEditor しか使っていない…

まぁ Ubuntu でもあまり変わらないけど。
画像と動画は Ubuntu でしか見ない、てか Windows 7 はミニノートだし。

もう少し EmEditor v10 をカスタマイズしなければ今はチト苦しい。
EmEditor 用に <>& をエスケープするマクロを最低でも作らねば。
Blog に XAML 等の XML を書き込む等の時に必要なんだもの。
Linux Gedit 用は自分で公開しているし秀丸では他人が作ったマクロを利用していたが。

実は簡易で作っていた、JavaScript が得意じゃない私なので酷い処理。
ぶっちゃけ document.selection.Replace() を 3 回繰り返すというギャグw
これではあんまりなので今度は JavaScript の勉強。

html_escape.js

if (!document.selection.IsEmpty) {
	var ss = document.selection.Text;
	var s, result = "";
	var n = ss.length;
	for (var i=0; i<n; i++) {
		s = ss.charAt(i);
		if (s=="&") {s = "&amp;"};
		else if (s=="<") {s = "&lt;"};
		else if (s==">") {s = "&gt;"};
		result += s;
	};
	document.selection.Text = result;
}

でいいみたい、得意じゃないので無駄が多いかもしれないけど。
String は charAt メソッドで日本語でも一文字づつ取り出しできるんだね。
ソレさえ理解すれば後はどうとでも作れるはず、今までどの言語でもそうだった。
JavaScript も今年はもう少し勉強しよう。

それよりデフォルトは C# が C/C++ と同じスニペットになっている…
全然同じじゃ無いだろ、これ私の環境だけなのかな?
C# 専用スニペット郡を作って最低でも以下を追加しないと。

トリガ doc

/// <summary>
/// $0
/// </summary>

トリガ main

class __main__
{
	[STAThread]
	public static void Main(string[] args)
	{
		var app = new Application();
		app.Run(new ${0:/*ClassName*/}());
	}
}

トリガ try

try
{
	$0
}
catch (Exception e)
{
	
}
finally
{
	
}

トリガ proc

private void ${0:/*procedure*/}(object sender, RoutedEventArgs e)

これだけ作っておけば結構楽にコードが書けると思う。
VisualStudio を使わないなら summary はあまり意味が無いけど一応。
Python で docstring を使うようになったので基本に合わせたくなるのよ。

後はたとえば main と打ち込み tab キーを叩けば

Linux ではスニペットって常識以前なんだが何故 Windows では流行しないのか?
おかげで cmd.exe は Tab キーで補完できることを Linux を使うまで知らなかったぞ。
cd do と打ち込んで Tab キーで cd Documents まで補完、こんなに移動は楽なのに。

というか秀丸にスニペット機能が付けば秀丸に戻るんだけどな。
Windows 版 Gedit が存在するのは知っているが大半のプラグインが動かないと思うし。
試すつもりも無いが。

沢山のアプリを試す暇があったら一つを徹底的に使いこなしたほうがイイ。
機能に不満で乗り換えて、を繰り返すと結局最後は Em か秀丸になるのだから。
と元フリーソフト作者自身が言うのだから間違いない。

******************************

そうだ、Windows アプリといえば

Qonoha

この人だけは続くだろうとは思っていたけどまさか今でも更新しているとは。
てか他のプレイヤー作者って誰がいたっけ?マジで忘れたw

私なんて今や Windows は VLC media player だ、Cinema 使っていない…
だってあんまり Windows を使わないのに別途でデコーダーを入れるなんて面倒臭い。

というか、ココは今では何もインストールしないでプログラミングのブログだし。
なるべく最小限構成な Windows のままで使いたいので単体な VLC が一番なのよね。
Linux では Y901x を使っているからいいじゃん、みんな Linux においで。

EmEditor を Gedit 風にカスタマイズ

以前
Tab キーでのスニペット挿入が秀丸でも EmEditor でもできずもどかしい!
なんて書いたけど…

窓の杜 – 【NEWS】スニペットの強化で入力作業が大幅に軽減された「EmEditor」v9のベータ版が公開

ぅおい! EmEditor v9 はできるんかい。
有償でも絶対に買うよ、会社なんだから無償バージョンアップを続けるのも辛いだろうし。
閉じ括弧の自動保管とかなんてウザいだけだからいらないんだが。
コード保管も使い物にならないだろうし、Visual Studio レベルなら考えるけど

よし、EmEditor を普段使っている Gedit 設定風にカスタマイズしてしまおう!

Ubuntu ではテキスト編集を全て Gedit で行っているのでもう手が勝手に動く私。
どうでもいいが最近 gEdit と書くか Gedit と書くかで迷うようになった。

まず Shift+Home で行の一番先頭まで選択してしまう件をなんとかしたい。

得に Python をやっているとインデントの先頭までを選択はよく行う。
Ctrl+Shift+Alt+Home でインデントの先頭になるけどコンナの普通に何度も押せるかい!
これは「ヘルプ – キーボードマップ」から

shift_home

と割付変更、これだけでインデントの先頭までを選択になる。
もう一度 Home を叩けば行の先頭へ、これで Gedit と完全に同じだ。

ぱぇぽぃ2 ? Blog Archive ? Home キーを 2 回叩け

それに Shift+Tab での逆インデントが範囲選択中しか行えないのが理解できない。
範囲選択されていなくてもその行を逆インデントしたほうが直感的だと思うんだが。
というか Python でコレができないのは致命的、半角スペース 4 つが普通なんだから。

ちなみに Linux の /usr/bin 以下にある Python スクリプトは全部半角スペース 4 つである。
Windows ならともかく Linux でこのインデント以外にて Python を書いている人は…略。
とにかく Shift+Tab で逆インデントしてくれないとスクリプトを書くのに効率が悪すぎる。

なのにキー割り当てに設定が無い、しかたがないのでマクロを作って Shift+Tab に割付。
Gedit はカーソル位置がどこでも逆インデントできるけど結局は先頭でしか行わない私。

if (document.selection.IsEmpty) {
	if (document.Config.Indent.InsertSpaces)
		document.selection.DeleteLeft(4);
	else
		document.selection.DeleteLeft(1);
} else {
	document.selection.UnIndent(1);
}

Python でなく js で書いているのは気にしない。
Windows 7 RC には IronPython しかインストールしていないからである。
とりあえずこれでインデントに対する私的な不満は無くなった。

gedit でデバッグ

んで、外部ツールに IronPython を登録してコチラも F5 に割り付けてと。

f5exec

Python の設定を開いて「タブ/インデント」はインデント開始文字を空に。
勝手にインデントしてしまうのが私は気に入らない、直感的でないものは極力排除。
タブの代わりに 4 つの空白を挿入に変更、これで望みどおりの動作になった。

後はスニペットに似たようなのをガシガシ登録。
でもスニペットだと認識するのに少し時間が掛かるみたい、改良を気長に待つとするか。

doc

しかしスニペットプラグインウインドウを表示した状態でないと使えない、残念。
常に有効状態にするには…

emeditor9b

こうするしかないかな、もう少し弄くってみます。
公開している(実際に私が利用している)Gedit プラグインと同様なマクロも書かねば。

追記

bg

スニペットのプロパティに
「バックグラウンドでも実行」
ってのがあった、チェックすれば常に有効になるみたい。