その他
Type: Variable
Package: editor
File: dabbrev.l
dabbrev-expandの検索対象を設定します。
t カレントバッファのみを検索します
nil 全バッファを検索します
SeeAlso: dabbrev-expand
Type: Variable
Package: editor
File: complete.l
補完リスト表示のデフォルトの動作を制御します。
:always 必ずポップアップ表示します。
:never *Completion*バッファで表示します。
上記以外 個々の設定(*minibuffer-popup-completion-list*等)が
適用されます。
SeeAlso: *minibuffer-popup-completion-list*
SeeAlso: *lisp-popup-completion-list*
Type: Function
Arguments: add-file-history-to-menu
Package: editor
File: app-menu.l
ファイルメニューの履歴のところに履歴を記録する?
(詳細不明)
(add-file-history-to-menu)
Type: Tips
(require "wip/winapi")
(c:define-dll-entry winapi:BOOL ShowWindow (winapi:HWND c:int) "user32")
(global-set-key #\C-z #'(lambda () (interactive)
(ShowWindow (get-window-handle) 6)))
Type: Function
Arguments: continue-popup
Package: editor
File: builtin.l
popup-stringで前回表示した内容を再度表示します。
SeeAlso: popup-string
Type: Function
Arguments: dabbrev-popup
Package: editor
File: dabbrev.l
dabbrev-expandのポップアップリスト版です。
SeeAlso: dabbrev-expand
SeeAlso: popup-list
Type: Function
Arguments: decode-mime-header
Package: editor
File: encdec.l
現在行から下にRFC822ヘッダを探してMIMEデコードします。
Type: Function
Arguments: ding
Package: editor
File: builtin.l
音を鳴らします?(詳細不明)
使用例:
;;; 音を鳴らす。
(ding)
=> t
Type: Function
Arguments: do-events
Package: lisp
File: builtin.l
長い処理の途中に、Windowsのイベントを処理してあげるおまじないらしい。
使用例:
;;; イベント処理をしてみる。
(do-events)
=> nil
Type: Tips
| DOSのコマンド(コンソールアプリって言ったほうがいいのかな?)
| をキックして、結果を文字列として、取り出す事はできますか?
こんな感じでしょうか。
(defun command-substitution (command)
(let ((outfile nil)
(buffer nil))
(unwind-protect
(save-excursion
(setq buffer (create-new-buffer "*foo*"))
(setq outfile (make-temp-file-name))
(call-process command :output outfile :show :hide :wait t)
(set-buffer buffer)
(insert-file-contents outfile)
(goto-char (1- (point-max)))
(when (looking-for "\n")
(delete-char 1))
(goto-char (point-min))
(replace-buffer "\n+" " " :regexp t)
(buffer-substring (point-min) (point-max)))
(and buffer
(delete-buffer buffer))
(and outfile
(delete-file outfile)))))
Type: Function
Arguments: gc &optional NO-MESSAGE
Package: lisp
File: builtin.l
(多分)ゴミ集めをします。
Type: Function
Arguments: get-image-size FILENAME
Package: editor
File: imagehdr.l
指定された画像ファイルの縦・横・フォーマットを取得することが可能です。
使用例:
;;; imageタグを挿入してみる
(require "imagehdr")
(defun html-write-image-tag (file)
(interactive "fJPEG, GIF, PNG : ")
(multiple-value-bind (width height fmt)
(get-image-size file)
(insert (format nil "<IMG SRC=\"~a\" WIDTH=~d HEIGHT=~d>" file width height))))
Type: Function
Arguments: list-server-resources SERVER-NAME &optional COMMENT-P
Package: editor
File: builtin.l
指定されたコンピュータの共有資源の一覧を取得します。
同時に資源のコメントも取得可能です。
使用例:
(list-server-resources "SAMURAI")
=> ("SPOOL" "E" "D" "A")
(list-server-resources "SAMURAI" t)
=> (("SPOOL" "") ("E" "CD-ROM Drive") ("D" "Backup Storage") ("A" "FD Drive"))
SeeAlso: list-servers
Type: Function
Arguments: list-servers &optional COMMENT-P
Package: editor
File: builtin.l
ネットワークコンピュータの一覧が取得できます。
同時にコンピュータに設定されているコメントも取得可能です。
使用例:
(list-servers)
=> ("SAMURAI" "ROUNIN")
(list-servers t)
=> (("SAMURAI" "Main Machine") ("ROUNIN" "Sub Machine"))
SeeAlso: list-server-resources
Type: Function
Arguments: load-keyword-file NAME &optional ICASE TABLE CONDITION
Package: editor
File: kwd.l
キーワードファイルをロードします。
使用例:
(and *xmldoc-keyword-file*
(null *xmldoc-keyword-hash-table*)
(setq *xmldoc-keyword-hash-table*
(load-keyword-file *xmldoc-keyword-file* t)))
(when *xmldoc-keyword-hash-table*
(make-local-variable 'keyword-hash-table)
(setq keyword-hash-table *xmldoc-keyword-hash-table*))
Type: Macro
Arguments: long-operation &rest BODY
Package: editor
File: misc.l
カーソルを砂時計にします。明らかに処理時間が長いことが見込まれる場合にし
ようすると良いと思います。
使用例:
(long-operation
(message "start")
;; 何か長い処理
(message "end"))
Type: Function
Arguments: lookup-dictionary DIRECTORY DIC-FILE INDEX-FILE WORD
Package: editor
File: builtin.l
辞書引き機能
(詳細不明)
使用例:
(lookup-dictionary *edict-dictionary-path* "xyzzydic" "xyzzye2j" s)
Type: Function
Arguments: not X
Package: lisp
File: evalmacs.l
否定を返します。
non nilならばnilを返し、nilならばtを返します。機能としてはnullと同じです。
Type: Function
Arguments: number-of-function-bar-labels
Package: editor
File: builtin.l
ファンクションバーのラベルの数を返します。非表示の場合でも数値を返します。
SeeAlso: set-number-of-function-bar-labels
Type: Tips
; 意味もなく全部のシートに「東西南北」を書き込む
(setq application (ole-create-object "Excel.Application"))
(ole-putprop application 'visible 1)
(setq workbook (ole-method (ole-getprop application 'Workbooks) 'Add))
(setq numbers-of-worksheets
(ole-getprop
(ole-getprop workbook 'worksheets)
'count))
(setq worksheet-index 1)
(while (<= worksheet-index numbers-of-worksheets)
(setq worksheet
(ole-getprop workbook 'Worksheets worksheet-index))
(ole-putprop (ole-method worksheet 'Range "A1:D1")
'value #("東" "西" "南" "北"))
(setq worksheet-index (+ worksheet-index 1)))
こんな小細工をしてみたんですけどどうでしょう?
(defmacro $ (obj prop &rest args)
`(ole-method ,obj ',prop ,@args))
(defsetf $ (obj prop &rest args) (x)
`(progn
(ole-putprop ,obj ',prop ,x ,@args)
,x))
(let (app workbook worksheet range)
(setq app (ole-create-object "Excel.Application"))
(setf ($ app Visible) t)
(setq workbook ($ ($ app Workbooks) Add))
(setq worksheet ($ workbook Worksheets 1))
(setf ($ ($ worksheet Range "A1:D1") Value) '("North" "South" "East" "West"))
(setf ($ ($ worksheet Range "A2:B2") Value) #(5.2 10))
(setf ($ ($ worksheet Range "C2") Value) 8)
(setf ($ ($ worksheet Range "D2") Value) 20)
(setq range ($ worksheet Range "A1:D2"))
($ range Select)
($ ($ workbook Charts) Add)
(sit-for 5)
(setf ($ workbook saved) t)
($ ($ app ActiveWorkbook) Close 0)
($ app Quit))
Type: Function
Arguments: popup-list LIST CALLBACK &optional POINT
Package: editor
File: builtin.l
ポップアップリストを表示します。選択された項目を引数にコールバッ
ク関数が呼び出されます。
使用例:
(defun func ()
(popup-list
'("123" "abc" "xyz")
#'(lambda (x) (msgbox "\"~A\" selected" x))))
=> func
SeeAlso: dabbrev-popup
Type: Function
Arguments: popup-string STRING POINT &optional TIMEOUT
Package: editor
File: builtin.l
文字列をポップアップさせます。ツールチップのポップみたいな表示です。
STRING : ポップアップさせる文字列を指定します。
POINT : 文字列を表示する位置をポイントで指定します。
TIMEOUT : 表示を止めるまでの秒数を指定します。
Type: Function
Arguments: refresh-screen &optional F
Package: editor
File: builtin.l
画面をリフレッシュします。
キー入力の方が画面の再描画よりも優先されます。従って、外部プロセスから非
同期に入力される文字列をバッファに出力したり、処理の途中でダイアログを表
示すると、画面が追いついていない場合があります。そのような場合に実行します。
Type: Function
Arguments: set-fill-prefix
Package: editor
File: fill.l
行頭からポイントまでをfill prefixに設定します。行頭で実行された
場合には、fill prefixはクリアされます。auto-fill-modeでは、折り
返しが行なわれると行頭にfill prefixが挿入されます。
Type: Function
Arguments: set-number-of-function-bar-labels N
Package: editor
File: builtin.l
ファンクションバーのラベルの数を設定します。指定できる数は、
4/5/8/10/12/15です。
SeeAlso: number-of-function-bar-labels
Type: Function
Arguments: show-html-help
Package: editor
File: winhelp.l
カーソル位置の文字列を HTML Help から検索します。
*html-help-path* に設定されたヘルプファイルが使用されます。
*html-help-path* の値は、「共通設定」-「ディレクトリ」-「HTML ヘルプ」-
「COL/CHMファイル」から設定できるみたいです。
Type: Function
Arguments: show-winhelp
Package: editor
File: winhelp.l
カーソル位置の文字列を WinHelp から検索します。[C-F1]
*winhelp-path* に設定されたヘルプファイルが使用されます。
Type: Function
Arguments: *activate-toplevel
Package: system
File: builtin.l
xyzzyを他のウィンドウの最前面に表示します。
Type: Function
Arguments: base64-decode INPUT-STRING-OR-STREAM &optional OUTPUT-STREAM FOLD-WIDTH
Package: system
File: builtin.l
Base64でデコードします。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
OUTPUT-STREAM : 出力のストリームを指定します。
nil デコードの結果はbase64-decodeの戻り値となります。
nil以外 デコードの結果はOUTPUT-STREAMに出力されます。
使用例:
(si:base64-decode "gtmCsILZgrA=")
=> "ほげほげ"
SeeAlso: si:base64-encode
Type: Function
Arguments: base64-encode INPUT-STRING-OR-STREAM &optional OUTPUT-STREAM
Package: system
File: builtin.l
Base64エンコードします。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
OUTPUT-STREAM : 出力のストリームを指定します。
nil エンコードの結果はbase64-encodeの戻り値となります。
nil以外 エンコードの結果はOUTPUT-STREAMに出力されます。
使用例:
(si:base64-encode "ほげほげ")
=> "gtmCsILZgrA="
SeeAlso: si:base64-decode
Type: Function
Arguments: si:closure-variable CLOSURE
Package: system
File: builtin.l
クロージャの中身を覗くための関数です。
CLOSURE : レキシカルクロージャもしくは関数定義に
レキシカルクロージャを持つシンボルを指定します。
以下の関数でクロージャを参照することが可能です。
si:closure-variable closure
si:closure-function closure
si:closure-frame closure
si:closure-body closure
使用例:
(setq foo (let ((x 3)) #'(lambda () (incf x) x)))
=> #<lexical-closure: (anonymous)>
(funcall foo)
=> 4
(funcall foo)
=> 5
(si:closure-variable foo)
=> ((x . 5))
Type: Function
Arguments: md5 INPUT-STRING-OR-STREAM
Package: system
File: builtin.l
MD5ハッシュ値を得ます。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
使用例:
(si:md5 "ほげほげ")
=> "11e100e3eb6e6171d9681ba6641794e3"
Type: Function
Arguments: quoted-printable-decode INPUT-STRING-OR-STREAM &optional OUTPUT-STREAM UNDERSCORE-TO-SPACE
Package: system
File: builtin.l
Quoted-Printableデコードします。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
OUTPUT-STREAM : 出力のストリームを指定します。
nil デコードの結果はquoted-printable-decodeの戻り値となります。
nil以外 デコードの結果はOUTPUT-STREAMに出力されます。
Type: Function
Arguments: uudecode INPUT-STRING-OR-STREAM &optional OUTPUT-STREAM
Package: system
File: builtin.l
uudecodeします。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
OUTPUT-STREAM : 出力のストリームを指定します。
nil デコードの結果はuudecodeの戻り値となります。
nil以外 デコードの結果はOUTPUT-STREAMに出力されます。
SeeAlso: si:uuencode
Type: Function
Arguments: uuencode INPUT-STRING-OR-STREAM &optional OUTPUT-STREAM
Package: system
File: builtin.l
uuencodeします。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
OUTPUT-STREAM : 出力のストリームを指定します。
nil エンコードの結果はuuencodeの戻り値となります。
nil以外 エンコードの結果はOUTPUT-STREAMに出力されます。
SeeAlso: si:uudecode
Type: Function
Arguments: www-url-decode INPUT-STRING-OR-STREAM &optional OUTPUT-STREAM
Package: system
File: builtin.l
URL デコードを行います。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
OUTPUT-STREAM : 出力ストリームです。省略すると文字列が戻ります。
t を指定した場合は標準出力へ
nil を指定した場合は文字列として出力します。
使用例:
(si:www-url-decode "%82%D9%82%B0%82%D9%82%B0" nil)
=>"ほげほげ"
補足:
xyzzy 0.2.2.233 では builtin.l 中の引数の記述が間違っています。
SeeAlso: si:www-url-encode
Type: Function
Arguments: www-url-encode INPUT-STRING-OR-STREAM &optional OUTPUT-STREAM LITERAL-CHARS
Package: system
File: builtin.l
RFC1738 に基づき文字列の URL エンコードを行います。
INPUT-STRING-OR-STREAM : 入力の文字列または入力ストリームを指定します。
OUTPUT-STREAM : 出力ストリームです。省略すると文字列が戻ります。
t を指定した場合は標準出力へ
nil を指定した場合は文字列として出力します。
LITERAL-CHARS : エンコードしない文字群を指定します。
使用例:
; 標準では Shift_JIS としてエンコード
(si:www-url-encode "かめ")
=>"%82%A9%82%DF"
; EUC-JP としてエンコード
(si:www-url-encode (map-internal-to-euc "かめ"))
=>"%A4%AB%A4%E1"
; 変換しない文字群を明示する
(si:www-url-encode "www-url-encode" nil "0-9A-Za-z")
=>"www%2Durl%2Dencode"
補足:
xyzzy 0.2.2.233 では builtin.l 中の引数の記述が間違っています。
RFC1738は現在RFC3986によって更新されています。
RFC3986で定義されている unreserved な文字の種類は "0-9A-Za-z---._~" です。
SeeAlso: si:www-url-decode
Type: Function
Arguments: update-mode-line &optional BUFFER
Package: editor
File: builtin.l
モード行を更新します。mode-line-formatの変更などを行った場合に、速やかに
モード行に反映したい場合に実行します。
Type: Tips
(defun deleted-buffer-p (buffer)
(not (ignore-errors (buffer-kanji-fileio-code buffer))))
Type: Tips
キーワードファイルは*keyword-load-path*もしくはetc-pathから検索
をします。$XYZZY/etc配下のファイルを参照して下さい。
形式:
属性を指定する場合には以下の二つの形式で記述します。
;*n[attrib]
;**fg[bg[attrib]]
n キーワード番号(0-5) 3-5は0-2と同じ色の反転
fg 文字色 0-f (0ならば普通の色)
bg 背景色 0-f (0ならば普通の色)
attrib 属性みたいなもの。以下のものの組み合わせ
b bold
u underline
s strike-out
l 一行丸ごと
条件:
xyzzy 0.2.207からload-keyword-fileにconditionを指定する
ことが可能になりました。conditionはitemと比較を行います。
$XYZZY/lisp/html-kwd.lを参照
;*+ conditionに関わらず以降を有効にする
;*- conditionに関わらず以降を無効にする
;*+item itemがconditionに一致した場合に以降を有効にする
;*-item itemがconditionに一致した場合に以降を無効にする
;*& 以降はHTMLのタグ以外でも有効なキーワードとする
;*< 以降はHTMLのタグでのみ有効なキーワードとする
Type: Tips
コマンド別にミニバッファのヒストリを管理する方法です。
;;; ヒストリのリスト
(setq foo-history '("qux" "quux" "quuux"))
;;; 管理したいコマンド
(defun foo ()
(interactive)
(list
(let ((*minibuffer-default-history* foo-history)) ; ヒストリを設定する
(prog1
(completing-read
"foo: " ; プロンプト文字列
'("foo" "bar" "baz") ; 補完候補
:must-match nil ; 必ず補完候補にマッチしなきゃ駄目?
:case-fold t) ; 大文字小文字を区別する?
; 変更されたかもしれないから戻しておく
(setq foo-history *minibuffer-default-history*)))))
Type: Tips
(defun find-modify-save-test (file)
(interactive "f")
(let (temp-buffer)
(unwind-protect
(progn
;; テンポラリのバッファを作って
(setq temp-buffer (create-new-buffer "*foo*"))
;; カレントバッファにして
(set-buffer temp-buffer)
;; ファイルを読み込む
(insert-file-contents (merge-pathnames file *src-dir*))
(goto-char (point-min))
;; ここでいろいろやる
;; ファイルに書く
(write-file (merge-pathnames file *dst-dir*)))
;; バッファを作っていたら消す(kill-bufferはうるさいのでdelete-bufferで)
(when temp-buffer
(delete-buffer temp-buffer)))))
Type: Tips
印刷時のヘッダやフッタに関する表記方法です。以下は
Toy's xyzzy memo - Data Library -
http://www.carabiner-systems.com/xyzzy/data.html)
からの引用です。
--- 引用 ---
印刷時のヘッダやフッタに関する表記
header and footer 1999/12/25 Written by Tetsuya Kamei [xyzzy:03752]
%f ファイル名
%F ファイル名 (ディレクトリ付き)
%b バッファ名
%p ページ番号
%P 総ページ数
%Y 西暦 (YYYY)
%y 西暦 (YY)
%m 月 (1〜12)
%0m 月 (01〜12)
%*m 月 (January〜December)
%:m 月 (Jan〜Dec)
%d 日 (1〜31)
%0d 日 (01〜31)
%*w 曜日 (Sunday〜Saturday)
%:w 曜日 (Sun〜Sat)
%w 曜日 (日〜土)
%h 時 (0〜23)
%0h 時 (00〜23)
%H 時 (0〜11)
%0H 時 (00〜11)
%:H 時 (1〜12)
%0:H 時 (01〜12)
%*H (AM/PM)
%*:H (am/pm)
%M 分 (0〜59)
%0M 分 (00〜59)
%s 秒 (0〜59)
%0s 秒 (00〜59)
%- 横線
%l 以前を左詰め
%r 以降を右詰め
指定されない部分は中央揃え
それ以外の文字はそのまま
--------------------------------------------------------------------------------
(デフォルト)
[ヘッダ] %F%l%r%:w, %0d %:m %Y %0h:%0M:%0s
[フッタ] - %p -
Type: Tips
load インタプリタでloadします。
load-library *.lcがあればそれをロードします。
*.lcがなければ*.lをロードします。
autoload 関数1つ単位で、呼ばれたときloadするようにできます。
関数が呼ばれるまではloadされません。
require あるライブラリをロードします。ただし、既に
ロード済みならロードしません。
*modules* この変数を見ると今どのモジュールがロード済か分かります。
既にロード済だともうロードしません。
Type: Tips
こんなに簡単にポップアップメニューから実行できます。
使用例:
;;; C-RBtnUpで独自のポップアップメニューにします。
(global-set-key #\C-RBtnUp 'my-apps-popup)
(defun my-apps-popup ()
(interactive)
(track-popup-menu
(define-popup-menu
(:item nil "行番号(&L)"
'toggle-line-number)
(:item nil "スクロールバー(&B)"
'toggle-vscroll-bar)
(:item nil "モードライン(&M)"
'toggle-mode-line)
(:item nil "ファンクションキー(&F)"
'toggle-function-bar)
(:item nil "折り返し(&T)"
'toggle-fold-line)
(:item nil "リードオンリー(&R)"
'toggle-read-only))))