URLの操作方法の設定変更値について
-
最近使い始めさせていただいております。
URLの文字列に対して「CTRL+→(←)アロー」を押すと、URLの終点(または始点)まで一気に移動してしまいます。
これをURL以外の移動時と同じ(単語単位?) にすることは可能でしょうか?URLの一部のみコピペしたい、変更したい等行う場合に文字選択がやりづらく困っております。
始点・終点に移動する場合は「HOME(END)」キーを使うので、設定でOFFに出来ないかと探したのですが、見つける事が出来ませんでした。また、ダブルクリックで選択しようにも、URLが選択されてしまいます。
「CTRL+ダブルクリックでブラウザ表示、通常ダブルクリックで文字選択」等でも構わないので、何か方法は無いでしょうか。なにとぞご教授願います。
Ver2.6.3 (64bit)
| pianyi | 返信 -
Mery をお試しくださりありがとうございます。
> 「CTRL+ダブルクリックでブラウザ表示、通常ダブルクリックで文字選択」等でも構わないので、何か方法は無いでしょうか。
申し訳ございませんが、現在のところそういった機能はございません。プログラムを確認してみましたが、エディタエンジンの仕様上、構文解析処理で URL は一つの単語として処理されるようになってしまってますね。
ご意見は今後の開発の参考にさせて頂きたいと思います。
| Kuro | 返信 -
そうでしたか。
お手数をおかけしますが、ご検討のほどよろしくお願いいたします。> Mery をお試しくださりありがとうございます。
>
> > 「CTRL+ダブルクリックでブラウザ表示、通常ダブルクリックで文字選択」等でも構わないので、何か方法は無いでしょうか。
>
> 申し訳ございませんが、現在のところそういった機能はございません。プログラムを確認してみましたが、エディタエンジンの仕様上、構文解析処理で URL は一つの単語として処理されるようになってしまってますね。
>
> ご意見は今後の開発の参考にさせて頂きたいと思います。| pianyi | 返信 -
前に TinySegmentor という分かち書きスクリプトで「少し賢い右移動」を作って
遊んでいたのでその流用。
RightWordEx.js あたりの名前を付けて Ctrl + → にマクロ割り当てすれば使えます。
Ctrl + Shift + → が必要ならコメント通りに修正して別ファイルで保存。(function (){
var reDelimit = new RegExp("[/\.:]","g");
with (document.selection) {
if(GetActivePos() >= document.text.length){
Quit();
}
if (!isEmpty) {
Collapse(meCollapseEnd);
}
CharRight(true);
var iChar = Text.charCodeAt(0);
Collapse(meCollapseStart);
if (iChar <= 0x7e) {
WordRight(true);
var selText = Text;
Collapse(meCollapseStart);
if(reDelimit.test(selText)){
var words = selText.replace(reDelimit," ").split(" ");
CharRight(false, words[0].length); //Ctrl + Shift + → に割り当てるなら true
}else{
WordRight(false); //同じく
}
} else {
WordRight(false); //同じく
}
}
})();エディタエンジンの単語認識は、全角スペースの連続をまとめてくれない(1文字ずつ移動する)けど省略。
また海外製エディタのように次の単語まで移動(空白で止まらない)するか、多くの日本製エディタのように単語の末尾まで移動(空白で止まる)するかをオプションで選べる機能もつけてあったけど割愛。左移動もできたので追加
(function (){
var reDelimit = new RegExp("[/\.:]","g");
with (document.selection) {
if(GetActivePos() <= 0){
Quit();
}
if (!isEmpty) {
Collapse(meCollapseEnd);
}
CharLeft(true);
var iChar=Text.charCodeAt(0);
Collapse(meCollapseStart);
if(iChar==9 || iChar==32){
WordLeft(false);
} else if(iChar <= 0x7e){
WordLeft(true);
var selText = Text;
Collapse(meCollapseStart);
if(reDelimit.test(selText)){
var words = selText.replace(reDelimit," ").split(" ");
CharLeft(false, words[words.length-1].length);
}else{
WordLeft(false);
}
} else {
WordLeft(false);
}
}
})();| 久々に匿名で | 返信 -
Chtl + Shift + → は連続して実行したときの動作が意図したものにならないので false → true の書き変えは行わずに以下のマクロに差し換え。
(function(){
var readFile = function(FileName){
var FOR_READING = 1 ;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var sFile = fso.OpenTextFile(fso.GetParentFolderName(window.ScriptFullName) + "\\" + FileName, FOR_READING);
var scripttext = sFile.ReadAll();
sFile.Close();
return scripttext;
}
with (document.selection) {
if(GetActivePos() >= document.text.length){
Quit();
}
var anchorpos = GetAnchorPos();
var scripttext = readFile("RightWordEx.js"); //このマクロと同じフォルダに置く
eval(scripttext);
SetAnchorPos(anchorpos);
}
})();Ctrl + Shift + ← は 「var anchorpos = GetAnchorPos();」 と 「SetAnchorPos(anchorpos);」の2行を追加します。
(function (){
var reDelimit = new RegExp("[/\.:]","g");
with (document.selection) {
if(GetActivePos() <= 0){
Quit();
}
var anchorpos = GetAnchorPos(); //Shift用
if (!isEmpty) {
Collapse(meCollapseEnd);
}
CharLeft(true);
var iChar=Text.charCodeAt(0);
Collapse(meCollapseStart);
if(iChar==9 || iChar==32){
WordLeft(false);
} else if(iChar <= 0x7e){
WordLeft(true);
var selText = Text;
Collapse(meCollapseStart);
if(reDelimit.test(selText)){
var words = selText.replace(reDelimit," ").split(" ");
CharLeft(false, words[words.length-1].length);
}else{
WordLeft(false);
}
} else {
WordLeft(false);
}
SetAnchorPos(anchorpos); //Shift用
}
})();| 匿名です | 返信