説明

一行編集上の文字列の選択範囲を正規表現で指定するスクリプト。selStr.jsの後継版です。
元ネタは5chPPxスレ

selStr.jsの引数指定では正確な範囲指定が出来なかったので名前を変えて作り直しました。
また、この変更によって以下の記事が影響を受けます。

使い方

  • スクリプトの引数に"(選択範囲の前の文字列)(選択する文字列)"となるように正規表現を指定する。
  • ()の外の文字も指定可能。
  • 空文字を送ったときは選択範囲の前の文字列の後ろにカーソルを移動。

例)文字列abc123.txtに対する引数の結果 ※縦線はカーソル位置

  • ,"(\D*)(\d*)" abc123.txt
  • ,"(\D*)()" abc|123.txt
  • ,"(\D*)(\d*).js" エラーメッセージ[ setSel.js: no match. ]


//!*script
/**
* 一行編集上で編集中の文字の選択状態を操作する
* ・引数は正規表現で指定
* prev:選択範囲の前の文字列を指定
* select:選択する文字列を指定
* ・PPXMES.DLLが必要
* ・参照元:https://egg.5ch.net/test/read.cgi/software/1476708638/405-411
*
* PPx.Arguments(
* 0: "(prev)(select)"
* )
*/
var text = PPx.Extract('%*edittext()').replace(/"/, '""');
var reg = new RegExp(PPx.Arguments(0));
var match = text.match(reg);
if (match === null) {
PPx.SetPopLineMessage('[ setSel.js: no match. ]');
PPx.Quit(1);
}
var lparam = match[1].length + match[2].length;
var wparam = (match[2] !== '') ? text.lastIndexOf(match[2]) : match[1].length;
PPx.Execute('*sendmessage %N,177,' + wparam + ',' + lparam);
view raw setSel.js hosted with ❤ by GitHub
//!*script
/**
* 一行編集上で編集中の文字の選択状態を操作する
* ・引数は正規表現で指定
* prev:選択範囲の前の文字列を指定
* select:選択する文字列を指定
* ・PPXMES.DLLが必要
* ・参照元:https://egg.5ch.net/test/read.cgi/software/1476708638/405-411
*
* PPx.Arguments(
* 0: "(prev)(select)"
* )
*/
{
'use strict';
const text = PPx.Extract('%*edittext()');
const reg = new RegExp(PPx.Arguments(0));
const match = text.match(reg);
if (match === null) {
PPx.SetPopLineMessage('[ setSel.js: no match. ]');
PPx.Quit(1);
}
const lparam = match[1].length + match[2].length;
const wparam = (match[2] !== '') ? text.lastIndexOf(match[2]) : match[1].length;
PPx.Execute(`*sendmessage %N,177,${wparam},${lparam}`);
}
view raw setSel_es6.js hosted with ❤ by GitHub