今日の花:すいば 情愛  今日の星:ゼータ・ヘルクリス(ヘラクレス座ζ星) 信頼感ある探求心

Zero キーボード向けPyxisライクなファイラー

2024年11月24日AutoHotkey,ファイラー

最近大変気に入って使っているファイラーです。

Pyxis を意識して作っておられるので、その事も気に入っている点です。

多くのファイラーは2画面がほとんどで、使ってはみてもなぜかシックリ来ないのですよね。やっぱり昔から使い慣れた1画面がシックリきます。

配布ファイルも zip 形式でインストール不要なのがいいです。USB メモリーに入れて持ち運びが出来たりしますからね。

現在開発が進んでいますので、さらに使いやすくなるのが楽しみです。

Zero の入手先

AutoHotkey によるカスタマイズ

v.0.9.5 よりキーカスタマイズが出来るようになりました。
ただ、まだテキストビュワーの方はカスタマイズできません。

私のノートは、PageUp PageDown キーが無いので、内蔵テキストビュワーが使いづらいし、Esc キーが押しにくいので AutoHotkey でカスタマイズしています。

AautoHotkey v1 用でしたが v2 用に書き換えました。

基本設定で「Path入力時の初期値」を、「1-参照窓」にしています。

;=============================
; Zero v1.22.5 対応
; AutoHotkey v2用
;=============================
InstallKeybdHook
#UseHook
#WinActivateForce
GroupAdd "jogai", "ahk_class XLMAIN"      ;エクセル

;[無変換] + [z] は zero cドライブ work で起動
vk1D & z::Run "c:\Zero\Zero.exe /D=c:\work"

;***** メイン窓 *****
#HotIf WinActive("ahk_class TZeroMainForm")
^k::                        ;[Ctrl] + [k] は
{
  Send "{Esc}"              ;[Esc] で、プルダウンかインクリメンタルサーチか終了確認を終了
                            ;そうでないなら終了確認窓表示(される)
  Sleep 100                 ;ウェイト
  If WinExist("ahk_class TMessageForm")  ;終了確認窓があれば
    Send "{Esc}"            ;[Esc] で閉じる
}

q::                         ;[q] は
{
  Send "{Esc}"              ;[Esc] で、プルダウンかインクリメンタルサーチか終了確認を終了
                            ;そうでないなら終了確認窓表示(される)
  Sleep 100                 ;ウェイト
  If WinExist("ahk_class TMessageForm")  ;終了確認窓があれば
    Send "{Enter}"          ;[Enter] で Zero 終了
}

^i::                        ;[Ctrl] + [i] は
{
  If WinExist("ahk_class TTxtViewForm")
    WinActivate             ;テキストビュワーへ
}

;***** フォルダー選択 *****
#HotIf WinActive("ahk_class TOpenDirForm")
n::                         ;[n] と
^k::                        ;[Ctrl] + [k] は
{
  If WinExist("ahk_class TFileListForm")  ;ファイル検索結果窓があれば
    Send "{Esc 3}"          ;[Esc] 3回
  Else                      ;無ければ
    Send "{Esc 2}"          ;[Esc] 2回
}

+sc01c::                    ;[Shift] + [Enter] と
^.::                        ;[Ctrl] + [.] は
{
  Send "+{Enter}{Enter}"    ;[Shift] + [Enter] そして [Enter]
}

;***** ネットワークリソース *****
#HotIf WinActive("ahk_class TNetViewForm")
r::                         ;[r] は
{
  Controlclick "再読み込み" ;再読み込みボタンクリック
}

n::                         ;[n] と
^k::                        ;[Ctrl] + [k] は
{
  If WinExist("ahk_class TInputDirForm") ;移動先、コピー先、展開先窓があれば
    Send "{Esc 3}"          ;[Esc] 3回
  Else                      ;無ければ
    Send "{Esc}"            ;[Esc] 1回
}

;***** ファイル検索 *****
#HotIf WinActive("ahk_class TInputSrchForm")
^k::                        ;[Ctrl] + [k] は
{
  If WinExist("ahk_class TInputDirForm")  ;移動先、コピー先、展開先窓があれば
    Send "{Esc 3}"          ;[Esc] 3回
  Else                      ;無ければ
    Send "{Esc}"            ;[Esc] 1回
}

;***** 名前変更 *****
#HotIf WinActive("ahk_class TRenameForm")
^k::                        ;[Ctrl] + [k] は
{
  If WinExist("ahk_class TFileListForm")  ;ファイル検索結果窓があれば
    Send "{Esc 2}"          ;[Esc] 2回
  Else                      ;無ければ
    Send "{Esc}"            ;[Esc] 1回
}

;***** 削除確認 *****
#HotIf WinActive("ahk_class TDelForm")
y::                         ;[y] は
{
  If WinExist("ahk_class TFileListForm")  ;ファイル検索結果窓があれば
    Send "y{Esc}{F5}"       ;[y] でファイル削除し [Esc] で検索結果窓閉じて [F5] で画面リフレッシュ
  Else                      ;無ければ
    Send "y"                ;[y] で削除
}

r::                         ;[r] は
{
  If WinExist("ahk_class TFileListForm")  ;ファイル検索結果窓があれば
    {
      Send "r"              ;[r] でゴミ箱へ
      Sleep 100             ;ウェイト
      Send "{Esc}{F5}"      ;[Esc] で検索結果窓閉じて [F5] で画面リフレッシュ
    } 
  Else                      ;なければ
    Send "r"                ;[r] でゴミ箱へ
}

n::                         ;[n] と
^k::                        ;[Ctrl] + [k] は
{
  If WinExist("ahk_class TFileListForm")  ;ファイル検索結果窓があれば
    Send "{Esc 2}"          ;[Esc] 2回
  Else                      ;なければ
    Send "{Esc}"            ;[Esc] 1回
}

#HotIf WinActive("ahk_exe Zero.exe")
^k::Send "{Esc}"            ;[ctrl] + [k] で取消

;=============================
; Ztext.exe
;=============================
;***** メイン窓 *****
#HotIf WinActive("ahk_class TTxtViewForm")
+Space::                    ;[Shift] + [Space] と
Left::                      ;[←] と
p::                         ;[p] は
{
  Send "{PgUp}"             ;ページアップ
}

Space::                     ;[Space] と
Right::                     ;[→] と
n::                         ;[n] は
{
  Send "{PgDn}"             ;ページダウン
}

j::Send "{Down}"            ;[j] は [↓]
k::Send "{Up}"              ;[k] は [↑]

g::Send "^j"                ;[g] は [Ctrl] + [j] で指定行ジャンプ
t::Send "^j1{Enter}"        ;[t] は [Ctrl] + [j] [1] [Enter] で先頭行へ
b::Send "^j999999{Enter}"   ;[b] は [Ctrl] + [j] [999999] [Enter] で最終行へ

f::Send "^f"                ;[f] は [Ctrl] + [f] で文字列検索
l::Send "{F3}"              ;[l] は [F3] で次を検索
o::Send "+{F3}"             ;[o] は [Shift] + [F3] で前を検索

^i::Send "{Tab}"            ;[Ctrl] + [i] は [Tab] でファイラーへ
q::Send "{Enter}"           ;[q] は [Enter] で閉じる

;***** 文字列検索、行番号入力 *****
#HotIf WinActive("ahk_class TInputStrForm")
^k::Send "{Esc}"            ;[Ctrl] + [k] は [Esc] で入力中止

;=============================
; エクセル以外
;=============================
#HotIf not WinActive("ahk_group jogai")
  ^m::Send "{Enter}"        ;[Ctrl] + [m] は [Enter]
  ^h::Send "{Backspace}"    ;[Ctrl] + [h] は [Backspace]
  ^g::Send "{Delete}"       ;[Ctrl] + [g] は [Delete]

  ^e::Send "{Up}"           ;[Ctrl] + [e] は [↑]
  ^d::Send "{Right}"        ;[Ctrl] + [d] は [→]
  ^x::Send "{Down}"         ;[Ctrl] + [x] は [↓]
  ^s::Send "{Left}"         ;[Ctrl] + [s] は [←]

Key.json の設定。
「i」はデフォルトで「Incsearch」だが「@」を利用。
画面リフレッシュの Ctrl + R は、「send, ^R」で反応が悪いので「F5」に割り当て。
また、「^k::Controlclick, キャンセル」も反応悪いので「send,{Esc}」にしている。
Ctrl + J は Enter の動きをする(隠しコマンド?)ので無効化。

[
  {"Key": "i",       "Cmd": "nextzero"},
  {"Key": "o",       "Cmd": "Wwin"},
  {"Key": "w",       "Cmd": "allfilemark"},
  {"Key": "Shift+w", "Cmd": "Allmark"},
  {"Key": "¥/",      "Cmd": "launcher"},
  {"Key": "f5",      "Cmd": "Refresh"},
  {"Key": "Ctrl+j",  "Cmd": ""},
]

上記の設定により、下記の既定のショートカットは無効になります。

q : 終了メニュー
w : 2画面表示
F5 : 名前順
Ctrl + e : 新規ファイル編集
Ctrl + h : カレントフォルダーを履歴に追加
Ctrl + k :ワイルドカードでマーク
Ctrl + x : 切り取り – エクスプローラー
Shift + Enter :フォルダー選択決定