View on GitHub

AFXW

AFXWの演習

あふ入門

このドキュメントは,Windowsユーザー向け,特に画像処理エンジニアへの2画面ファイラの導入を勧めるための情報です. 特にに2画面ファイラのあふ(afxw)について説明します. このあふは,FDライクなテキストベースの2画面ファイラです.

2画面ファイラと聞いてピンとこない人は5分ほど2画面ファイラやFD,あふなどの検索ワードでWebを検索して雰囲気をつかんでください. (イントロを自前で作るのを省略)

この文書は,独習シリーズっぽく,一人で学べる独習あふを目指した文書です. あふの正式名称はあふwだが,ここではあふと書く.文章の視認性的にひらがなのあふは埋もれて見づらいため,だいたいAFXWと書かく. ___

目次

Todo

はじめに

画像処理をやっている人の主な作業は主に以下のような作業です.

通常,このような作業をするときには,Windowsネイティブのエクスプローラ(インターネットエクスプローラーではなくて普通のフォルダアイコンを押すと出てくるウィンドウのことをエクスプローラーと呼ぶ)で行うと,以下のような作業を行うことになります.

ファイル編集する場合

  1. エクスプローラーの起動
  2. ドキュメントなどをクリック
  3. ファイルを探しながら目的のフォルダまで移動
  4. 目的のファイルを見つけてダブルクリックして実行

ファイル整理する場合

  1. エクスプローラーの起動
  2. ドキュメントなどをクリック
  3. ファイルを探しながら目的のフォルダまで移動
  4. 目的のファイルを探してダブルクリックして実行し中身を確認
  5. 必要なファイルを目的のフォルダにコピーや移動や削除
  6. もし目的のフォルダ位置が探したファイルと違う位置にある場合は,もう一つエクスプローラーを起動して移動先まで同上

そのほか,コマンドプロンプトの立ち上げ時にカレントディレクトリが違って毎回cdしないといけないとか,gnuplotのカレントディレクトリが同様に違ったりと,いろいろなわずらわしさがあります. (エクスプローラのファイルパス入力欄でcmdと打つとそこをカレントディレクトリにしてコマンドプロンプトが起動するっていう小技を知っていると楽)

これらの動作は,非常に工程数が多く,たくさんのマウス操作とダブルクリックが必要になります. また,無数のファイルの中から適切なファイルを見つけることは大変です.

あふではこのような操作をすべてキーボードショートカットかつ,できるだけ1画面で納めることで高速化し,普段の作業効率を劇的に改善します.

ダブルクリックする時間やファイル名で目的のものを見つける時間はたかがしれていると思うかもしれません. 実際に,おそらくその時間の短縮は対して作業効率の向上には寄与しないでしょう. しかし,人間の短期記憶は複雑な作業を記憶しておくことができず,これをこっちのウィンドウにコピーして,一回リネームしておいて,このファイルを...といった作業をやろうとするとすぐにやろうとしていた作業を忘れてしまうため意外とファイル整理には時間がかかります. しかも,中身を確認するためにダブルクリックして,テキストエディタ,pdfビューアやら画像ビューア,ワードやエクセル,パワーポイントや圧縮ソフトなど様々なソフトウェアが起動して画面が散らかりさらに混乱します.

これらが改善することで,効率化が進みます.

あふでできること

あふで出来ることはたくさんありますが,通常のダブルクリックによるファイル実行に相当する作業は当然として,代表的なものを列挙すると下記のようなことが出来ます.

演習の目的

この演習は,あふw(AFXW)の操作方法をほぼすべて学習することが目的である. 「ほぼ」とは,AFXWの拡張方法についてはそれほど多くは言及していないという意味である.

この演習中に,迷ったらF1でヘルプ表示,もしくはCTRL+ALT+SHIFT+任意キーの同時押しで該当キーのヘルプ表示の機能があることを覚えておくこと. また,ヘルプをEnterで選択したら,該当する命令が発行可能である. ただし,画像モード,閲覧モードはF1ヘルプ表示のみであり,加えて,そのヘルプから命令実行はできない(誰かが作ってくれてもいい). また,SHIFT+F1で現在登録しているファンクションキーのヘルプを出す(コマンド割り当てなし).

文中のs-Aの意味は,SHIFT+Aの同時押しの意味である. 下記に,同時押しの一覧を示す.

c-[a-z0-9]などの,CTRLキーだけの同時押しは特殊な割り当てであり,各キーを先頭文字として持つファイルへのジャンプ命令である.

s-a-AなどのSHIFT+ALT+任意のキーには,今のところコマンドを一つもアサインしていない. 使ってはいけない決まりがあるわけではないため,カスタマイズする時に使って問題はない.

なお,【応用】と書かれた課題は,あふを拡張するところまで学習したい人以外は実施しなくてよい.

プログレスについて

演習の残りがどれくらいか確認するために,各演習で使ったキーを削除していくことで進捗を可視化する. 配布したAFXWに割り当てられているショートカットキーは以下である.

ABCDEFGHIJKLMNOPQRSTUVWXYZ-^\@[;:],./_0-9F1-12INSDELTabBSPgUpPgDn

なお,演習で使ったのに該当キーが残っている場合は,後からさらに詳細が述べられるキーである. また,この文字列の後半は特定なキーを指しており,キーボードによっては以下のように記載されている可能性もある.

この説明は,自分のキーボードの位置はこれとは違うっていう,こだわりがある人に対する説明ではない. なお,101キーボードやHHKを使ったときに,この演習のキーバインドはかなり都合悪いのため,頑張って拡張すること.

注意書き

特に研究室の学生向け

afxw内にあるこの二つは,検索ワードの履歴やコマンド出力結果の履歴が保存されている.

また, \fastcopyの中のFastCopy2.iniや.logにも注意.

そのため,afxw自体を演習課題でアップするようなことがあれば,その時は必ず注意すること. パスワードや,外部に機密にする内容が履歴などが入っているとも限らない. ___

インストール

  1. githubからcloneしたら以下に展開.
     C:\bin\afxw64
     C:\bin\ffmpeg
     C:\bin\winmerge
     C:\bin\gnuplot
    
    • ffmpegはafxw64/installにある.
    • winmerge, gnuplotは適宜ダウンロードすること
    • 内部の参照関係で,winmerge,gnuplotの呼び出しの場所がそれぞれ1か所だけ相対パス指定してあるので,この構造である必要がある.(ファンクションキーによる演習以外では必要ない.)
    • 慣れた人は,自分の環境に合わせて設定を変えてもよい.
  2. VC2013の再配布パッケージをインストール.

    afxw64/installフォルダにあるvcredist_x64.exeをインストール.もし,pdfの出力回りで動作しなかったらこれじゃないかも.x86が正しい気もする.(afxexecに必要)

  3. まずはダブルクリックして起動.そして,zキーを押して,そのタブのaboutでオートメーションサーバを登録をクリック.(afxexecに必要で登録と解除がトグル)

  4. そのタブのプログラム(6)におけるエディタを自分のエディタに変更.

    デフォルトは下記のsublimetextかVisual Studio Codeになっているが同梱していないため,notepad.exeか自分の使っているエディタにする.

     %afxw%\..\sublimetext\sublime_text.exe
    

    参照を押して,自分の普段使っているエディタ(atom,visual studio code, 秀丸,サクラエディタなど)に変更すればよい.

  5. その他インストール
    • pnuplotのインストール(インストーラではなくzipをbin/gnuplotに展開)
    • winmergeのインストール(インストーラではなくzipをbin/winmergeに展開)
    • image magickのインストール(画像からpdfへの変換ができません.)
    • tex環境のインストール(pdfcropが動きません).
  6. キーの入れ替え

    【重要】 キー配置の押しやすさは.Caps LockとCtrlは入れ替わっている前提である.入れ替えをすることを推奨する. 例えばkeyswapなどを使うとよい.

導入

ディレクトリの移動

まず,基本となるディレクトリの移動について覚える. ディレクトリ移動コマンドは下記である.

また,以下の終了コマンドも覚えること.

課題

sandbox0の中に入り,移動を覚えよ.

  1. このフォルダのどこかにあるreadme.txtを見つけよ
    • s-Fで検索がかけられるのでそれで見つかるが,そういう目的ではない
    • s-Enterで逆窓に開いていくと見つけやすいかも
  2. a-→,a-←で履歴をたどれ
  3. あふを終了せよ.

プログレス

ABCDEFGHIJKLMNOPRSTUVWXYZ-^\@[;:],./_0-9F1-12INSDEL

ヘルプの閲覧

F1でヘルプが閲覧可能である. 迷ったときはヘルプを見よ.

課題

  1. F1キーを押して,どんなことができるのか確認してみよ.
  2. 各キーをc-a-s-任意のキーの同時押しでそのキーのヘルプが出る. また,出たメニューを選択してEnterで命令が発行される. この動作を確認せよ.
    • ただし,特にDの削除キーの命令の発行には注意すること. 選択したファイルが削除される.

プログレス

ABCDEFGHIJKLMNOPRSTUVWXYZ-^\@[;:],./_0-9F2-12INSDEL

表示サイズの変更

InsertキーIns,DeleteキーDelで文字サイズを変更できる. デフォルト設定が大きすぎると思ったら変更せよ. ただし,左右で文字の大きさの設定が独立なので注意すること.

なお,Zの設定フォント(4)で,表示のフォントを変えるなど,より詳細な設定ができる.

課題

文字サイズの大きさを調整せよ.

プログレス

ABCDEFGHIJKLMNOPRSTUVWXYZ-^\@[;:],./_0-9F2-12

フルスクリーン表示・透過

以下のコマンドで画面の最大化と通常の状態がトグルする

また,半透過のコマンドが以下に割り当てられており,最大化時に隠れている後ろの画面が見える.

なお,透過設定はあふを再起動すると消える.

課題

  1. 最大化,もとに戻すを[連打でトグルせよ.
  2. 透過をさせることで,後ろの画面を見よ.

プログレス

ABCDEFGHIJKLMNOPRSTUVWXYZ-^\@;:],./_0-9F2-12

コメント

現在F12はgnuplotに割り振っているが最大化トグルを割り振ってもよいかも.いろんなソフトがF12が最大化のショートカットだったりする.

表示がおかしい・固まったときには?

ひとまず使えるようになるために

【そのうち詳しく書く】 この文章全体は詳しすぎなので,覚えるのが大変. もっと抜粋して,優先順位をつけて短く書けると,導入としてうまくワークする.

下のリストぐらいが,とりあえず覚えればいいもの(要検証).

==絶対に必要==

==知らなくても,とりあえず使える==

==知っているともっと効率的==

またエンターキーは三つの押し方があり,それぞれで動作が異なる.

Enterがデフォルト動作であり,s-Enterが少しマイナーな動作である(マイナーな動作は定義していないこともある).

c-Enterはエクスプローラーでファイルをダブルクリックしたときと同じ動作であり,「関連付け実行」 と呼ぶ. つまり,exeを実行したり,フォルダをエクスプローラーで開いたり,ワードやエクセルファイルを開いたりする動作であり,起動するとあふから離れることになる実行である.

以下ではそれぞれのファイルについての挙動を詳しく述べる.

なお,挙動を確認するためのファイルを用意できないときには,以下のサイトなど,Webのコンバータサービスを使ってファイルが開けるかどうかのサンプルファイルを作るのもよい.

テキストファイルの閲覧

特定の拡張子ではない場合のすべてでテキストビューとして開かれる. つまり,txt, md, html, tex, ini, cpp, hやその他様々な拡張子のファイルはすべてテキストとして開かれる.

また,このテキストビューモードでは,通常のファイルマネージャーのモードとは異なるショートカットが割り当てられている. それもF1でキーが割り当ててあるため一読すること. なお,通常のファイルマネージャーモードと違って,実行コマンドまで実装していないため,閲覧専用である.

ショートカットとして,vimのようにH, J, K, Lでカーソルが動く. Gs-Gで文頭,文末,Vで終了など(あとで述べるがVVの2キーストロークで開いて閉じることができる). そのほか,c-Spaceでカーソルが出る.その際,H, J, K, Lでの移動の動作も変わり,上下左右の移動ができるようになる.

また,テキストビュー中でTabキーを押すと16進数のバイナリファイルとして閲覧することもできる. このようにバイナリ・テキストを切り替えられるとたまに便利である.

Vキー(View)で,すべてのファイルをテキストだと思って開くこともできる. その場合は,Vキーでファイルを閲覧すると,jpgだろうがzipだろうが,設定を無視してテキストとして閲覧しようとしてバイナリファイルが見える. 拡張子が間違っていて,うまくファイルが開けないときに,バイナリモードとして開いて先頭ヘッダを見れば中のファイルがどのような物なのか分かったりする.

Eキー(Edit)でテキスト編集ソフトでファイルを開くことができる. これは,関連付け実行とは違ってあふの中で設定されたソフトが開く. 開かれるエディタは,Zによる設定のプログラムのエディタに記述されたソフトである. なお,テキスト編集については次に演習がある.

課題

  1. テキストを閲覧し,カーソルを移動させよ.
  2. テキストファイルをc-Enterで関連付け実行してファイル閲覧せよ.
  3. テキストファイルをEキーでテキスト編集ソフトで開け.
  4. テキストビュー中にF1でヘルプを開き,通常のときのヘルプと異なることを確認せよ.
  5. H, J, K, Lでカーソル移動せよ.
  6. テキストがコピペできることを確認せよ.
  7. Vキーで,JPEGのファイルを閲覧しヘッダの先頭のほうにJFIFという文字があることを確認せよ.
  8. Vキーで,GIFのファイルを閲覧しヘッダの先頭にGIFという文字があることを確認せよ.
  9. 閲覧中にTabを打って16進数表示と通常の表示を切り替えよ.もう一度Tabでトグルする.

プログレス

ABCDEFGHIJKLMNOPRSTUWXYZ-^\@;:],./_0-9F2-12

テキストファイルの編集

テキストファイルは,ビューアだけでは編集できないため,notepadなどのテキストエディタで開く必要がある. c-Enterの関連付けで開いてもよいが,拡張子が.txtでないとうまく開かないことが多く,cppなどではVisual Studioが起動してしばらく固まってしまう. そのため,以下のショートカットキーE (Edit)が設定されている.

なお,テキストエディタは,インストールのところで設定したものが起動する. また,新規にファイルを作る場合は,ボタンを押した窓にファイルが作成される. さらに,テキストビューモード中もEでエディタが起動できる.

後に詳細を述べるが,Bキーのランチャの先頭にエディタが設定してあるため,エディタが開きたいだけならそのキーでも良い. ただし,デフォルトはSublime TextかVisual Studio Codeになっているので各自編集が必要である. ここでは,ひとまずnotepadに書き換えておく. Bを押して,一番下のeditから,テキストが開いて,2行目に以下のものが書いてある.

;"notepad"  notepad.exe

これは,notepadのショートカットの記述をセミコロンでコメントアウトしている. セミコロンを消せばnotepadが有効になる. なお,このようなメニューファイルの編集はあふを再起動しなくても編集して保存次第機能が有効になる.

課題

  1. テキストエディタを起動せよ
  2. テキストを新規に開いて保存せよ
  3. notepad(メモ帳)で開け.
  4. テキストビューモード中にエディタで開け
  5. もし,テキストエディタとしてnotepadを使っている人がいれば,Sublime Text, Atom, Visual Stdio Code, emacs, xyzzy, vim, サクラエディタ,秀丸エディタなんでもよいのでエディタを設定せよ.

プログレス

ABCDFGHIJKLMNOPRSTUWXYZ-^\@;:],./_0-9F2-12

圧縮ファイルの閲覧

圧縮ファイルを閲覧するとき,通常のディレクトリと同じように中に入ることができる. 対応する拡張子は以下であり,おおむね現在流通している圧縮ファイルのほぼすべてのファイルを開くことができる.

zip cab lzh rar 7z tar gz tgz bz2 lzma xz jar

圧縮ファイルの中でもテキストの閲覧や画像の閲覧,ファイルのコピーなど通常通りにできる. また,圧縮ファイルの書庫へコピーすると,圧縮ファイルへファイルを追加することができる(これは,後の演習で行う).

圧縮ファイルの深い階層に入っているときから,元のディレクトリに戻るときは,いちいち矢印を押して戻らずとも以下のショートカットで簡単に抜けられる.

なお,圧縮ファイルの中で,pdfや動画を圧縮ファイルとして開こうとすると,AFXWが固まり,ZBYPASSA.SPHのプロセスがゾンビ化するので注意.

課題

  1. 様々な圧縮ファイルを閲覧せよ.
  2. zipファイルを関連付け実行し,エクスプローラーが起動することを確認せよ
    • 環境によっては展開のソフトが起動する人もいるはず.
    • Todo: 事前にいろいろなファイルを誰かが用意しておくと良い.
  3. 圧縮ファイルの深いところから一気に抜けよ.

プログレス

ABCDFGHIJKLMNOPRSTUWXYZ-^\@;:],./_0-9F2-12

画像ファイルの閲覧

画像モードによる閲覧

画像は,画像モードとしてファイルを開くことができ,以下の拡張子に対応している.

jpg png gif bmp ppm pgm pbm jpeg jpe tif tiff webp jp2 ico wmf emf eps

モードには通常のファイルマネージャーモードと,テキストモード(テキストビューモード)とこの画像モード(画像ビューモード)の三つがある.

テキストモードと同様に,画像モードもショートカットがファイルマネージャーモードと異なるのでF1で確認すること. 主要なショートカットは以下のキーである.

+,-,[(END),],(HOME),A,M,O,c-S,c-C

詳細は演習で述べている(TBD:演習からここに記述を編集してここに書く).

s-Gで画像モードのキー操作をスライドショーモードとスクロールモードに切り替えることができる. スライドショーモードでは矢印キーで次の画像に送ることができ,スクロールモードでは画像ないの閲覧位置を矢印で操作できる. 言い換えれば,スライドショーモードになっていないと,矢印で次の画像に送れない.

あふの一番下の情報窓で,SLIDと書いてあったら,スライドショーモードSCRLと書いてあったらスクロールモード. スライドショーモードであっても,SHIFT+矢印で移動はできるので原則スライドショーモードを使っていればいい. このモードは,あふを終了しても引き継いでいるので,なぜかページが遅れなくなったらこの設定が変わったと思っておくこと. 画像モードで次のページに送れなくなったらs-G

なお,少し拡張したら,HEIFも閲覧可能にできる.必要であれば,afxw_extention.mdを参照のこと.

サムネイル表示

画像モードではなく,ファイルマネージャーモード時で表示形式を切り替えるショートカットに以下がある.

特にサムネイル表示は画像を閲覧しているときに有効に使うことができる.s-.でのサムネイル表示は,もういちど押すことで,テキスト表示とのトグルができる.

SHIFT無しの.はアイコン表示のトグルであるが,普段は必要ないため非表示推奨する.なお,.はおそらく,拡張子のセパレータである.記号を意味している.

画像ビューア

画像を閲覧するときにWindowsネイティブのソフトウェアや,ペイントを使っている人がいたら,画像閲覧ソフトとしてirfanview をインストールすることを推奨する.

これは,軽い,対応画像フォーマットが多いなど,画像処理をサポートするのに十分な機能を持っている. ただし,特にあふの内部設定ではirfanviewを使っていることはないため,なくても問題なく動作する.

以下,簡単なインストール手順である.

  1. 最新のirfanviewの本体とpluginをダウンロードしてインストールすると下記にインストールされるはず(プラグインがないと,対応する拡張子が少なくなる.).
     C:\Program Files\IrfanView\i_view64.exe
    
  2. irfanview,日本語化などで検索して,Japanese.dllを探してくる. 対応バージョンが古いが無視.一部英語のままになるが問題ないはず.
  3. Japanese.dllをLanguagesフォルダにコピーし,irfanviewの画面上でpを押してlanguageを選択してjapaneseを選択.

課題

  1. 様々な画像ファイルを画像モード閲覧せよ.
  2. 関連付け実行(s-Enter)で,画像を開け
  3. +/-で画像を拡大縮小せよ
  4. HOME, ENDもしくは[, ],で原寸表示,画面フィット表示を切り替えよ.なお,解像度の大きい画像を閲覧せよ.(小さいと意味がない) (Todo事前にいろいろなファイルを用意しておくと良い.)
  5. 3の縮小表示時にAキーを押し,アンチエイリアスの有無を確認せよ.(文字が表示されている画像だと分かりやすい.)
  6. Mキーで画像表示のモードを切り替えよ.(連打でトグル)
  7. O(もしくはI)で,画像モード中でも関連付けされた実行ファイルで開くことができるのを確認せよ.
  8. ファイルマネージャーモード自に,s-.でサムネイル表示ができることを確認せよ.(連打でトグル)
  9. c-Cで画像をクリップボードにコピーし,画像編集ソフト(irfanview, paint, pptなど)に張り付けよ
  10. c-Sで「逆窓に」画像を保存できる(bmp, jpg, png, gif, tif).保存できることを確認せよ.
  11. スライドショーモードとスクロールモードを切り替えて動作を確認せよ.

プログレス

ABCDFGHIJKLMNOPRSTUWXYZ-^\@;:],/_0-9F2-12

オフィスのファイルの閲覧

ワード,エクセル,パワーポイントなどのMS Officeのファイル(doc, docx, xls, xlsx, ppt, pptx)の簡易的な閲覧もあふ内で完結して実行可能である.

基本はc-Enterの関連付け実行でファイルを開くが,このような操作は処理が重たい. 中身を少し確認したいだけなら,単純にEnterを押すと先頭7行がメッセージ窓(分割された2画面の下の狭いウィンドウ)に表示されるように拡張済みである. 中身を確認するには,先頭のタイトル情報だけで十分なことが多いため,非常に便利になる. なお,複数AFXWが起動している場合,一つ目のAFXWにメッセージが出力されている可能性が高い. メッセージが出ない場合は,その点に注意すること.また,ファイルの形式によってはうまく出力されないこともある.

なお,全文は,先頭だけ閲覧したのちに,でテキストモードで見ることができる. 内部的には,stdout.txtを参照しているだけであり,標準出力結果がここに上書きされるため,最も直近のテキストファイルしか閲覧できない. 詳細は,下記の拡張の方法を参照のこと.

また,オフィスファイルは,xmlをzip圧縮しただけであり,.docxの拡張子を.zipにリネームすると展開することができ,内部の画像ファイルなどを取り出すことができる. このような動作を再現するためにshift+enterでオフィスファイルを書庫として開くように設定してある.

課題

  1. オフィスファイルをEnterで開け.
  2. ,キーで全文を確認せよ
  3. オフィスファイルをc-Enterで関連付けで開け
  4. オフィスファイルをs-Enterで開き,内部の画像を取り出せ
    • 画像の入ったワードやパワーポイントファイルを準備する必要

プログレス

ABCDFGHIJKLMNOPRSTUWXYZ-^\@;:]/_0-9F2-12

オフィスのテキスト閲覧の拡張の方法

  1. afxtoolsのafxexecを使って,コマンドラインの標準出力をあふのメッセージ窓で受け取れるようにする(要オートメーションサーバ)
  2. xdoc2txtでオフィスファイルをtxtに変換する(リダイレクトでstdout.txtに出力している).
  3. stdout.txtをheadコマンド(バッチファイルで作った)で先頭n(n=7)行表示する.

pdfファイルの閲覧

pdfファイルも基本は関連付け実行で閲覧する.

しかし,オフィスファイルと同様に,Enterキーで先頭7だけテキスト表示することができ,全文は同様に,で参照可能である. また,s-Enterには,pdfを画像(bmp)として展開し,書庫として開く機能に割り当ててある.

このようすることで,論文等,大量にダウンロードされたpdfファイルをいちいち開いて中身を確認しなくてもよくなるため,ファイルの整理が楽になる.

テキスト閲覧と画像閲覧,どちらを優先したいかは人によると思うので,優先順位が逆だと思う人は, Zキー設定の拡張子判別実行(7)のpdfでEnterとShift+Enterに書いてあるコマンドを上下入れ替えること. (スワップするボタンはないので手動で.)

なお,pdfを画像で表示すると解像度が足りないと感じる. そのため,原寸表示の]と画像全体表示の[による切り替えや,アンチエイリアスの有無のAキー,拡大縮小の+-キーなど,画像モードのショートカットを体得しておくと便利である.

また,zipファイルの中のpdfを画像で見ようとすると固まることがあるので注意.

重要

Adobeのpdfビューアは重たいので,SumatraPDFやFoxit Readerなどの別途高速なビューアをインストールしておくとよい. texインストール済みならSumatraPDFはインストール済みのはず. またpdfの編集は,本学だと,PDF-XChange Editorがライセンス済み. なお,正しく表示するためにAcrobat Readerのインストール自体は必須.

課題

  1. pdfオフィスファイルをEnterで開け.
  2. ,キーで全文を確認せよ
  3. pdfをc-Enterで関連付けで開け
  4. pdfをs-Enterで画像として開け.
  5. 表示した画像の表示を[,],+,-,A,Mなどで切り替えよ.

プログレス

ABCDFGHIJKLMNOPRSTUWXYZ-^\@;:]/_0-9F2-12

動画ファイルの閲覧

動画ファイルは,基本は関連付け実行で開くと思うが,動画ファイルも画像として展開してbmpとして開くことができる. s-Enterに加えてEnterキーにその機能が割り当てられている. この動作はpdfと非常に近い.

要FFMPEGかつ,FFMPEGが規定のディレクトリ指定に存在しないといけない. 設定の詳細はafxw_extention.mdのpdf表示関連の設定を参照のこと.

課題

動画を画像ビューアで開け.

プログレス

ABCDFGHIJKLMNOPRSTUWXYZ-^\@;:]/_0-9F2-12

exeファイルの閲覧

インストーラ等がexeファイルで配布されている場合,インストール等はせず,exeファイルだけ取り出して試したい時がある. 小さなソフトはexeはただの書庫&移動+アルファであるため,書庫して開けば十分である可能生が高い. exeもEnter,s-Enterの両方とも書庫として開けるように設定してある.

なお,デフォルトでは,exeは,Xキーが押されたときと同じ挙動をするが,そのような動作を求めることがほとんどない. 似た動作がしたいとき(自作のexeを開くなど)は関連付け実行をするか,Xキーを押すこと. もしくはこの設定をつぶすために,拡張子判別実行のexeの項目を削除すればよい.

課題

exeを書庫として開け

プログレス

ABCDFGHIJKLMNOPRSTUWXYZ-^\@;:]/_0-9F2-12

【応用】 mnuファイルの閲覧

mnuファイルとはあふのポップアップメニューを記述したものであり,F1のヘルプなどはそれを記述したものである. 例えば以下のディレクトリには大量のmnuファイルが定義してある.

C:\bin\afxw64\key_menu

これの拡張子判別実行をEnterキーに割り当ててある. そのためEnterだけでメニューが出せる. これは,中身はただのテキストファイルであるため,テキストを閲覧する場合はs-Enterもしくは強制的にテキストモードで開くVを押すこと.

詳細は,一番下の演習の【応用】カスタマイズ発展にある.

課題


ファイル操作

ここでは,以下のファイルに対する操作や窓に対する操作を学習する.

ジャンプ

よく使うディレクトリに,カーソルを操作して,いちいち移動するのは手間が大きい. 特に,デスクトップ,ダウンロード,ドキュメントのディレクトリには頻繁に移動する. そのような頻繁に移動するディレクトリはJ, G, L, Hキーでジャンプできる.

Jによるジャンプ

まずJによるジャンプ(Jump)について述べる. これはデフォルトでついている機能であり,Zキー設定の各種登録(9)ーフォルダに登録してあるフォルダにジャンプできる. ここで設定を追加すればジャンプできるディレクトリが増える.

なお,よく使わると思われるディレクトリであるswap, desctop, download, documentには先頭にhjklが付与してある. これは,JJ,JK,JHなどの2キーストロークのキーの連打で飛びやすくするためである. (各種登録(1)でメニューは頭文字のキーで即決定するにチェックが必要.配布したものはこれはチェック済み) また,決定時にSHIFTを押しながらEnterを押せば逆窓で開く. もしくはSHIFTを押しながらHJKLなどでも該当文字のディレクトリが開く. なお逆窓関連は次のセクションにまとめてある.

s-Jでは,ジャンプ先が直接入力できる. 特定のディレクトリがコピー済みであったり,よく知っているディレクトリやネットワークドライブ先(うちの研究室のNASドライブである\fukushima-nas)などを入力するときに使う. また,s-Jを押した後で↓を押したりTabを押すことで,補間がかかり,移動先をカーソルで選択するよりも速く決定できるときもある.

c-s-Jは上記の逆窓指定の動作をしたかったものだが,うまく拡張できずに,補間機能が実現できていない.

a-Jは逆窓に入るときに,メニューが足りなくなる可能性を考えて作ったメニューファイルによるジャンプである.

Gによるジャンプ

それぞれ,G, s-G, c-s-Gにデスクトップ,ダウンロード,ドキュメントのショートカットが割り当てている. 1キー入力のため素早く入力できる(Goto のG). Jキーの2ストロークジャンプは,JJにダウンロードを割り当てることで,GJを使い分けられるようにしている. 設定はAFXW.keyに記述されており(該当箇所;Jで検索),設定を変えた場合はあふの再起動後に反映される.

なお,a-Ga-Jと同じ動作である. また,Fキーがc-a-s-Fによるショートカットが何かと競合してヘルプ機能が死んでいるため,GキーからFのヘルプを参照できるように設定している. (どれと競合している?c-a-s-Zも同じ.)

Lによるドライブジャンプ

LキーはCドライブ,DドライブやUSBドライブ,ネットワークドライブなどのドライブジャンプするためのキーである. これは,おそらく,Drive LtterのL.

それに加えて,デスクトップとドキュメントのフォルダが追加されている. これは,Zキー設定の各種設定(1)のドライブ選択のこころでデスクトップとドキュメントを表示するにチェックが入っているためできる. なお,SHIFT+LはGoogle検索機能でありドライブジャンプとは機能が異なる(後述).

Hによる履歴へジャンプ

Hキー(History)は,各左右の窓で訪問した履歴へジャンプすることができる. なお,この履歴は,ファイルコピーや移動でも使うことができる. また,s-Enterで逆窓で開くことができる.

その他のジャンプ

a-Tキーにより,ツリー(Tree)を表示してジャンプができる. もともとはAltのないTキーに割り当てられているが,あまり使うことがないためつぶしてこちらに再割り当てしている. もし多用するようであれば,設定を変える必要があるかもしれない.

また,下記のその他機能で詳細が述べられているブックマークによるジャンプも可能である. ;キーに,ブックマークを登録してそこにジャンプする機能がある. これは,各種登録(9)ーフォルダではなく,独自のファイルとしてブックマークが保存されており,現在のディレクトリがadd/delを押すことで追加,もし追加済みなら削除ができるように作られている. 一時的によく使うようになっている作業ディレクトリなどを追加するとよい.

\キー(BSの左)によりドライブのルートに(例えばC:\)にジャンプできる. なお,_(右SHIFTの左)とは異なるので注意すること(日本語キーボードの文字の出力的には同じ).

課題

TBDより詳細に:

  1. Jでジャンプしろ
  2. Gでジャンプしろ
  3. Lでジャンプしろ
  4. Hでジャンプしろ
  5. a-Tでジャンプしろ
  6. ;でジャンプしろ
  7. \でルートにジャンプしろ プログレス
    ABCDFIKMNOPRSTUWXYZ-^@;:]_0-9F2-12
    

逆窓操作

逆窓は,ファイルの出力先として使うため,頻繁に操作される. カーソルで逆窓に移動して,出力先を設定して,自窓に戻るという操作でももちろん良いが,それは手数が増える. この逆窓はデフォルト設定ではOs-Oに割り当てられており,自窓から逆窓を同期するキーである(逆:Opposite).

なお,デフォルト設定は,現在の設定と逆であり,Oで自窓を逆窓に同期である. これだと使いにくいため逆にして設定してある.

さらに,いくつかの操作方法があるため,以下のコマンドに慣れて,自窓から逆窓を操作できるようになっておくとよい.

** コメント ** a-Gは押しづらいかつa-Fと間違えるのでa-Jにもキー割り当てした.

課題

TBDより詳細に: 逆窓の操作を覚えよ.

プログレス

ABCDFIKMNPRSTUWXYZ-^@;:]/0-9F2-12

ディレクトリ作成

ディレクトリを作成するショートカットは以下である.

なお,各種設定(1)ーファイル窓動作のフォルダ作成後そのフォルダ内に移動するをチェックすると,ディレクトリ作成後にそのディレクトリの中に入る. この動作が約二たつ場面が少ないのでチェックを外している(デフォルトはON)

また,s-Kは実は,ディレクトリを作る命令ではなく,ファイルを移動する命令であり,移動先のディレクトリが存在しないときに,そのディレクトリを作成することを応用した方法である. 確認画面が煩わしい人は,mkdirとmoveによるバッチファイルを書いてもよい.

課題

  1. Kでディレクトリを作成せよ
  2. いくつかのファイルをマークして,s-Kでそのファイルを格納するディレクトリに移動させよ.

プログレス

ABCDFIMNPRSTUWXYZ-^@;:]/_0-9F2-12

ファイルのマーク

これから複数のファイルに対して移動,コピー,削除などの命令を出す. この時は,カレントのカーソルだけでなく,複数のファイルをマークしてそのマークに対して命令が発行したい. そのようなときは以下の命令が使える

コピーと移動

ファイルのコピー(Copy)がC,移動(Move)がMキーである. ここでは,コピーは,移動元のファイルが残り,移動は残らないファイル操作のことを指す. 出力先は逆窓に行われ,対象となるファイルは,SPACEキーなどでマークされたファイル,マークがない場合は,カレントのカーソル位置のファイルである. マークされているかどうかは,緑で反転するためすぐわかる. もちろん,ディレクトリもマーク可能である.

なお,同一ドライブ内での移動命令は先頭ポイインタの付け替えだけなので,コピー命令よりも非常に速い.

このコピー・移動命令は基本操作であり様々な拡張がなされており以下で様々なコピーを使い分けられる.

コピー

C : 基本のコピー.対象は逆窓. s-C : 登録フォルダ(Jで移動できるフォルダ)にコピー c-s-C : 外部ツール(FastCopy)を使った非同期コピー a-C : 履歴にコピー c-a-C : マークファイルをフォルダを指定してコピー

非同期コピーは数GB越えの巨大なファイルや,多くのファイルを一度にコピーするときにあふが固まるのを防ぐために使う. なお,固まっている最中にa-Zでもう一つあふを起動することで,作業の中断を防ぐこともできる.

c-a-Cs-Kの移動ではなくコピー版である.

なお,Tキーに,1画面で操作するための下記のコピーコマンドが用意されている.詳細は,後で述べる.

移動

マークファイルをカーソル上に移動 マークファイルを移動先を指定して移動 一階層上に移動(これはよく使う)

移動もコピーと割り当てはほぼ同じである. M : 基本の移動.対象は逆窓. s-M : 登録フォルダ(Jで移動できるフォルダ)に移動 c-s-M : 外部ツール(FastCopy)を使った非同期移動 a-M : 履歴に移動 c-a-M : フォルダを指定して移動

c-s-M : 外部ツール(FastCopy)を使った非同期移動は,同一ドライブ内の移動は高速なため,コピーに比べて出番は少ない.

c-a-Ms-Kまったく同じ挙動である.

なお,Yキーに,1画面で操作するための下記の移動コマンドが用意されている.詳細は,後で述べる.

課題

TBDなんか適当な題を作る

  1. コピー・移動せよ.

プログレス

ABDFINPRSTUWXYZ-^@;:]/_0-9F2-12

削除

削除に関連するショートカットは以下である.

s-Dは確認が出るが,完全に削除できる. Zによる各種設定(1)ーファイル操作のごみ箱はシステムの確認を利用するのチェックを外すと確認が出ないようにできる. また,その上の通常の削除はごみ箱を利用するのチェックを外すとSHIFT付か否かの動作を反転できる.

なお,慣れるまでshift+Dの操作はしないこと(削除してすぐならファイル復元ソフトなどで復元可能だが). ごみ箱はシステムの確認を利用するにチェックを入れているはずので大丈夫だとは思うが,もし設定を変えたらごみ箱を経由せずに即削除になる. 昔は,HDDのアクセスが遅く,ごみ箱を経由すると挙動が遅かったが,HDDがSSDになって反応が良くなったため,ごみ箱経由して削除のほうが安心できる.

a-Dでごみ箱のプロパティを表示でき,これはごみ箱を完全に削除するときに使う. c-s-Dにしていないのは,誤動作防止のため.

課題

  1. ファイルの削除せよ
  2. ファイルのごみ箱を経由せずに削除せよ.
  3. ごみ箱のプロパティを確認せよ.

プログレス

ABFINPRSTUWXYZ-^@;:]/_0-9F2-12

リネーム

ファイル名のリネームついて述べる. エクスプローラーではF2を押すかアイコンをゆっくりダブルクリックして行っている,ファイル名を変える処理のことである.

基本的なキーバインドは以下である.

Rはそのままリネーム機能である. また,↓を押せば拡張子の大文字小文字変換を使えたり,ALT+接頭文字で隠しファイルやリードオンリーファイル設定などのパーミション設定などができる.

s-Rは,リネームしてコピーするもので,Ver1,Ver2といった前の状態ほ保存したい時に使う.(コードなど,頻繁に更新されるものはバージョン管理を絶対に使うこと.)

c-s-Rはリネームのバッチ処理であり,で入力欄を切り替えられる. モードは二つある.

一つ目は,上三つの行を使う,は,名前を規則に従って置換する処理である. 例えば,key_menuフォルダをすべて選択して(ショートカットはA,これは後述),置換元をmenu置換後をメニューにすると文字列「menu」が文字列「メニュー」にすべて置き換わる. これは決定がEnterではなくs-EnterでありEnterは結果テストが表示される. 二つ目は,下三つの行を使うファイルを連番でリネームする処理である. ここでは,文字名,後半.拡張子と連番で出す数字のルールを決められる. 【ここもう少し詳しく書いて】

課題

  1. Rでリネームせよ
  2. s-Rで適当なファイルをファイル名ver1,ファイル名ver2とリネームしてコピーしろ.
  3. c-s-Rで拡張改名(上の機能)せよ.
  4. c-s-Rで拡張改名の連番をつけるものを(下の機能)せよ.(画像ファイルを番号で割り振るなど)

プログレス

ABFINPSTUWXYZ-^@;:]/_0-9F2-12

ソート

各ディレクトリの中身をソートすることは,目標のファイルを発見する上で重要である. ファイルのソートは,Sで,ソートのメニューが起動しEnterでソート可能である.. また,メニューにあるソートの属性を選べば2ストロークでソート可能である.

またショートカットで以下のものもが割り振っている. 基本は2ストロークソートでよいが慣れたらこちらを覚えるとよい.

課題

  1. いろいろな属性で2ストロークでソートせよ
  2. 1キーのショートカットでソートせよ
  3. ファイル名(連番)とファイル名のソートの違いが判るファイルを用意してソートせよ.
     1.txt, 2.txt, 3.txt, 4.txt,5 .txt, 6.txt, 7.txt, 8.txt, 9.txt, 10.txt ,11.txt, 12.txt, 13.txt
    

    となっているファイルをソートしたら結果を見れば違いがよくわかる(TBD:用意する).

プログレス

ABFINPTUWXYZ-^@;:]/_0-9F2-12

全選択,ワイルドカードマーク,ファイルマスク

ファイルをマーク,全選択するときに,ひとつづつ選択するのはコストが高い. ここでは,効率的なマーク方法である以下6つ述べる.

Aによる全選択

A(All)により,ファイルのみを全選択できる. 実際の命令は,マークの反転命令であり,おおむねマークしていない状態であるため全選択に見える. そのため,マークファイルが存在すれば,そのマークファイルを除いたファイルがマークされる. また,反転命令ということは,もう一度Aを押せばマークをクリアできる. なお,Aは反転命令であって,クリア命令ではないため,一つでもマークがあればクリアにはならない. 本当のクリアの命令はEndキーに割り当たっているが,Aで事足りるため,押すことはほぼない.

s-Aは,ファイルに加えディレクトリを含めた両方をに対してAと同じ操作をする. これと反転であることをうまく使うと,s-AAのキーを入力することでディレクトリだけマークすることができる. これは,SHIFT押しながらAAの二回押しではないことに注意すること.

@によるワイルドカードマークマーク

Z設定ー各種登録(9)ーファイルマスクに登録したキーワードによってファイルをマークすることができる.

登録済みのものとして,圧縮ファイル(compress)や画像ファイル(image),オフィス,pdfなど,大体のものが登録されており,DownlodやDesktop等散らかりやすいディレクトリを整理にするのに便利である.

なお,*.*はすべての意味である.

また,もし用意された拡張子がない場合は,s-*でマスクを直接入力できる.

:によるファイルマスク

:は上記に置いてマークではなく,該当拡張子だけを表示するためのファイルマスクである.

設定した自窓のファイルマスクが設定変更され,常時該当の拡張子のファイルしか表示しなくなる.例えば,pdfに設定したら,pdfファイル以外は非表示になるため,該当のファイルを視認しやすくなる.

なお,デフォルトは*.*ですべて表示であり,ファイルマスクをもとに戻したい場合もそれを選べばよい.

課題

  1. 全選択せよ
  2. ディレクトリだけ全選択せよ
  3. ワイルドカードマークを使え
  4. sandbox4においてファイルマスクを設定し,pdfファイルだけ閲覧せよ.その後.に戻して,すべてのファイルが表示できるように戻せ

プログレス

BFINPTUWXYZ-^;]/_0-9F2-12

分割表示(自窓)

大量にファイルがある場合,自窓にすべてのファイルが表示されず,等で移動しなければすべてを確認することができない.

この時,下記ショートカットで表示を分割し,多数のファイルを表示できる.

ファイルが少ない場合,ファイル名が短くなって末尾にただ¥が付いただけになっている.これは,ファイル数が多い場合にはじめて真価がわかる.

なお,多分割表示の時は,,で逆窓に移動できないため,Tabで逆窓に移動すること.

なお,デフォルト設定では,9分割まで可能だが,不必要であると思い4~9には別のキーをアサインしている.

課題

  1. sandbox3のディレクトリを分割表示せよ.
  2. 表示表示された状態でファイル操作し,逆窓に何かを移動せせ,またその移動したファイルをもとに戻せ.

プログレス

BFINPTUWXYZ-^;]/_4-9F2-12

ファイル圧縮

ファイル圧縮について述べる. ファイル圧縮のショートカットは以下である.

P(Pack)を押した後,圧縮拡張子を自分で入力して決めることができる(zip, 7z, tarなど). Pの後メニューでを押せば,リストが一覧で表示できるため,楽に入力できる. なお,初期選択は,前回の指定したものが履歴として選ばれている.

また,Pを押した後で出るメニューでは,CTRLを押しながら0-9で圧縮率や圧縮のモードが選択できる. zipの0は,圧縮のないファイルでtarと同じ機能で,処理速度が速いというメリットがある. 7-zipは圧縮のアルゴリズムの選択となる.(アルゴリズムの簡単な説明は福嶋の講義映像メディア通信特論である.)

さらに,書庫を開いた状態で,そこにファイルをコピーするとzipファイルを再圧縮しなくても書庫にファイルを追加できる.

なお,x86のモードではさらにzip圧縮をa-Zでzip.dllと7.zipのdll選択できる. しかし,64bitのものは7-zip.dllで7z以外に,zip圧縮を扱っているので,7-zip.dllで圧縮されるようになっている. 選択肢はないので気にしなくてよいが,間違ってキーを押してしまっている場合は,7-zip:5ではなく,zip:5などと表示されてており,圧縮しようとするとzip64j.dllが見つかりませんのエラーが出るので注意.

また,s-Zのファイルサイズ表示切替でKB,MB表示を数字による表示に切り替えられる. より詳細なサイズが知りたい場合は切り替えること. あふを終了した場合は戻る. なお,Zキーによる設定で,各種設定(1)ファイル窓とステータスバー表示のファイルサイズをKBMBGBTB表示するのチェックを外すとデフォルトの設定が入れ替わる.

s-Pはすべてのファイルを1つのzipにするわけではなく,1つづつ圧縮する.あまり活躍する場面はない.

c-s-Pは自窓に圧縮ファイルを送るコマンドである. これは,7-zipを外部ツールとして使っているため,非同期実行となる.圧縮時間が長い場合などに使えるが,コマンドが非同期であることに注意が必要で,圧縮中であってもAFXWの操作が可能になっている. また,Pコマンドとは圧縮のオプションが異なるため圧縮率が異なる.

a-Pも7-zipを外部ツールとして使うためのオプションであるが編集可能なようにしている.基本はzip,,で7-zipの各オプションが選べるようになっている.

課題

  1. zipの圧縮率を選択せよ.
  2. 7zの圧縮モードを選べ.
  3. いろんな圧縮でファイル圧縮して,サイズを確認せよ.
  4. 圧縮済みのファイルに任意のファイルを追加せよ.
  5. sandbox1\key_menuのファイルをs-Pで個別圧縮せよ.
  6. 【応用】 7zipのコマンドライン引数を調べ,a-Pの圧縮メニューに選択肢を追記せよ.

プログレス

BFINTUWXYZ-^;]/_4-9F2-12

コメント

選択肢の中で圧縮速度が最速なのがzip,テキスト圧縮で最も小さくなりやすいのがzipのPPMd,非圧縮の画像ファイルや音声ファイルなどのマルチメディアファイルで最も小さくなりやすいのが,bz2.画面のスクリーンショットの画像などはLZMAが小さくなりやすい.もちろん専用の画像の圧縮を使ったほうが効果は大きい.

なお,32ビット版を使えば,lzhの圧縮やcabによる圧縮が使えますが,必要ないでしょう. zipはzip圧縮を選択したメニューでalt+zを押すと,7z.dllによるzipとzip32.dllによるzipを切り替えられますが,64ビット版のzip64.dllが存在しないため切り替えられません.(deflateの実装が違うため圧縮率に多少の差がありますが,どうしてもzip32.dllで圧縮したいことはまれなので問題ない.)

Zstandardなどで使われるエントロピー符号化のANSが枯れてきたら,zipよりも速くてサイズも小さくなるので,きっとデファクトが置き換わる可能性がある.

コメント2

Pの圧縮と7-zipによるzipの圧縮で7zipのほうが性能が悪い.なんで?オリジナルDeflate実装のせい?32bitで要検証.

ファイル展開

展開(Unpack)のショートカットは以下である

Enterで入れる圧縮ファイルすべて展開できる. なお,展開時に,ディレクトリ名と拡張子を含めて完全に一致するファイル名が存在すると展開に失敗する. 例えば,hoge.tarのファイルがあるディレクトリでhoge.tar.gzを展開するとエラーが出る.

課題

  1. 逆窓に展開せよ
  2. 自窓に展開せよ
  3. c-s-Uの挙動を確認せよ

プログレス

BFINTWXYZ-^;]/_4-9F2-12

コメント

圧縮に対する対義語は,現在は展開が多数派だが,解凍や伸長と呼ぶ人もいる. おそらくWindowsにzipが搭載され,右クリックメニューで展開という日本語訳が付いたからだと思われる. それまでは解凍が多数派だった. しかも,論文的には伸長が一番正しいのでいろいろややこしい.

ここでは,用語を展開に統一した. 英語ならdecodeとdecompressでencodeとcompressで対応をとるだけなので悩む必要がないのに.

シングル窓操作(相対移動)

反対の窓を必要としないコピー・移動命令で特に相対移動するためのコマンドは以下である.ここで相対移動は,一個上の階層への移動や,同階層の別ディレクトリに移動などを指す.

コピー

移動

そのほか,C,Mのお気に入りにコピーや,履歴にコピーも活用すると逆窓を同期しなくてもかなりコピーができるようになる.

c-s-による移動はTabで補間が聞くため,キーアサインは見直したほうがいいかも.

課題

マークしたファイルを一つ上の階層へ移動させよ.

プログレス

BFINWXZ-^;]/_4-9F2-12

コメント

もともとYキーが空きキーで,Tのツリー移動もあまり使わないのでつぶした. YキーはGmailのショートカットのアーカイブがYなので挙動が似ているので移動にアサイン.

本当は,一階層上をSHIFT無しの挙動にしたほうがよさそうだが,マークファイルをカーソルに移動する操作が複雑なのでそちらの操作を簡単にするようにこの配置にした.

ファイル検索

ファイル検索は*によるワイルドカードが効く. 例)test*でtest.txtもtest111.mdも検索にかかる. 検索には以下の4つがある.

なお,Z設定各種設定(1)ー「一般のファイルの検索は常に部分一致を適用する」と「インクリメンタルサーチは常に部分一致を適用する」を適用すると,文字列の部分的な一致でファイルを探すことができるようになるため使用感が上がる. チェックがない場合,test111.mdを検索するときにst11というワードでは見つからない. 実際にチェックを外してみて挙動を確認するとわかりやすい.

課題

TBD: 適切な大量のファイルを用意して一つのディレクトリに入れて検索する.

  1. c-[a-z0-9]で検索・移動せよ
  2. Fでインクリメンタルサーチせよ
  3. s-Fでファイルを見つけよ.
  4. c-s-Fでgrepの動作を確認せよ.

プログレス

BINWXZ-^;]/_4-9F2-12

google検索

s-Lを押すとGoogle検索が可能である. これは,Google検索ではc-Lで検索窓に移動するショートカットがあるためで,それを模倣したキーバインドである・

ただしChromeがインストール済みである必要がある. afxw.key内のこれを書き換えれば任意のブラウザでこの機能は使用可能である.

K0031="1076C:\Program Files (x86)\Google\Chrome\Application\chrome.exe https://www.google.com/search?q=$I4"Google"

また,下記はGoogleの検索エンジンの検索クエリの記述方法なので,検索エンジンが変わるとここの書き方も変える必要がある.

search?q=$I4"Google

課題

適当なワードをAFXWからGoogle検索してみよ.

プログレス

BINWXZ-^;]/_4-9F2-12

GUIによる操作

AFXWは基本キーボードによる操作が主体だがマウスによる操作もある程度できる.

ここではマウスによる操作を学ぶ.

GUIによる内部操作

自窓から逆窓にドラッグアンドドロップ(D&D)すると,コピー,移動,圧縮,展開のメニューが出る.

マークがあればマークされたファイルのすべて,なければカーソルで選んだファイルのみ,その命令が発行される.

また,マウスクリックによる動作は下記である.

課題

マウスによる操作を確認せよ.

プログレス

BINWXZ-^;]_4-9F2-12

GUIによる外部との連携

D&Dを逆窓ではなく,デスクトップやエクスプローラーに対して行うと,エクスプローラーでD&Dをしたのと同じ動作ができる.

また,D&D対象がアプリケーション(例えばワードやエクセル)であったら該当のアプリケーションが立ち上がる.

またよく使うのは,ブラウザに対してpdfやマークダウンをD&Dすることをよく使う.

課題

マウスによる操作を確認せよ.

プログレス

BINWXZ-^;]_4-9F2-12

キーボードによるGUI動作のシミュレーション

GUIによる操作はある程度マウスでもシミュレーションできる. いかにマウス操作に相当するキーボードショートカットを示す

擬似D&Dは,mdファイルやpdfファイルをブラウザにD&Dすると挙動がよくわかる.ただし,仮想デスクトップや複数のChromeが起動していたりすると失敗しやすい.

課題

  1. コンテキストメニューを表示せよ
  2. 擬似D&Dの挙動を確認せよ

プログレス

BINWXZ^;]/4-9F2-12

その他機能

ここまでで述べた以外の,残る機能について述べる.

ファイルサイズの確認

ディスク上のサイズとサイズの確認,およびディレクトリを右クリックでプロパティを選択するのと同じ動作をする機能がある.

ディスク上のサイズは,HDD等のドライブで占有しているサイズ,サイズは,中身を占める実際のサイズである. 実際のサイズよりも大きく占有することで,ファイルのアクセス単位をそろえて読み込み,書き込みを高速化するため,ディスク上のサイズは大きくなる. 詳しくは,サイズとディスク上のサイズで検索.

HDDの容量を削減したいときは,Iで確認,メールで送るときのファイルサイズを見たいときはs-I確認でよい.

なお,ディレクトリはマーク不要だが,ファイルはマーク必須なので,カーソルを合わせてIを押すだけではだめでマークが必要. Iを押さなくても,単体のファイルサイズは見えているので,1つだけのファイルサイズを見たいことはない.

c-s-Iはサイズ以外にもプロパティを設定できるため,サイズ確認以外でも使うことがある. 例えばJPEGファイルなどではExifなどの撮影時の情報が得られたりする. なお,この機能はマーク不要であるが,一つのファイル,一つのフォルダにしか機能せず,複数ファイルに対しては対応していない.

課題

  1. 複数のファイルをマークして,ディスク上のサイズとサイズの確認をせよ 2.ディレクトリをマークせず,Iを押して,そのディレクトリがもつファイルサイズの合計を確認せよ.
  2. ファイルとディレクトリを混合してマークして,同じようにサイズを確認せよ.
  3. c-s-Iでプロパティを確認せよ.

プログレス

BNWXZ^;]/4-9F2-12

ファイルパスコピー

コード編集をしていたり,説明文を書いていたりする時には,ファイルのパスをコピー&ペーストしたい場合が多々ある. 例)以下のファイルのパスをコピーしたい時.

C:\bin\afxw64\7z.dll

その場合は,以下のショートカットが使える.

このコマンド発行の後に,c-Vなどでテキストエディタなどに張り付ければ利用できる.

また,複数ファイルをマークしていると,以下のように複数ファイルを改行してコピーに入れられる.

C:\bin\afxw64\7z.dll
C:\bin\afxw64\afxgrep64.dll
C:\bin\afxw64\msvcr71.dll
7-zip64.dll
7z.dll
afxgrep64.dll

他にもa-_で詳細なメニュー付きで同じような動作+α(改行ではなく,区切りなど)ができる. こちらはあふのデフォルト設定であり,拡張をしなくても元から使える. メニューをの選択が1ステップ増えるため,ショートカットを割り当てている.

課題

ファイルパスをコピーせよ.

プログレス

BWXZ^;]/4-9F2-12

コマンドライン実行

課題

  1. treeコマンドs-Xキー,c-s-Xキーで試してみよ.
  2. 適当なテキストファイルをXキーで起動して,notepadを指定して実行せよ 例)notepad readme.txt

プログレス

BWZ^;]/4-9F2-12

タスクマネージャー関連

/により各種情報の取得ができる

課題

/によるショートカットメニューの動作を確認せよ コメント /のネイティブ動作は,拡張しない人はほとんど使わないため,ショートカットの割り当てを変えて,もっとマイナーなキーに割り当ててもよいかも.

プログレス

BWZ^;]4-9F2-12

比較マーク・小物ツール

同名ファイル比較マークは,左右のディレクトリにほぼ同じディレクトリ,例えばtestver1, testver2などの,リネームしてコピーで複写されたディレクトリにおいて,左右の状態のdiffをマークで確認するコマンドである.

これを使えば更新されたファイルがどれかがわかる.

また,s-Wで大きなファイルを分割することでUSBメモリに入りきらかなったファイルを分割して保存して,移動先で結合することで,データを持ち運ぶことができる.

集中複写,移動についてはAFXWCFG.txtを参照のこと.

課題

機能を確認せよ

プログレス

BZ^;]4-9F2-12

画面分割位置の移動

課題

以下は,2画面ファイラの分割セパレータの移動コマンドである.

画面分割は,c-a-→,←,↓,↑でセパレータを移動できる. また,極端な状態移動は]キーに割り振ってある.

なお,c-]という,CTRL+記号にショートカットが割り当たっていることに注意.先頭へのジャンプは,c-[a-z0-9]しか効かないため.

CTRLがついたのが,メッセージ窓分割,つかないのが窓の分割の最大化ともとに戻すという挙動に設定している.

なお,メッセージ窓のカーソルを動かすにはs-矢印である. 上下で1行づつ移動,左右で大きく移動.

課題

  1. c-a-矢印でセパレータを移動させよ.
  2. ]でセパレータを移動させよ.
  3. メッセージ窓をs-矢印でスクロールせよ.

プログレス

BZ^;4-9F2-12

窓の状態の保存

自窓のプッシュとポップ

ディレクトリの状態を記憶するためにプッシュとポップが使える.

逆窓をプッシュとポップのほうが役立つ場面が多そうだが,内部コマンドがない. 次のSET命令で代用可能.

両窓の状態の保存

両窓の状態を,ソートをした状態を含めて保存することができる. ショートカットキーは以下である.

この機能は以下の場合で使える.

なお,現在を保持して,一時的に他の作業をしたい場合は,a-Zでもう一つAFXWを起動して,作業が終わったらQで終了で戻ってくるでも代用可能である.

課題

  1. プッシュとポップの挙動を確認せよ.
  2. 両窓を4-9に保存・復帰せよ.
  3. a-Zで別AFXWを立ち上げて,何か作業をしてQで終了させて戻ってくる動作をせよ

プログレス

BZ;F2-12

カスタマイズ入門

よく使うアプリケーションやディレクトリの登録

よく使うアプリケーションやディレクトリを登録しておくことで,普段の作業を効率化できる. 以下では,mnuファイルを活用してこれらの機能を実現したファイルのショートカットを述べる. mnuファイルの編集の仕方は,【応用】に記述してある.

なお,これらのメニューは,で循環している(cmdを起動を除く).

よく使うアプリケーションのリストを表示して選択させるような機能のことをランチャーと呼ぶ. 専用のソフトもいくつかあるので試してみるとよい. CraftLaunch が割とおすすめ.

コマンドラインを起動のBはbashのB.設定した当時はBashを使っていたため.また,bookmarkのBと覚えてもいい. このキーに割り当てている理由は,両キーともデフォルトが空きキーだから.

また,このメニューはカーソルが当たっているディレクトリやアプリケーションをadd/delで追加削除できる.登録がなったら登録,登録済みなら,削除をトグルする. ランチャもブックマーク登録も文法的な違いはないため,混合して登録もできる(分けたほうが分かりやすい)

なお,Editでファイルの編集ができる. AFXWのmnuファイルは,SJISでないと文字化けするため,エディタによっては,デフォルトがSJISでないため編集時に文字化けする. 編集後AFXWの表示が文字化けするようになったら該当するmnuファイルにカーソルを当てて,s-F11でnkfコマンドにより強制的にSJISに変換できるようにショートカットが割り当ててある.(c-s-Bにもnkfある)

課題

  1. ショートカットのランチャを起動せよ
  2. ブックマークを起動せよ
  3. ブックマークの登録・解除をせよ.
  4. アプリケーションの登録・解除をせよ.
  5. 起動して→←でメニューが切り替わるのを確認せよ. プログレス
    ZF2-12
    

外部ツール連携

キー定義(8)にファンクションキーによるキーアサインが記述してある. AFXW.keyに書くこともできるが,こちらのほうが編集しやすい&記述ルールを統一するため,ファンクションキーのショートカットはすべてここに記述してる.(画像モードテキストモードは除く)

現在アサインされているのは以下である.

メモ帳を起動

最も簡単なファンクションキーの拡張方法のサンプルとして. win+Rのファイルを指定して実行で動く,パスの通ったコマンドなら,ただここにコマンドを書いておけば,ショートカットになる.

Image Magick

Image Magickがインストール済みである必要がある.

として,下記コマンドで任意の画像ファイルをpdfに変換する.

magick input output.pdf

これを内部命令のEACHを使ってマークファイルすべてに適用する. 出力は自窓に設定. texで文章を書く時に,画像を事前にpdfでラップしておくとコンパイルが速くなる. なお,jpegファイルなら,jpegファイルをpdfでラップした出力であり,bmpをpdfに変換するよりもファイルサイズは小さい.

pdfcrop

Tex環境がインストール済みである必要がある.

パワーポイント等からpdfを生成したときに,余白を削除するためのコマンド. texで書くなら必須.

以下のコマンドを内部命令EACHによってマークファイルすべてに適用する.

pdfcrop input.pdf

nkf

カーソルファイル,マークファイルをSJISに変換するオプションをアサインしている.誤動作防止のためSHIFT+F11.

nkfはインストール不要.

GNUPLOT

GNUPLOTがインストール済みである必要がある. (相対パス指定されており,で,C:\bin\gnuplotにある必要あり.)

なお,gnuplotは引数取らないので,解除してランチャから呼び出せば十分かもしれない.ただ,AFXWから起動すると,起動されたディレクトリをカレントディレクトリとしてgnuplotが起動するので,cdコマンドを打たなくてよい.(これを実現するためにファンクションキーに割り当てる必要もないのでなおさら消してもいいかも.)

課題

それぞれ試せ.

プログレス

Z

各種設定

何度も出てきたがZは各種設定を行える. 拡張を始めた場合は,c-s-Zをよく押すはず.

課題

各種設定を変更してみよ.

プログレス



おわりに

基本の演習はここまでです. あとは,一週間,エクスプローラを使わない縛りで生活すると,エクスプローラを捨てることができます.

研究室向け 次に演習をする人のために課題を,sandboxを充実したり記述を詳しくしたりしなさい(一人2つ).


【応用】 カスタマイズ発展

そのうち更新する.

置換マクロと内部命令を覚えれば,大体のことができるようになる. これらの命令は,以下で使用できる.

ファンクションキーへの割り当て

Zの設定では,以下に命令を割り振ることができる.

その他複合キーにキーアサインしたい場合は,AFXW.keyに直接記述する必要がある.

もっとも簡単命令は,上記のメモ帳を起動のようにパスの通ったアプリケーション名を書くだけである.

より複雑な命令として,置換マクロによって,自窓や逆窓の状態を取得してコマンドライン引数としてとることができる. 例えば,以下のコマンドでは,カレントカーソルのファイルをjpgファイルに変換する命令をimage magickを使ってコマンドラインから呼び出せる.(cmd /cが必要かも)

magick $F $W.jpg

また,複数のマークファイルに対応するには,内部命令のEACHを使うことで,1行づつ命令を発行するようなことができる.

&EACH magick $F $W.jpg

よく使う置換マクロ

AFXWCFG.TXTより抜粋

ファイル名

$F  .....  カーソル位置のファイル名。
$W  .....  カーソル位置の拡張子を除いたファイル名。
$E  .....  カーソル位置のファイル名の拡張子。

パス名

$P  .....  自ファイル窓のパス名。(末尾に \ は付きません)
$O  .....  他ファイル窓   〃   。(         〃          )
$L  .....  左ファイル窓   〃   。(         〃          )
$R  .....  右ファイル窓   〃   。(         〃          )

マークしたファイル

$MS .....  マークされたファイル名を並べます。(ファイル名のみ)
$MF .....  マークされたファイル名を並べます。      (フルパス)
           上記2つはマークがない場合、カーソル位置のファイル
           1つを対象とします。
$MO .....  他方のマークされたファイル名を並べます。(フルパス)
           他方にマークがない場合…
           ・$ の次の M を大文字で記述した時($MO)は
                     コマンド自体がキャンセルになります。
           ・$ の次の m を小文字で記述した時($mO)は
                     ヌル文字に置き換わります。

内部命令EACH

   &EACH (switch) [command]
             ..... マークされたそれぞれのファイル上に
                カーソルがあるものとして順次 [command] を
                実行します。
                1つ1つ実行終了を待ちます。
                [command] に内部命令は使えません。
   &EACHNW (switch) [command]
             ..... &EACH の終了待ち無し版です。

      &EACH系のスイッチは - から開始して LRPO の4つを指定出来ます。
      スイッチとコマンドの間は1バイトスペースを1つ入れてください。
      スイッチ無指定の場合、明示的に更新は行われません。
        P ... &EACH(NW)実行後、自ファイル窓を更新します。
        O ...    〃     他ファイル窓を  〃  。
        L ...    〃     左ファイル窓を  〃  。
        R ...    〃     右ファイル窓を  〃  。
      例)
        &EACH -O cmd.exe /c copy "$P\$F" "$O\"
          → &EACHコマンド終了後、必ず他ファイル窓を更新します。
        &EACH -LR converter.exe "$P\$F"
          → &EACHコマンド終了後、必ず両ファイル窓を更新します。

mnuファイル

mnuファイルの文法

例:

afx mnuのサンプル
"C   逆窓にコピー"  &COPYTO "$O"
"s-C  登録フォルダにコピー" &SENDKEY 1067
========デフォルト設定==========
"========デフォルト設定NOP 版======" &NOP
"c-s-C 逆窓にFastCopyで非同期コピー" $~\fastcopy\fastcopy.exe /cmd=update /auto_close $MF /to="$O\"
"a-C  履歴にコピー"  &COPYHIS
"c-a-C フォルダを指定してコピー"&COPYTO !
"a-s-C これは実際は作ってないけどテスト用に作成したcmdによるコピーをafxexecで閲覧" $~\afxexec.exe cmd.exe /c copy $MF $O
;コピーのヘルプ

1行目:冒頭にafxでメニューファイルであることを示し,スペースを開けて窓のタイトル (AFXWでもいいし,スペースがなくてもいいがwで始まる文字などがぶつかるのでスペース開けたほうがいい.)

2行目以降が命令で,1行単位で命令が書かける. “” でくくった範囲が窓に表示される文字,それ以降は窓を選択したときに実行される命令である. 命令は,&で始まるAFXWに対する専用の内部命令やコマンドラインの命令を書くことができる. また引数の環境変数展開もできる.例)$O:逆窓のディレクトリ,$MF:マークしたファイルのパス. 各種コマンドのヘルプはここを確認(AFXWCFG.TXTより抜粋). さらに,afxexecを使えば出力結果をメッセージ窓で受け取ることもできる.

"”でくくらずにただの文字列を書いてメニューのセパレータ代わりに使うこともできる. ただし,選択もできてしまうので,選択するとコマンド失敗になる.(&NOPでNOP命令でも書いてあげたほうが新設?) なお,2行目以降はセミコロンでコメントがかける. エディタにlispモードなど;がコメントの言語に設定してあげるとコメントが色付けされるはず.

また,下記を定義することでメニューの切り替えも可能である. afxw.exeがあるディレクトリのlauncher.mnuBで呼び出しているメニュー)ではそれを使っており,→←でメニューが切り替えられる.

;L="←キーで開くメニューファイル名"
;R="→キーで開くメニューファイル名"

それを参考に使うとよい.

呼び出し方

ファンクションキーや,その他キー(あまりのキーはないので,s-c-a-などの組み合わせで開いているキーや,いらないキーをつぶして)に以下の内部命令&MENUを割り当てる.

&MENU C:\xxxx\xxx\test.mnu

afxw.exeの直下ディレクトリにある場合は,以下でよい.

&MENU $~\test.mnu

$~は,あふ直下を表す環境パス展開である,なお,階層を表す\を忘れずに. 環境変数の展開はそのほかOSに記載されているんのも対応している. $V”環境変数” Ex) $V”USERPROFILE”

なおmnuファイルはSJISで保存すること. デフォルトのUTF-8だと文字化けする. F11にnkfコマンドを割り当てており,強制的にSJISに変換するコマンドが割り当ててあるため,文字化けしたら押すといい.

また,mnuファイルから&MENUコマンドで別のmnuを呼び出すこともできる.

課題

mnuファイルを編集していろいろ設定せよ. なお,c-a-Bにテスト用のコマンドショートカットも用意している. コマンドテストはmnuファイルをEnterでできる. これは,.mnuに拡張子判別じっこうで,&MENU命令の呼び出しをアサインしているため. ただし,命令にマークしたファイルを引数としてとるようなものは検証がむつかしいかも.

キーカスタマイズ

AFXW.keyを編集することで,キーカスタマイズができる. c-s-Zでテキストで編集するファイルを呼び出すメニューや各種ドキュメントへのリンクを呼び出せる.

なお,今空いているキーはない. 厳密にいえばテンキーとかその他特殊キーなどが開いている. おそらくFunctionキーもいくつか開いていある. また,s-c-aの組み合わせを考えればどれかは開いているし,c-[a-z0-9]のショートカットジャンプをつぶせばキーが一気に開く.

現在のAFXW.keyの冒頭を使って記述方法説明する.

;altの←→で履歴を移動.もともとはc-s-矢印
K0000="4037:3037"
K0001="4039:3039"
;a 全選択
K0002="7065&MENU $~\key_menu\menu-a.mnu"
;b 実行ファイルのショートカットを起動,shift+bでコマンドラインを起動
K0003="0066&MENU "$~\launcher.mnu""
K0004="1066cmd.exe "$P""
K0005="4066&MENU "$~\bookmark.mnu""
K0006="7066&MENU $~\key_menu\menu-b.mnu"
K0007="3066&MENU "$~\command.mnu""
K0008="6066&MENU $~\afxtest.mnu"
;c コピーの設定
K0009="3067fastcopy\fastcopy.exe /cmd=update /auto_close $MF /to="$O\""
K0010="4067&COPYHIS"
K0011="6067&COPYTO !"
K0012="7067&MENU $~\key_menu\menu-c.mnu"

K00xx=がキーのインデックス番号であり,命令毎に固有の数値を持つ. きれいに機能ごとにソートして記述するにはこの番号を自力で打ち直すorコードで生成する必要があるので注意.

=以降の”“でくくったものが命令であり,冒頭が仮想キーコードである. 例えば,B: 0066,s-B: 1066, c-B: 2066, c-s-B: 3066, a-B: 4066, c-a-s-B: 7066などである. 詳細は下記の仮想キーコードを参照のこと. そのあとは命令が書け,これはmnuファイルと同じである.

また,以下の命令でキーの内容の置き換えができる.

Kxxxx="(入力キーコード):(取替キーコード)"

課題

キーに任意の命令を割り当て,拡張せよ.


Appendix

拡張時のログ

さらに拡張する人以外は読む必要ありません.

類似ツール

Unix環境ではおとなしくZshを使いましょう.

いろいろなファイルの入手先