2013年6月26日水曜日

現在窓を反対窓と同パスに

あふのように

O→現在窓を反対窓と同パス
Shfit+O→反対窓を現在窓と同パス

にするようにする。
カスタマイザーを開いて以下を編集して取込

KC_main = { ; PPcメイン窓
O ,%j%2
\O = @'='
}

2013年6月24日月曜日

xyzzyではてな記法の見出しを実装してみる(改)

xyzzyではてな記法の見出しを実装してみる - つかさのほえほえ日記

  • 行頭に"*"か"**"を挿入するキーバインドを設定
  • 行頭が"**"か"***"ならその行だけ色を変える

ということをしていた。
そのときは.xyzzyに直接記述するという仕方だったが、拡張Lispにしてrequireする方がすっきりしていいのではないかとおもい、書き直してみる。

hatena-kihou.l
; -*- Mode: Lisp -*-
;
;;  はてな記法の見出しの実装(色づけとキーバインド)
;;
;;  行頭が"**"か"***"ならばその行に色をつける
;;
;;  キーバインド
;;      C-:     行頭に**を付ける
;;      C-]     行頭に*を付ける
;;
;;  Installation:
;;
;;      ~/.xyzzy または $XYZZY/site-lisp/siteinit.l に以下のコードを追加
;;
;;              (require "hatena-kihou")


(defun hateda-heading ()
  (interactive "*")
  (save-excursion
  (goto-bol)
  (insert "**")
  (fix-selection-point)))
(global-set-key #\C-: 'hateda-heading)

(defun hateda-headingsec ()
  (interactive "*")
  (save-excursion
  (goto-bol)
  (insert "*")
  (fix-selection-point)))
(global-set-key #\C-] 'hateda-headingsec)

(defvar *text-mode-formats*
  (compile-regexp-keyword-list
   '(
  ("^[=].*" t (:color 14 7 :line :bold ))
     ("^[*][*][^*].*" t (:color 7 4 :line ))
     ("^[*][*][*][^*].*" t (:color 7 14 :line ))
  )
   )
  ) 

(defun my-color-text-mode ()
  (make-local-variable 'regexp-keyword-list)
  (setq regexp-keyword-list *text-mode-formats*)
  )

(setq regexp-keyword-list *text-mode-formats*)
(add-hook 'text-mode-hook 'my-color-text-mode)

これをsite-lispフォルダに保存。
あとは.xyzzyかsite-lisp.lに

(require "hatena-kihou")

をコピペすればいいです。

前の記事から細かいところは多少変えたけれど、基本はだいたい同じ。

キーバインドは、

  • C-: → 行頭に**を付ける
  • C-] → 行頭に*を付ける
です。

色はデフォルトだと次のようになる。


2013年6月6日木曜日

カーソル移動を素早くする(改)

挙動を微妙に修正。
今まではカーソルがディレクトリ上なら最初のファイルに移していたが、最初のディレクトリに移るようにする。

cursormove.js
//!*script


// 最初のエントリの位置を計算
var fn;

for (var i = 0; i < 3; i++) {
  if (PPx.Entry(i).Name != "." && (PPx.Entry(i).Name != "..") ) {
    fn = i
    break;
  }
}

// カーソルが最初の時
if (PPx.EntryIndex == fn) {
  // ファイルなら最後へ
  if (PPx.EntrySize != 0){
    PPx.EntryIndex = PPx.EntryAllCount - 1;
    PPx.Quit();
  }
  // フォルダの場合
  for (var i = 0; i < PPx.EntryAllCount; i++) {
    // ファイルがあれば最初のファイルへ移す
    if (PPx.Entry(i).Size != 0) {
      PPx.EntryIndex = i;
      break;
      }
    // ディレクトリのみなら最後へ移す
    else {PPx.EntryIndex = PPx.EntryAllCount;}
  }}
// カーソルが最初のファイルの時は最後に
else if (PPx.EntrySize != 0 && PPx.Entry(PPx.EntryIndex - 1).Size == 0) {
  PPx.EntryIndex = PPx.EntryAllCount - 1;
  }
// それ以外は最初へ移す
else {PPx.EntryIndex = fn;}

以下を編集して取込
Ctrl+Eに割り振る。
KC_main = { ; PPcメイン窓
^E ,*script %0\Script\cursormove.js
}


追記 2013/12/11


ルートフォルダでもうまく動作するようにした

2013年6月2日日曜日

fenrirの設定(インスタントコマンド編)

インスタントコマンドには単機能ツールを登録しておくと非常に便利。というわけで必要なツールをまずダウンロードする。

bluewind&単機能ツール集 再配布所から
  • shutdown.zip
  • logoff.zip
  • reboot.zip
をダウンロード。それぞれ実行するとWindowsのシャットダウン、ログオフ、再起動をすることができる。

またB@r09u3⇔Style Op.2から

  • qtzero007.zip

をダウンロード。これは現在起動中のアプリをメニューで一覧表示し、強制終了することのできるツール。これもよく使う。それぞれ適当な場所に展開しておく。

instant.iniの編集


dataフォルダ内の_instant.iniをinstant.iniとリネーム。書式例を残しておきたいなら新しくinstant.iniという名前でファイルを作るのでもいい。このファイルをエディタで次のように編集して、先のツールを登録する。

instant.ini
[InstantCommand]
sh/="D:\bin\simpletools\ShutDown.exe"
log/="D:\bin\simpletools\LogOff.exe"
re/="D:\bin\simpletools\Reboot.exe"
q/="D:\bin\qtzero\qt0.exe /nopathname "
e/="D:\bin\Everything\Everything.exe"

イコールを挟んで左がコマンド、右がパスですね。
あとは登録したコマンドを打ち込めばそのツールが起動する。


fenrirの設定(コマンド編)

cmdフォルダに

  • 0Enter.txt
  • 2a.txt
  • 4r.txt

みたいにテキストファイルを作ることでコマンドを指定できる。 ファイル名がキー。前の数字が修飾キーで

  • 0 修飾キー無し
  • 1 Alt
  • 2 Ctrl
  • 4 Shift
  • 8 Windowsキー

となっている。コマンドはテキストファイルを編集して設定する。

  • Enter → MP3ならAimp2。EXEならシェル関連付け実行。それ以外はPPxで開く
  • Ctrl+Enter → パスの削除か追加。フォルダならばスキャンとそのフォルダ以下のパスの削除も
  • Ctrl+F → PPxの現在窓で開く
  • Ctrl+A → PPxの反対窓で開く
  • Ctrl+C → ファイル名のコピー
  • Ctrl+D → ダイアログハンドラー
  • Ctrl+E → xyzzyで編集
  • Ctrl+カーソル左 → あふの左窓で開く
  • Ctrl+カーソル右 → あふの右窓で開く
  • Shift+N → ファイル名のコピーメニュー
  • Shift+C → PPxでファイルコピー
  • Shift+M → PPxでファイル移動
  • Shift+U → PPxでファイルの展開 


0Enter.txt
[.\\\;
PPx | D:\bin\ppw\PPCW.EXE -r "%P"
]
[.mp3;
Aimp2 | "C:\Program Files\AIMP2\AIMP2.exe" "%P"
]
[.exe;
ShellExecute|"%P"
]
[.???;
PPx | D:\bin\ppw\PPCW.EXE -r -k %J"%P"
]

2Enter.txt
[.\\\;
このフォルダをスキャン|%W\fenrirScan.exe *%P,*.*,\
このフォルダ以下のパスを削除|%W\fenrirScan.exe !%P\*
]
[.***;
このパスを削除|%W\fenrirScan.exe !%P
このパスを追加|%W\fenrirScan.exe +%P
]

2f.txt
[.\\\;
PPx | D:\bin\ppw\PPCW.EXE -r "%P"
]
[.???;
PPx | D:\bin\ppw\PPCW.EXE -r -k %J"%P"
]

2a.txt
[.\\\;
PPx反対窓 | D:\bin\ppw\PPCW.EXE -r -bootid:~ "%P"
]
[.???;
PPx反対窓 | D:\bin\ppw\PPCW.EXE -r -bootid:~ -k %J"%P"
]

2c.txt
[.***;
CopyPath|%W\clip.exe %P
]

2d.txt
[.***;
DialogHandler | D:\bin\DialogHandler\DialogHandler.x86-32.exe "%P"
]

2e.txt
[.***;
xyzzy |"D:\bin\xyzzy\xyzzy.exe" "%P"
]

2right.txt
[.***;
あふ右|D:\bin\afxw\AFXWCMD.EXE -r"%P"
]

2left.txt
[.***;
あふ左|D:\bin\afxw\AFXWCMD.EXE -l"%P"
]

4n.txt
[.***;
CopyFileName|%W\clip.exe %F
Copy&DirName|%W\clip.exe %D
Copy&FileName(拡張子無し)|%W\clip.exe %N
CopyFile&Path|%W\clip.exe %P
----------------------------------------
Copy"FilePath"|%W\clip.exe "%P"
Copy"DirName"|%W\clip.exe "%D"
]

4c.txt
[.***;
PPxFileCopy | D:\bin\ppw\PPCW.EXE -r -k *ppcfile copy,"%P"
]

4m.txt
[.***;
PPxFileMove | D:\bin\ppw\PPCW.EXE -r -k *ppcfile move,"%P"
]

4u.txt
[.***;
PPx2LhaForge | D:\bin\ppw\PPCW.EXE -r -k %Ob "C:\Program Files\LhaForge\LhaForge.exe" %#FCD /e /o:"%P"
]

参考


柔軟カスタマイズに脱帽!-Fenrirその2 - 覚えらんない人のためのオンラインソフト備忘録

fenrirの設定(基本編)

ダウンロード



をダウンロード。

アイコンを変更したい場合はFrownWikiのuploaderから適当なものをダウンロードしておく。

インストール


fenrirを解凍。



bregonig.dllとmigemo.dllとmigemo辞書をfenrirフォルダに解凍。
bregonig.dllをBregexp.dllとリネームする。
migemo辞書は、Dictというフォルダをfenrirフォルダに作ってその中に一式解凍する。cp932とutf-8の二つがあるが、cp932の方を利用。


docsフォルダにあるomake.zipの

  • fenrirScan.exe
  • _ScanRule.ini
  • clip.exe

をfenrirフォルダに解凍。_ScanRule.iniはScanRule.iniとリネーム。



アイコンを変更したい場合は、適当なアイコンをtray.icoという名前にしてdataフォルダに移動。

ScanRule.ini


ScanRule.iniをエディタで開き、スキャンしたいパスを追加。
僕のScanRule.iniは、フォルダ構造を相当整理しているということと、PPxの補助として使用しているということからかなり削っている。

*C:\Program Files,\
*D:,\
*D:\bin,\
*D:\Download\,\
*D:\work,\
*D:\data,\
-C:\RECYCLER
-D:\RECYCLER

EXEファイルとかないじゃん!と思われるだろうが、fenrirは実行したパスは記録するからそれで間に合うかな、と。ランチャとして使用するソフトは20に満たないし、はじめから大量に登録してノイズになるよりもいいんじゃないかと思っている。
fenrirはPPxのフォルダ移動に利用する場合が大半だし、とりあえずフォルダだけ登録しておけば大丈夫なはず。

fenrirScan.exe


fenrirScan.exeを実行する。これでdataフォルダにpathが作られるはず。
pathが無い場合、fenrir.exeを実行すると


とダイアログが出てスキャンしてくれるのだが、あらかじめScanRule.iniを編集してfenrirScan.exeでpathを作成する方が早い。

カスタマイズ


fenrirを起動。タスクトレイ右クリックからオプションを開く。呼び出しキーその他を設定。



fenrirをタスクトレイ右クリックから終了し、dataフォルダのfenrir.iniをエディタで開き細かい設定をする。

MigemoMode=3

としてMigemoが使えるようにするのが必須くらいか。

fenrir.ini 
[MAIN]
HotKeyMain=541
HotKeySub=0
SearchMethod=1
SearchMethodInDir=2
PriorityStockCounts=500
HashSize=100001
MaxListItemCounts=20
ListIcon=1
FitWindowSize=0
NoCaption=0
AllowChangeSizeMainWindow=0
HideEditAfterExec=1
TrayIcon=1
ShowStartUp=0
BackGroundColor=4194304
MainWindowRect=7301000000020000040300002A020000A9
ListWindowRect=730100002A02000025030000EE020000B8
KeyMoveToParentDir=2085
KeyMoveToDir=2087
KeyListCursorUp=2086
KeyListCursorDown=2088
CheckPathExist=1
UseDummyIcon=0
FontColor=12632256
AddIconIndex=0
ClientEdge=0
AutoRegistrationMode=0
ImeOffAlways=1
EditIcon=1
EditIconDelay=0
MigemoMode=3
MigemoStrings=3
MigemoDictPath=
MigemoStartLen=3
CompactPath=1
NoHideAtFilerMode=0
ToggleWindowShowHide=1
AutoHide=1
ChangePrioriyOfDirectoryBrowsed=1
InputHistoryMax=22
InputHistoryMinLen=3
ClearWorkingSet=1
MainWindowHeightAdd=0
ExecuteHistoryMax=22
LoopListCursor=1
SearchDelay=0
LOGFONT=F3FFFFFF0000000000000000000000000000000000000080000000004D5320554920476F7468696300000000000000000000000000000000000000004C
ScanProgram=%W\fenrirScan.exe


参考リンク


fenrir - FrownWiki