emacs等には用意されていた機能と思います
すみません、思いっきり誤解してました。
emacsのtranspose-charsだと大体こんな感じですね。
参考までにどうぞ。
transpose_chars.jsee
Redraw= false;
transpose_chars();
Redraw = true;
Quit();// Functions
function transpose_chars()
{
if(isStartOfDocument())
{
status = “Beginning of buffer”
return;
}transpose_chars = document.selection.Text;
if(transpose_chars == “”)
{
with(document.selection)
{
if(!isEndOfLine())
CharRight(false,1)CharLeft(true,2);
transpose_chars = Text;
line = transpose_chars.split(“”).reverse()
if(line[1] == “n” && line[2] == “r”)
{
//CR+LFの帳尻あわせ
nline = new Array;
nline[0] = line[0];
nline[1] = line[2]+line[1];
line = nline;
}
Text = line.join(“”);
}
}
}function isStartOfDocument()
{
var p = new Object;
p = getPos()
return (p[‘x’] == 1 && p[‘y’] == 1) ? true : false;
}function isEndOfLine()
{
var p;
with(document.selection)
{p = getPos();
x1 = GetActivePointX(eePosLogical);
EndOfLine()
x2 = GetActivePointX(eePosLogical);
setPos(p);
}
return (x1 == x2) ? true : false;
}function getPos()
{
var pos = new Object;
with(document.selection)
{
pos = {
x : GetActivePointX(eePosLogical),
y : GetActivePointY(eePosLogical)
}
}
return pos
}function setPos(pos)
{
with(document.selection)
{
SetActivePoint(eePosLogical,pos[‘x’],pos[‘y’])
}
}
#functionの名前はswap->convcase, reverse->transposeに書き換えさせてもらいました。
#ぜいたくを言うと、メニュー無しのショートカットキーで起動したいところですが、これはマクロでは無理ですよね。
ショートカットキーはマクロを一度実行後にヘルプメニューの「キーボードマップ」から割り当てられます。
ちなみに大文字小文字をスワップするマクロは
ライブラリにあるtakuyaさんのマクロを使ったほうが
様々なケースでも変換できるのでオススメです。