しょぼしょぼすくりぷと xyzzy編 > tips > tips index

TIPS index

ちょっとFAQぽい tipsや カスタマイズ集
参照 赤塚さんとこ | HENMIさんとこ | Toy さんとこ | HIE さんとこ
ページ内検索

    第一弾

  1. (Q)単語を補完して欲しい
    (A)補完機能を使う > 補完機能説明ページ
     
  2. (Q)色つき のキーワードを設定したい
    (A)キーワードの設定ページで使い方を見る
     
  3. (Q)モード切替をメニューでしたい
    (A)メニューにモードを切り替える項目を追加する
     
  4. (Q)現在のバッファー全体をインデントしたい
    (A)バッファ全体をインデントする lisp関数を使う
     
  5. (Q)*の付いたバッファーのみを消したい
    (A)*の付いたバッファーのみを消す lisp関数を使う
     
  6. (Q)バッファをまとめて印刷したい
    (A)全バッファを一つのバッファにindex付きでまとめる関数を使う
     
  7. (Q)各行の先頭に文字を入れたい
    (A)各行の先頭に文字を入れるlispを使うまたは string-rectangle関数を使う
     
  8. (Q)各行の先頭に同じ文字 # とかを入力したい
    (A)範囲をリージョンで指定し、M-x string-rectangle です。その後文字を入力します。
     
  9. (Q)特定の名前のファイルをたくさん消したい
    (A)特定の名前のファイルを消すサンプルから関数を作成する
     
  10. (Q)特定の拡張子を変更したい
    (A)特定の拡張子を変更する関数を使う またはファイラーの機能で拡張子を変更する
     
  11. (Q)対応する括弧を自動的に入れてみたい(主にc,java)
    (A)対応する括弧を自動的に入れるツールを導入する
     
  12. 第二弾

  13. (Q)regionやselectionを定型句で囲みたい(コメントとかに利用できる,,)
    (A)regionやselectionを定型句で囲むlisp関数を使う
     
  14. (Q)一定サイズ以上のファイルを開くとき聞くようにしたい
    (A)一定サイズ以上のファイルを開くときユーザに尋ねるlispを使う
     
  15. (Q)セーブしたとき自動的にモードを切り替えたい
    (A)セーブしたとき自動的にモードを確認するツールを導入する
     
  16. (Q)bufferの名前に<2>とかでなく Dir 名付きtips/index.htmlのように表示したい
    (A)bufferの名前に<2>とかでなく Dir 名付きtips/index.htmlのように表示するlispを導入する
     
  17. (Q)同じファイル名のファイルをいっぱい開いてると bufferが区別できない
    (A)同名のファイルが複数バッファにあると区別できない場合、ディレクトリ名を付加するツール
     
  18. (Q)静的補完したあと動的補完したい。
    (A)静的補完したあと動的補完するlispを導入する
     
  19. (Q)一定のルールのテキストを大量につくりたい
    (A)テキストをlispで大量につくる方法を見る
    なにか、データを作る方法。
     
  20. (Q)正規表現の使い方がいまいちわからない
    (A)正規表現ってなにか テストしてみる
     
  21. (Q)xyzzyの機能が覚えられない
    (A)毎回起動時に xyzzyの tipsを表示してくれるfortune-yzを導入してみてはどうですか?
     



  22. 第三弾

  23. (Q)ちょっと計算したい
    (A) M-x calc を使って普通の電卓のように計算できます。いろいろ関数がたくさんあり、式が残ったりするので便利です

    使い方 tips

    set ratio=int
    と行うと 19/ 3 の結果が 6 になります。 int( 19 / 3) でもいいです。

    set radix=16
    と行うと 16進数で計算するようになります。

    分数や小数点なども問題なく動きます。
    sqrtやべき乗など、計算方法も豊富です。

    サンプルプログラム calc-modeでhelp()とおこなうと使い方メモを表示。

    (setf (symbol-function 'calc::help) #'calc::calc-help)
    
    (defun calc::calc-help (&rest args)
      (popup-string
       (concat
    	(format nil "set ~A=~A 16 32 64\n" 'calc::bits 'calc::unlimit ;'calc::*calc-bits*
    			)
    	(format nil "set ~A=~A ~A ~A ~A\n" 'calc::radix 'calc::bin 'calc::oct 'calc::dec 'calc::hex ;'calc::*calc-radix*
    			)
    	(format nil "set ~A=(not ~A)\n" 'calc::signed 'calc::unsigned ;'calc::*calc-unsigned*
    			)
    	(format nil "set ~A=~A ~A ~A " 'calc::ratio 'calc::int 'calc::ratio 'calc::float ;'calc::calc-ration*
    			)
    ;	"\ntype 'set' then could check now calc type\n if you want return value by int 'set ratio=int'\n"
        "\n'set'を打ち込むと現在の状態を表示します。 set ratio=int は返値が 整数に 'set radix=16' は 16進数になります\n"
        "int(19/4) とすると小数点を切ります。"
    	);concat
      (point))
     )
    <	

     


  24. (Q)ちょっと日付や暦を確認したい
    (A)M-x calendarでカレンダーをカラフルに表示させます。ちなみに カーソルを祝日に合わせるとすごいことに
     
  25. (Q)いちいち 日本語モードにするのは面倒。
    (A)(入力 POBOX / 検索 migemo Junk Scripts)を使う
     
  26. (Q)あー今日無性に ハノイの塔見てーというとき ....
    (A)ツールの (>_<)からハノイの塔が拝めます。
     
  27. (Q)気分転換に五目並べゲームしてーというとき ....
    (A)ツールの (>_<)から五目並べで対戦できます。
     
  28. (Q)ソースの一部だけ編集して、他のところを編集させないようにしたい。
    (A)リージョンで範囲を指定して C-x n (narrowing 狭める)/ C-x w(widing 広げる)
     


  29. (Q)バーの表示を変えたい
    (A)以下の設定をすれば、ツールバーや、ステータスバー、モードラインバー、タイトルなどの表示を変えることができます。
       (setq-default mode-line-format "%p:<%*:%#r:%i> (%M) [%k:%l]  %P %#F")
       ;			  "<%*:%#r:%i> %p (%M) [%k:%l]  %P(Ver.%v) %#F"); ウインドウ
    (setq-default title-line-format "%v%#h - %F") ;アプリケーション
    (setq *status-bar-format* "T") ;ステータスバー カスタマイズのページを参照してみてください

     
  30. 第四弾

  31. (Q)起動時にメモ帳を開く
    (A)特定のファイルを読むようにすれば良いです。(.xyzzyに以下のように書く)
    (defvar memo-file-name
     (map-slash-to-backslash "E:\document\memo.txt"))
    (find-file memo-file-name)
    (when (scan-buffer "--MEMO--")
     (forward-line)
    ; (insert-date-string-my-type)
      )

    または、*scan-buffer*の内容を保存するように設定(wiki:tips/scratchの中身って消さなくてもいいじゃん)しても良いかもしれません。
     


  32. (Q)いろいろ、lispを導入していたら、*auto-mode-alist*にたくさん同じモードが登録されて困る
    (A)*auto-mode-alist*(起動時の関数の切り替え)の設定で重複を避ける
    (delete "\\.html$" *auto-mode-alist* :key 'car :test 'string-match)
    (push '("\\.s?html?$" . html+-mode) *auto-mode-alist*)
    

     

  33. (Q)ソートしたい
    (A)コマンドプロンプト経由(sortコマンド)を使ってソートが出来ます。

    C-x | sort
    これでリージョンを範囲をソートできます(リージョン範囲を sort.exeに渡し、結果を再度リージョン範囲に割り当てる)

    treeコマンドや DIRで値をパスで渡せますね。

    バッファ全体の場合 "|"ではなく、"#" です。filter-bufferと言って、ちょっと概念が違いますが、この場合は同じような使い方です。

    "|"ではなく、"&"の場合は、は単なるコマンドの実行です。


     
  34. (Q)dumpファイルをつくり直すのが面倒
    (A)xyzzy開いたままで、 xyzzy.exeを Shift + Ctrl + ダブルクリックすると 自動的に再ダンプします。
    xyzzyを開いておけば、ダンプ失敗時のリスクを少し回避できます。
     
  35. (Q)辞書をxyzzyで作れるそうですが
    (A)フリーの辞書をxyzzyで活用できます。また、ddwinを引くこともできます。ただし今は ネットでもフリーの辞書があるのでカスタマイズするよりそちらの方がいいかもしれません。
     
  36. 第五弾

  37. (Q)引用記号付き貼付けをしたい。
    (A)こちらの、右クリックメニューに引用付き貼付けをするをどうぞ
     
  38. (Q)一時的に、単語に蛍光ペンみたく、色を付けてマークしておきたい
    (A)こちらの、右クリックメニューに色付けをするをどうぞ
     
  39. (Q)ファイル開いたら、文字化けしてたんですけど、秀丸の「閉じて開く」みたいなものはありませんか?・・
    (A)コードを変更するには、C-u M-x revert-buffer して、 文字コード ( sjis, euc-jp, jis など ) を入力すれば変更できます。 Version 0.2.0.125 、Version 0.2.0.121(こっそり):文字コード名 | 文字コードを勉強したい人はこちら
    今開いているバッファのファイルエンコードを変更したい場合は C-x C-k f [=>change-fileio-encoding関数]
    バッファの改行コードを変換の場合は、C-x C-k n [=>change-eol-code] でトグルします。

     
  40. (Q)ちょっとエンコードしたいのですが
    (A)単なる文字化けは 上の revert-bufferをします。
    メールの場合は M-xのあと多分これです。
     
  41. (Q)矩形選択のやり方を教えて欲しい・・
    (A)こちらをどうぞ
    メールアーカイブ:枠線と矩形
     
  42. (Q)wordチックな文字列のドラッグ&ドロップをしたい
    (A)ツール、共通設定、さまざま、D&D設定で可能です。 文字列を選択して、マウスで移動可能になります(ちなみに、Ctrlを押せば アイコンに+がついて、コピーになります。)。
     
  43. (Q)自分が想像している C-hが少し違う気がしますがどうすれば良いですか?
    (A)多分このことでしょう。 メールアーカイブ:global-set-key c-hの設定方法
     
  44. (Q)ディレクトリの表示をしたい。
    (A)(insert (format nil "~{~A\n~}" (directory "c:/Program Files" :absolute t :file-only t :recursive t)) )

    ちなみにネットワーク(Active Directory)先もネットワークドライブに設定すれば windowsでは F:\の用にアクセスできるので、dosのtreeコマンドなどが問題なく使えます。


     
  45. 第六弾

  46. (Q)いつの間にか 操作が変わった
    (A-1)設定されたキーを手がかりに対象の関数を確認する。
    (describe-key #\C-a)などと確認する
    (A-2)ライブラリが読み込まれているかどうかを確認
    (msgbox "hogehoge libarary 読まれる直前です。")
    (msgbox "hogehoge libarary 読まれました [確認フラグ:~A]" *hogehoge-status*)

     
  47. (Q)書かれたファイル名だけで、簡単にジャンプしたい
    (A)クリックパス機能があります。URLなどファイルっぽいところで右クリックすると一番下に開くメニューが出るかもしれません。
    Thu Jun 18 1998 Version 0.0.0.56.1 | * 右クリックでURLがオープンできるかも。
     
  48. (Q)renameしたり、ファイルを読み込んだり、emacs-write-fileしたときに modeがおかしくなる。
    (A)ファイルをリネームしたときに、modeを読み直すlispを実行してみてください。
     
  49. (Q)先程の編集行へ Undoでなく戻りたい。
    (A)* 最後に変更した行へ移動(goto-last-modified-line)
    Version 0.0.0.69
     
  50. (Q)xyzzyの起動が遅くなった
    (A) 起動を早くするには4つの方法を試してください。
    (A) 1.xyzzyの状態を保存している場合、なるべく不要なファイルは閉じてください
    (A) 2. 「.xyzzy」に書かれた内容を順次 site-lisp.lに移してコンパイル&ダンプしてください。
    (A) 3. よく使う .lファイルをコンパイルして .lcを作成しそちらを読み込むようにしてください。
    (A) 4. autoloadの設定をして 遅延読み込みをしてみてください。

    (もしかしたら *post/pre-command-hook*を見直すと、xyzzyの動作が早くなるかもしれません。)

     
  51. (Q)2ストロークのキーバインド(キー設定)をしたい
    (A)リストまたは ctrl-x-mapなどで設定してください。 (global-set-key '(#\C-x #\m) 'hogehoge)
     
  52. (Q)モードの変数がxyzzyを起動すると毎回初期化される
    (A)register-history-variable を使う(バッティングしないように注意)
    ;保存 変数設定
    (register-history-variable '*close-buffer-history*) ; ←リスト
     

参考リンク

辺見さんの FAQ集 | ひえさんのFAQ集 |

しょぼしょぼすくりぷと xyzzy編 トップへ