2015年5月15日金曜日

ファイルサイズで使用エディタを変更

あいさつ


つかさです。
ファイルサイズにより、使用エディタを変更するスクリプトです。
ファイルサイズが1000以上ならxyzzyを。それ以下ならPPeを利用するようにしてます。

editbysize.js
//!*script 
// 第一引数:開きたいファイルのパス

// 引数がなければ終了
if (PPx.Arguments.Length < 1){
  PPx.SetPopLineMessage("引数が正しくありません。");
  PPx.Quit(-1);
}

var path = PPx.Arguments.Item(0);
var fs = PPx.CreateObject( "Scripting.FileSystemObject" );
var editor = "D:\\bin\\xyzzy\\xyzzy.exe" // エディタのパス
var fsize = 1000 // 基準とするファイルサイズ

if (fs.GetFile(path).Size > fsize){
  PPx.Execute ("%Ob \"" + editor + "\" " + path); // エディタで開く
} else {
  PPx.Execute ("*ppe " + path); // PPeで開く
}

fs = null;

以下を編集して取込すると、「PPeを用いて編集」の代わりにこのスクリプトを使うようになる。これで、間違ってPPeで容量が大きいテキストファイルを開いてしまうことがなくなるかも
KC_main = { ; PPcメイン窓
\E ,*script %0\Script\editbysize.js,%FCD
}

KV_main = { ; PPvメイン窓
\E ,*script %0\Script\editbysize.js,%FCD
^E ,*script %0\Script\editbysize.js,%FCD
}

2015年5月14日木曜日

PPvの連動ビューで除外設定(ファイル名を表示)


以前やったPPvの連動ビューで除外設定だと、除外ファイルにカーソルが来た時、PPvは先に表示したファイルをそのまま表示し続けることになる。これだと、今どこにカーソルがあるのかがPPv上からではわかりづらい。
そこで、除外ファイルに行き当たったら、その除外ファイルのファイル名をPPvに表示するようにする。


やり方


stop.jsの内容を以下に変更する。

stop.js

//!*script

if (PPx.Extract("%*extract(C\"%%t\")").match(/^(txt|text|howm|jpg|jpeg|bmp|png|gif|cpp|h|c|l|el|html|htm|xyzzy|emacs|scm|ini|vbs|js|py|pyw|cfg|kif)$/i)){
} else if (PPx.GetFileInformation(PPx.Extract("%*extract(C\"%%FCDN\")")) == ":DIR"){ // ディレクトリなら何もしない
} else{
  PPx.Execute('*cliptext '+PPx.Extract("%*extract(C\"%%R\")")); // クリップボードにファイル名をコピー
  PPx.Execute('%K\"^@V\"'); // Ctrl+Vで貼付け
  PPx.Quit(-1); // 以降のコマンド実行を中止
}

クリップボードにカーソル下のファイル名をコピーし、それをCtrl+VでPPvに貼り付けています。

以下を編集して取込。これは前回と変わりなし。

KV_main = { ; PPvメイン窓
LEFT ,*execute C,*cursor 6,-1,4,B0000,0,B0000 %: *script %0\Script\stop.js %: *execute C,*ppv -bootid:A -r %%*name(CD,"%%R","%%1")
RIGHT ,*execute C,*cursor 6, 1,4,B0000,0,B0000 %: *script %0\Script\stop.js %: *execute C,*ppv -bootid:A -r %%*name(CD,"%%R","%%1")
UP ,*execute C,*cursor 2,-1,4,B0000,5,B0000 %: *script %0\Script\stop.js %: *execute C,*ppv -bootid:A -r %%*name(CD,"%%R","%%1")
DOWN ,*execute C,*cursor 2, 1,4,B0000,5,B0000 %: *script %0\Script\stop.js %: *execute C,*ppv -bootid:A -r %%*name(CD,"%%R","%%1")
SPACE ,*execute C,*script %0\Script\togglemark.js %: *execute C,*cursor 2, 1,4,B0000,5,B0000 %: *script %0\Script\stop.js %: *execute C,*ppv -bootid:A -r %%*name(CD,"%%R","%%1")
\SPACE ,*execute C,*script %0\Script\togglemark.js %: *execute C,*cursor 2,-1,4,B0000,5,B0000 %: *script %0\Script\stop.js %: *execute C,*ppv -bootid:A -r %%*name(CD,"%%R","%%1")
}

思ったこととか


クリップボードを利用するというのが少しだけ不満。クリップボード管理ツールと相性が悪いからだ。もっといい方法あれば教えてくだしあ

2015年5月13日水曜日

PPeを少しxyzzyっぽいキーバインドに

挨拶


つかさです。
小さいテキストファイルのちょっとした修正をする時は、PPeが使えるのではないかと気づいた。起動速度が非常に速いからだ。PPeでの編集は、PPcであればShift+E。PPvであればShift+EかCtrl+Eで可能。

そこで、よく使う最低限必要なキーバインドだけ、普段使っているxyzzyにあわせるようにしてみる。


やり方


  • C-x s ファイルを保存
  • C-x C-c 閉じる

とりあえずこの二つのみができるようにする。2ストロークキー入力に必要なので、入れてない場合はTORO's Libraryに行き、Paper Plane xUI Key Moduleを入れておこう。

以下を編集して取込。

-|K_xyzzy =

K_ppe = { ; PPe(K_ppeに該当しない場合はK_editも参照)
^X ,*setnextkey K_xyzzy
}

K_xyzzy = { ** comment **
S ,%k"^S"
^C ,%k"&F4"
}