- 作成者投稿
- 2017年2月2日 12:10 am #23435ent参加者
http://www.emeditor.org/ja/cmd_edit_shift_top.html
こちらに書かれている 「選択範囲をXXXへ」コマンドではできなかったので以下のパターンに対応できる選択コマンドの追加をお願いできないでしょうか。以下のサンプル文字列2行は、1行目が行頭にタブ、その次にABCで行末。2行目が行頭から123でタブ、その次にABCで行末。です。
\tABC
123\tABC1行目の行末から SHIFT+HOME キーを押すと、ABCが選択されますが、2行目の行末から SHIFT+HOME を押すと123\tABCが選択されます。
要望のコマンドは、2行目のような場合にもABCを選択するものです。実現可能でしょうか。
非空白文字のまとまりの終了を目印に選択していく動作が希望です。DEF\t123\tABC
という文字で行末から1回コマンドを実行すると ABC が選択され、続けてコマンドを実行すると123\tABC を選択し、3回目には DEF\t123\tABC が選択できる動作だと尚良いです。ショートカットキーの割り当てはされなくても、コマンドがあれば好みの設定で呼び出しますのでコマンドだけでも実装していただきたく。
ご検討のほどよろしくお願いいたします。
2017年2月2日 2:12 am #23437Yutaka Emuraキーマスターent 様
いつもお世話になっております。江村です。
[選択範囲を1単語左へ] コマンド
http://www.emeditor.org/ja/cmd_edit_shift_left_word.html
Ctrl+Shift+Left
が相当すると思います。
よろしくお願い申し上げます。
2017年2月2日 9:59 pm #23440ent参加者江村様
回答ありがとうございます。
試してみましたが、それだと 希望したような選択動作になりません。 サンプルとして挙げた文字列が単純すぎましたね、申し訳ありません。
たとえば 以下のようなURL(その前後は空白文字) があった場合、末尾から先頭までURL全体を一度に選択したいのです。
https://jp.emeditor.com/forums/
または 以下のようなフルパス なども一度に選択したいのです。
C:\Windows\SysWOW64つまり 「非空白文字のまとまり」を選択するコマンドがほしいのですが、既存のコマンドで同様の動作をするものがありますでしょうか。
さらに発展させると「「非空白文字のまとまり」」に限らずそのような選択対象の文字列のマッチ条件を設定によって正規表現で与えることができるとカスタマイズ性が良くてベストです。
よろしくお願いいたします。
2017年2月3日 4:45 am #23442Yutaka Emuraキーマスターent 様
いつもお世話になっております。江村です。
簡単に実現するには、[カスタマイズ] ダイアログの [編集] タブの [次の文字を英数字として扱う] テキスト ボックスに、
_:/\
などを入力することができます。いかがでしょうか?
よろしくお願い申し上げます。
2017年2月4日 12:47 am #23443ent参加者江村様
代替案の提案ありがとうございます。さっそく試してみました。
確かに今回の範囲選択としては悪くないですが、この設定による他の箇所での影響がどこまで及ぶか想像がつかず、常用するには怖い、不便だと感じました。
具体的には、マーカーの 自動マーカー>カーソル位置の単語を取得する、の設定まで
影響を受けていることが確認できました。こういうところは設定カスタマイズ前と同じ動作をさせたいです。今回の要望の実現をを検討していただきたく。
よろしくお願いいたします。
2017年2月4日 9:14 am #23444Yutaka Emuraキーマスターent 様
いつもお世話になっております。江村です。
それでは、次のようなマクロはいかがでしょうか?
// if cursor is already at the left edge, quit now if( document.selection.GetActivePointX(eePosLogical) == 1 ) Quit(); // skip first spaces for( ;; ) { document.selection.CharLeft(true,1); if( document.selection.GetActivePointX(eePosLogical) == 1 ) break; if( !/^\s/.test(document.selection.Text) ) { break; } } // Select left to find a space for( ;; ) { if( document.selection.GetActivePointX(eePosLogical) == 1 ) break; document.selection.CharLeft(true,1); if( /^\s/.test(document.selection.Text) ) { document.selection.CharRight(true,1); break; } }
よろしくお願い申し上げます。
- 作成者投稿
- このトピックに返信するにはログインしてください。