ひまつぶし雑記帖

xyzzyとperlの連携でテキスト処理最強環境

2015/9/6 [23:59:56] (日) 天気

こないだからごそごそいじってるxyzzyのマクロとそこから連携するperlのスクリプト。
xyzzyのあまりの便利さ、ラクチンさ、フロントとしての有能さに今さらながら驚いた。もう15年ぐらい使ってるっちゅーのに。

エディタはxyzzy一択だろう(主語:おれ)

自分環境・自分作業内容に特化したマクロなので、誰にとっても有用・便利に使えるものではないけど、備忘録としてメモしておこう。
lispは手強い、というか他とは別モノなので、今回ごそごそ作ってるようなわずか数行のものでもネットで検索しまくり、デフォルトのlispフォルダをgrepしまくってやっと。明日にはもう忘れているであろう自分のためにもメモが必要なのだ。

てことで、先日までのマクロの振り返り。。

1)編集中のバッファの内容をtempファイルに書き出して
2)perlのスクリプトで処理して
3)処理された内容をバッファに読み込む

てところがキモ。

(2)のところ。
今日までは、処理してほしい内容について
(interactive "s[D]elSpace [T]ab4Space [M]akeEPUB [C]heck")
などと、マクロを起動したらperlでどういう処理をして欲しいのか、ユーザー入力を取得してperlに引数として渡すようにしていた。
でも、このユーザー入力のひと手間がけっこう面倒くさい。

面倒くさいものは続かない。そのうち使わなくなるのが目に見えている。
20分ぐらい考えて、macのCotEditorが外部スクリプトの引数に編集中のファイル名(フルパスで)を渡すことを思い出した。この動作をそのままxyzzyのマクロでも使うことにした。

そもそも、マクロを起動したらば。
編集中のファイルの拡張子が.plとか.pmだったらperlのシンタックスチェックをして欲しいし、編集中のファイルがeasy_epubフォルダ以下の.txtファイルだったらeasy_epub.plでEPUB電子書籍を作ってくれ。自分としては、いちいちユーザー入力を待って判定する必要はない。
ファイルと結びつかない新規バッファや*scratch*バッファで作業しているものに関しては、空白の削除やタブを空白4つに変換するなど、その時その場の小ネタ処理で決めうちできないので、ここはユーザー入力で動作を振り分けてもらいたい。

・フルパスのファイル名がわかっているものに関しては、パス・ファイル名を処理・動作の判断にしてくれ。
・ファイル名がわからないものに関しては、指示するからちょっと待てよ。

という自分リクエストを満たしたxyzzyのマクロがこの10行。


やってることは。
01:関数
02:この関数はマクロで呼び出せますよ
03:バッファを書き出すためのtempファイル名の設定
04:編集中のバッファがファイルと結びついてなければどんな処理をするのかユーザー入力待ち
05:tempファイルの削除
06:編集中のバッファをtempファイルに書き出し
07:perlに渡すためのバッチファイル(WINDOWSのダセエところだ)
引数としてフルパスのファイル名と、04の場合の入力された文字。標準入力経由でtemp-file、perlが処理した内容を受けとるところとして「*scratch*」バッファを設定。
08:バッファ全体をマークして
09:バッファをクリップボードにコピー

受けとるperl側は以下。長いのでpackageについては端折るけど。
・フルパスファイル名がわかっているものは、ファイルを読み込んで処理。
・ファイル名がないものは、一行ずつ処理したり、全部読み込んでから処理したり。
(第一引数はファイル名。第二引数がマクロの04で入力した文字)


いやもうほんと滅茶苦茶最強のテキスト処理環境のできあがりだ。
どのぐらい最強かというと、今日まさに立川で観てきた爆音「マッドマックス FR」のお婆ちゃんズぐらい最強だ(実写版ジブリだったなあ)

image 

»電子書籍制作代行についてはこちら

macのキーバインド設定

2015/9/5 [18:08:25] (土) 天気

オサレなmacユーザーは優雅にコーヒーを飲みながらタッチパッドやマウスを駆使するんだろうが、昭和レトロなわたしは麦茶をすすりながらもエディタを使ってる時にキーボードから手を離したくない・ホームポジションにしがみつきたい。

なんでタブを入れるのにいちいちタブキーなわけ?control+iにしてくれよ。
なんで改行するのにいちいちエンターキーなわけ?control+mにしてくれよ。
てことだ。

検索してみるとやはりmacの(というかcocoaの)キーカスタマイズ記事がかなりヒットした。
こちらの 『テキスト編集のキー操作を自在にコントロールする』 が丁寧でわかりやすい解説と有用なリンクがあってオススメ。

システム全体のキーバインド設定は
→「/System/Library/Frameworks/AppKit.framework/Versions/C/Resources/StandardKeyBinding.dict」

でも、こいつはテキストエディタで開くと文字化けして何のことやら皆目見当もつかないし、システム全体のものをいじるのはおっかないので、自分専用のキーバインド設定ファイルを使うことができる。
→「~/Library/KeyBindings/DefaultKeyBinding.dict」

わたしのmac OS 10.10.3にはディレクトリもファイルもなかったので
ホームディレクトリの下の「Library」フォルダに
「KeyBindings/DefaultKeyBinding.dict」を作成した。上記サイトを参考にcontorl+iでタブ入力というのだけの設定ファイル。
→{ "^i" = "insertTab:" }

その後「KeyBindingsEditor」というGUIでキーバインドの設定、キーカスタマイズができるアプリをダウンロードして(http://www.cocoabits.com/KeyBindingsEditor/)DefaultKeyBinding.dictに設定追加していった。

できあがったDefaultKeyBinding.dictが以下。xmlなのでわかりやすい。

これで、emacsもどきでxyzzyもどきとなった。
contol+xをプレフィックスキーにしたキーバインディングなんかも実現できる。

・control+spaceでカーソル位置をマーク
・control+iでタブ入力
・control+mで改行
・control+zでページアップ
・conrol+x control+vで文書末尾にジャンプ
・conrol+x control+zで文書先頭にジャンプ
・conrol+x uでundo

このあたり、よく使うものを設定した。

ただ、
control+x control+f→ファイルオープン
control+x control+s→ファイル保存
control+x control+w→別名保存
なんかが効かないなぁ。ファイル操作系は別なのかな。

しかし、これだけのことで格段に使いやすくなった。
日頃使うエディタのキー入力でストレスが減るのは本当にありがたい。
もちろん、出先のパソコンは、効率が落ちても、デフォルトで使うしかないけど、ウチで使うものに関しては「手に馴染んだやりかた」で使いたい。


以上、んなもん、とっとと設定しろよ、なにを今さら、という話。
image

»電子書籍制作代行についてはこちら

ゴミ屋敷の整理

2015/9/4 [18:18:30] (金) 天気

季節の変わり目だし、今日は各種バックアップ。
仕事系のディレクトリをzipでまとめて、USBメモリに。
雑記帖の画像をFTPでダウンロードしてzipでまとめて、USBメモリに。

仕事系はWEBにしろ、EPUBにしろ、細かいファイルがどっさりあって、万単位になっててびっくりというか我ながら呆れてしまった。何年分溜めこんで散らかしてんだよ。
雑記帖の画像も画像ディレクトリに1000を超えてたので、ディレクトリ単位でのバックアップが面倒くさくなっていた。

仕事系のファイル
そのまま放り込んでると非力なネットブックはエクスプローラで表示させるのにさえ時間がかかってしまう。意外なことにmacも細かいファイルのてんこ盛りには弱いらしく、Finderの動きが鈍くなってしまう。あちこち、目の前で必要のないものはまとめてUSBメモリに退避してもらった。zipでまとめたりファイルのコピーや移動をしてるだけで半日潰してるんだから、放置しすぎ。
一部バックアップ用のスクリプトを書いたので、明日からは少しはマシになる、はず。

雑記帖の画像
ひとつのディレクトリにたかだか1000程度のファイルがあったところで、レンタルサーバーは問題なしだけど、バックアップする手間を考えて画像フォルダを分けることにした。スクリプト中に散らばっている「images/」という生の単語をgrepしまくり、新たにそれ用に書いたサブルーチンが返すものに変更。さらに増えても今後はサブルーチンの部分を変更するだけで大丈夫(最初からきちんと考えて作っとけ、って話だ)


ついでに中途半端に投げっぱなしのxyzzyのマクロから呼び出すスクリプトも。
easy_epub(などのepub作成スクリプト)を呼び出して、編集中の文書のepubを作成。作成したepubをepubcheckにかけてエラーをチェック。さらにepubをbib/iフォルダに解凍。エディタのバッファに表示されるリンクを叩けばEPUBの確認ができる。
こんなものはバッチファイルでいいじゃん、てことでも、エディタ(xyzzy)作業中にエディタから抜けて別操作するとなけなしの集中力が削がれるので、予想以上に捗る。昭和の頃は、パソコンユーザーはパソコンを使ってる時間の8割以上はエディタを使ってる、と言われてたくらいだ、エディタべったりで安心できる。

また、今までは、作ったepubファイルをいちいちmacにコピーしてibooksでチェックしてたけど、 BiB/i のおかげでwindowsのネットブック、chromeでの確認となってひと手間減った(最終的にはibooksで確認するけど、途中途中での確認作業はwindowsでイケるのがありがたい)
これはほぼそのままCotEditorのスクリプトメニューに登録しても使えるなあ。

はなっからmacでCotEditorで作ればいろいろ捗りそうに思われるかもしれんが、我が家のアドビ神はすべてwindows版なのだ。うーむ。

image

»電子書籍制作代行についてはこちら

Ingress Lv16への仕込み

2015/9/1 [14:52:47] (火) 天気

今日、Sojournerがプラチナとなった。
これは24時間以内にHackし続けた日数=毎日Hackし続けた日数が実績となるメダル。雨の日も風の日もカンカン照りの日も毎日最低1回、180日間休まずにポータル詣したらご褒美にプラチナをいただけた。健康祈願の御百度参りみたいなもんだ。
オニキス(黒)メダルは360日間…さすがにこれはどうだろか。

これでとりあえずレベル上限のlv16が見えてきた。

今、lv14(獲得APが約2200万)で、lv15にはメダルは揃っていて後APが200万ほど。
lv16はオニキス(黒)メダルが2つ、プラチナメダルが4つ、APは4000万(lv15からだと1600万)。前にも書いたけど、「Recharger」「Sojourner」「Translator」「Trekker」は難易度の低いメダル。
この4つ、Recharger以外は後から追加されたメダルでlv16に必要なプラチナ4とオニキス2つはこの4つで行けてしまう。黎明期からやってる古参エージェントのlv16よりはハードルが低い。他のメダルでプラチナはかなり大変。先が見えなくて気が遠くなるか、朝昼晩深夜と四六時中アクションしている廃人になるか、だろう。

lv16に向けてAP稼ぎをしている間にも、たぶんRechargerとTranslatorかTrekkerでオニキス2つは獲得できそう=lv16のメダル条件クリア。
(Rechargerの伸びが意外だった。自分のレベルが上がるとリチャージできる量も増えるので、Rechargerメダルの実績が稼ぎやすくなるんだなあ)

image 

プラチナ
Recharger 遠隔で見方ポータルの回復
Sojourner 24時間単位でハックし続けた日数
Translator グリフハック成功ポイント
Trekker 歩いた距離

Builder デプロイ数
Connector リンクを張った回数
Explorer ユニークポータルのハック数
Guardian 自ポータルの維持日数
Mind Controller CF作成数
Pioneer 初めてキャプチャしたポータル数

Engineer 自陣ポータルへのmod差し回数
Hacker ハック回数
Illuminator CF作成時のmu獲得数
Liberator ポータルのキャプチャ数
Purifier 敵のレゾネーター破壊数
SpecOps クリアミッション数【Ingressネタ】
京成の一日周遊切符「下町日和きっぷ」 (2014/10/4)
ポータル巡礼1万8000歩弱 (2014/10/11)
Ingressで連日1万歩 (2014/11/9)
Ingress Lv9になった (2014/12/21)
Ingress Lv10になった (2015/1/6)
下町日和きっぷで2万5千歩のポータル散歩 (2015/1/12)
Ingress Lv11になった (2015/5/4)
Ingress Guardianで金が獲れてLv12になった (2015/6/17)
Ingress Lv13になった (2015/6/30)
Ingress Lv14になった (2015/7/3)
Ingress ガーディアン金の呪い (2015/7/20)
Ingress Lv16への仕込み (2015/9/1)
Ingress Lv15になった (2015/10/3)
Ingress LV16 カンストとなった (2016/3/29)

»電子書籍制作代行についてはこちら

ネットはフリーだ

2015/8/31 [12:33:14] (月) 天気

LINEの定額音楽聞き放題サービスが話題だった。
無料キャンペーン期間が終了して、有料プランとなってユーザーが離れてるそうだ。
月額(30日)固定有料プランは「ベーシック」500円「プレミアム」1000円。学生の場合は学割もある。

『LINE新サービスに批判殺到 「潮を引く」ようにユーザ離れ加速の深刻事態』
http://biz-journal.jp/2015/08/post_11155.html

「ずっと無料にしてほしい。 無料期間終わったら30秒しか聴けないとか、何様だよ」
「学割とか何よ。無料で聴かせてよ」
「無料期間にダウンロードした曲も買い直さなきゃならないのか」
「無料じゃなくなったLINE MUSICはアンインストールするしかない」
「今度はAWAの無料お試しに移行する」
「LINE MUSICよりMusicBoxがいい」


これらの反応を見ると、若者の間に「音楽は無料で聴けて当たり前」という感覚が醸成されつつあるのではないかと感じる。企業側が、販売促進のために一定期間無料サービスをしているのに、サービス期間が終了すると文句を言われてしまうという状況には同情すらしてしまうが、「お金を払うだけの価値がない」と思われてしまったことの表れでもある。



最初、脊椎反応で、どんだけ乞食やねん、とか思ったんだけど、これはコンテンツをエサに使ってきた企業自身が育てた土壌だ。
商売が広告モデルというやつで、人を集めてなんぼ。そのためにコンテンツをタダで配ってきたから。そりゃユーザーとしては何をいまさら金取るわけ?となるだろう。コンテンツに対価を支払うという発想にならない。

『フリー ―<無料>からお金を生みだす新戦略』(クリス・アンダーソン) が話題騒然となったのは5年ぐらい前だっけ。ネットの未来はこれだ、と言わんばかり。誰もかれもが「フリーだ」と叫んでたような気がするけど。
で、フリーからお金を生みだせてるのかな。良質なコンテンツが生まれる土壌はできてるのかな。

音楽に限らず、クリエイターがワシントン条約の絶滅危惧種、レッドデータブックに記載される日も近いのではないか。

なんか残念。

…て、一昨年の4月にも同じようなこと書いてんなぁ。繰り言は爺の特権なので許してつかーさい。→ 『電子書籍無料キャンペーンの効能』

image 

»電子書籍制作代行についてはこちら

CotEditorのスクリプトメニュー

2015/8/28 [10:25:31] (金) 天気

xyzzyに身体が馴染み過ぎていて、エディタが必要な作業の場合は普段使いのmacからWINDOWSに移動している。
macでは最初Emacsを使ってたんだけど、なんか大袈裟だし日本語の表示が乱れたりしたこともあったので(mac統合環境の上でEmacs統合環境を立ち上げる、てな感じだしなあ)、miとCotEditorをインストールしてみて、とりあえず最新版が新しい方、CotEditorを使うことにした。
とはいえ、どうせエディタ作業はWINDOWSでxyzzyでやるし、てきとーでいいか、と放置状態。

先日、xyzzyについての雑記で、編集中のバッファを外部コマンドに渡して処理結果を受けとり編集中のバッファを書きかえる、とか、クリップボードにコピーする、なんてことを書いていて(http://t2aki.doncha.net/?id=1440225861)、CotEditorのスクリプトメニューを思い出した。

本職のプログラマはどんな処理系も使うけど、わたしはド素人なもんで、perlが使えると本当に助かる。ていうか、perl以外はよくわからんし。
CotEditorのスクリプトを使えば外部のコマンドと標準入出力でやりとりできる。シェルスクリプトやperl、php、rubyなんかがCotEditorから使えるのだ。

てことで、調べてみた…って、CotEditorのScriptMenuフォルダにマニュアルがあった。
やるべき設定としては以下の2つ。

【その1】
スクリプトの置き場所とファイル名。
~/Library/Application Support/CotEditor/ScriptMenu/ 

ファイル名でキーボードショートカットなどを使える。

*. キーボードショートカットは、もう一つの拡張子を追加すれば実装できます。
例 2.
 ファイル名 = "Insert String.@e.scpt"
 メニュータイトル = "Insert String" + Command + E


スクリプトはchmodで755にしておく必要がある。

【その2】
スクリプトのCotEditor用の書きかた。
冒頭1行目はお約束の「#!/usr/bin/perl」で、それに続けて。
# %%%{CotEditorXInput=xxxx}%%%
# %%%{CotEditorXOutput=xxxx}%%%
この2行。

Input(CotEditorからの入力)のxxxxには
「Selection(選択部分)」
「AllText(ドキュメント全部)」
「None(なし)」

output(スクリプトの出力先)のxxxxには
「ReplaceSelection(選択部分を書きかえる)」
「ReplaceAllText(ドキュメント全部を書きかえる)」
「InsertAfterSelection(選択範囲の後ろに挿入)」
「AppendToAllText(ドキュメントの末尾に追加)」
「Pasteboard(クリップボードにコピー)」
「Discard(出力を使わない)」


設定を把握したら。
まず試しに、編集中のテキスト1行ずつHTMLのPタグをつけてみる。
image
↑こんなスクリプトを「test.@p.pl」という名前で
「~/Library/Application Support/CotEditor/ScriptMenu/ 」に保存。
image
スクリプトメニューに「test」というメニューが現われ、キーボードショートカットが「コマンドキー+p」に割り当てられている。

テキトーな文章に
image
pタグをつける
image
こんなことは、エディタの置換だけでできるのでわざわざ外部スクリプトにする必要はない。
これの美味しいところは、このスクリプト「test.@p.pl」をその場で書き換えても、エディタの再起動などする必要なく、反映してくれるところ。使い捨てのテキトーなスクリプトのブラックボックスとして利用できる。

これができるなら、macでもエディタをちゃんと使おう。

image

ちなみに今回ちょっとハマったところがあって。

macのファインダーに「ライブラリ」フォルダなんてないよ!どうすんだよ!CotEditorでスクリプトを書いて保存しようとしたら「ライブラリ」フォルダが出てこなくてビックリだ。いちいちデスクトップなんかに保存してコマンドラインでコピーするわけ?

検索したらば「ファインダー」でホーム画面を開いて「表示」→「表示オプションを表示」→「"ライブラリ"フォルダを表示」にチェック。
macは隠し事が多い、いけすかない野郎だなあ。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
名前:
飯田哲章
mail:
t2aki@mrh.biglobe.ne.jp
twitter:
t2akii

WEBサービス制作/電子書籍制作

検索
<<2017/9>>
     12
3456789
10111213141516
17181920212223
24252627282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

iPhone電子書籍アプリ
小説同人誌Select iPhone電子書籍アプリ
『小説同人誌Select』

[472 Page]« »
11 12 13 14 15 16 17 18 19 20

TOTAL:2830

2017 (22)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (2)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)