個人的なメモ
4Kディスプレイに変えたところ、長年愛用しているxyzzyが高解像度モードに対応していないので、秀丸エディタに乗り換えを検討している。
秀丸エディタには、Homeキーの動作をVisual Studio風にするオプションがないので、マクロで対応する必要がある。
こちらのマクロをベースに使用して、行頭に空白文字がないと2文字目が選択される、Shift+Homeで選択できないという問題があるので修正する。
秀まるおのホームページ(サイトー企画)−VB風行頭移動マクロ
行頭に空白文字がないと2文字目が選択される
searchdownをsearchdown2に修正する。
Shift+Homeで選択できない
以下の2か所を修正する。
1か所目
#StartCol = column;
の直後に、
if (selecting){
if (x==selendx){
#PrevX = seltopx;
#PrevY = seltopy;
}else{
#PrevX = selendx;
#PrevY = selendy;
}
}else{
#PrevX = x;
#PrevY = y;
}を追加する。
2か所目
主処理の最後に以下を追加する。
#NextX = x;
#NextY = y;
if (iskeydown(0x10)){
moveto #PrevX,#PrevY;
beginsel;
moveto #NextX,#NextY;
endsel;
}
2026/3/8 追記
- 検索文字列が置き換えられる
- 選択行選択状態から選択を拡張する際、カーソル位置から選択されてしまう
という課題があったので、修正した。
//***************************************
//** 初期処理 **
//***************************************
setcompatiblemode 0x20000;
disableinvert; // 選択反転停止
disabledraw; // 画面更新停止
#StartCol = column;
if (selecting){
if ((x==selendx) && (y==selendy)){
#PrevX = seltopx;
#PrevY = seltopy;
}else{
#PrevX = selendx;
#PrevY = selendy;
}
}else{
#PrevX = x;
#PrevY = y;
}
golinetop2;
//***************************************
//** 主処理 **
//***************************************
searchdown2 "[^ \\t\\n]",regular,inselect;
if(result == true){
if((column - 1 == 0)&&(code != 8)){
golinetop2;
}else if((column < #StartCol)||(#StartCol == 0)) {
moveto x,y;
}else{
golinetop2;
}
}
#NextX = x;
#NextY = y;
if (iskeydown(0x10)){
moveto #PrevX,#PrevY;
beginsel;
moveto #NextX,#NextY;
endsel;
}
//***************************************
//** 後処理 **
//***************************************
END:
enableinvert; // 選択反転開始
enabledraw; // 画面更新開始
endmacro;