ウィンドウ
Type: Variable
Package: editor
File: page.l
previous-page と next-page で重なって表示される行数を指定します。
*page-scroll-half-window* が non-nilのときは効果はありません。
SeeAlso: next-page
SeeAlso: previous-page
SeeAlso: *page-scroll-half-window*
Type: Variable
Package: editor
File: page.l
next-page/previous-pageのスクロールの単位を半画面ずつにするか制御します。
t 半画面ずつスクロール
nil 一画面ずつスクロール
SeeAlso: next-page
SeeAlso: previous-page
Type: Variable
Package: editor
File: page.l
ステータスバーに表示する情報を指定する文字列です。文字の並び順に表示されます。
t 時計
p カーソル位置
c カーソル位置の文字コード(内部コード)
u カーソル位置の文字コード(ユニコード)
T 時計(曜日入り)
使用例:
(setq *status-bar-format* "cupT")
Type: Function
Arguments: count-windows &optional MINIBUF
Package: editor
File: window.l
ウィンドウの数を返します。
MINIBUF : フラグはミニバッファウィンドウを数えるかどうかです。
t ミニバッファを数える。
nil ミニバッファを数えない。
Type: Function
Arguments: current-window-configuration
Package: editor
File: builtin.l
現在のウィンドウの状態を返します。
ここでいうウィンドウの状態とは、画面の分割状態、表示されているバッファを
指します。ウィンドウの状態はset-window-configurationで設定することが出来
ます。
使用例:
;;; 画面の状態を元に戻す。
(split-window)
=> t
(setq winconf (current-window-configuration))
=> (window-configuration #<window> ......
(delete-other-windows)
=> t
(set-window-configuration winconf)
SeeAlso: set-window-configuration
Type: Function
Arguments: delete-other-windows
Package: editor
File: builtin.l
現在カーソルがあるウィンドウ以外のウィンドウを削除します。
ただし、現在カーソルがあるウィンドウがミニバッファウィンドウの場合は他の
ウィンドウを削除しません。
戻り値:
t ウィンドウの削除に関わらず t 固定
補足:
本関数はコマンドで、初期設定では C-x 1 にバインドされています。
SeeAlso: delete-window
Type: Function
Arguments: delete-window
Package: editor
File: builtin.l
現在カーソルがあるウィンドウを削除します。
ミニバッファウィンドウは削除できません。
また、ミニバッファウィンドウ以外のウィンドウが現在のウィンドウのみの場合
は simple-error を発生します。
ウィンドウ削除後は、以下の条件のうち、最も優先度の高い条件を満たすミニ
バッファウィンドウ以外のウィンドウの領域を広げ、そのウィンドウを
set-window します。
1. 削除ウィンドウの左辺と、右辺が一致したウィンドウ
2. 削除ウィンドウの右辺と、左辺が一致したウィンドウ
3. 削除ウィンドウの上辺と、底辺が一致したウィンドウ
4. 削除ウィンドウの底辺と、上辺が一致したウィンドウ
戻り値:
t ウィンドウ削除成功
nil ウィンドウ削除失敗
補足:
本関数はコマンドで、初期設定では C-x 0 にバインドされています。
xyzzy 0.2.2.233 では (delete-buffer X) に対して (deleted-buffer-p X)
が存在しますが、(delete-window X) に対して (deleted-window-p X) は存在
しません。
;;; deleted-buffer-p を模した deleted-window-p の定義
(in-package "editor")
(export '(deleted-window-p))
(defun deleted-window-p (window)
(unless (windowp window)
(error 'lisp::type-error :datum window :expected-type 'window))
(handler-case
(progn
(window-buffer window)
t)
(program-error (c)
nil)))
SeeAlso: set-window
SeeAlso: delete-other-windows
SeeAlso: minibuffer-window-p
SeeAlso: delete-buffer
SeeAlso: deleted-buffer-p
Type: Function
Arguments: enlarge-window &optional EXTEND VERTICAL
Package: editor
File: builtin.l
ウィンドウの行数・桁数を変更します。
VERTICALを指定しない場合には行数を変更します。
EXTEND : 大きくする行数・桁数を指定します。負数を指定すると小さくなります。
VERTICAL : 桁・行のどちらを設定するか指定します。
t 桁数を変更する。
nil 行数を変更する。
使用例:
;;; ウィンドウを変更してみる。
(enlarge-window 2 t) => t
(enlarge-window 100) => 変更できません
Type: Function
Arguments: enlarge-window-horizontally &optional (ARG 1)
Package: editor
File: window.l
カーソルのあるウィンドウの幅を大きくします。
使用例:
;;; listerのマージンからウィンドウの幅を引く場合
(enlarge-window-horizontally (- *lister-margin* (window-width)))
SeeAlso: shrink-window-horizontally
Type: Function
Arguments: get-buffer-window BUFFER &optional START-WINDOW
Package: editor
File: builtin.l
バッファを表示しているウィンドウを返します。同じバッファが複数のウィンド
ウに表示されていますので、START-WINDOWから順番に探し始めます。
現在表示されてないバッファはnilが返ります。
BUFFER : 検索するバッファ
START-WINDOW : 検索をし始めるウィンドウ
使用例:
;;; window-bufferも使ってみる。
(selected-buffer)
=> #<buffer: *scratch*>
(window-buffer (get-buffer-window (selected-buffer)))
=> #<buffer: *scratch*>
SeeAlso: window-buffer
Type: Function
Arguments: get-window-start-line &optional WINDOW
Package: editor
File: builtin.l
ウィンドウの先頭行が表示行で何行目かを返します。
補足:
どういった場合に起こりえるのか不明ですが、ウィンドウにバッファが関連付
いていない場合は nil を返します。
SeeAlso: current-virtual-line-number
SeeAlso: current-line-number
Type: BufferLocal
Package: editor
モードラインのフォーマットを設定します。
タイトルバーのフォーマットと同様ですので、title-bar-formatを参照して下さい。
SeeAlso: title-bar-format
Type: Function
Arguments: next-page &optional (ARG 1)
Package: editor
File: page.l
指定ページ分画面を下スクロールします。
*page-scroll-half-window* が non nil なら半画面ずつスクロールします。
SeeAlso: previous-page
Type: Function
Arguments: next-window WINDOW &optional MINIBUF
Package: editor
File: builtin.l
WINDOW の次のウィンドウを返します。
MINIBUF : ミニバッファウィンドウを候補に入れるか
nil 無視する
non-nil 候補に入れる
SeeAlso: previous-window
Type: Function
Arguments: other-window &optional (ARG 1 F) NO-ERROR
Package: editor
File: window.l
分割されたウィンドウの中を移動します。
ARG : ARG番目のウィンドウに移動します。
負数であれば、ARG番前のウィンドウに移動します。
NO-ERROR : (count-windows)以上の数値を指定した場合の動作を制御します。
nil (count-windows)以上の数値を指定するとエラーを発生します。
t (count-windows)以上の数値を指定してもtを返す。
Type: Function
Arguments: pop-to-buffer BUFFER &optional POPUP-WINDOWS VERT-P
Package: editor
File: window.l
指定されたバッファを表示します。POPUP-WINDOWS が指定された場合画面を分割
してバッファを表示します。ウィンドウが既に分割されていたら、新たに分割せ
ずにそのウィンドウに移動し表示します。
表示幅が指定された場合には、縦分割が指定されていない場合、モード行を表示
している状態で、およそ指定された数値分の行数が表示できる大きさのウィンド
ウができます。
縦分割が指定された場合には、上下ではなく左右に分割し、行番号を表示してい
ない状態で、およそ指定された数値分の列数が表示できる大きさのウインドウが
できます。
BUFFER : バッファ、または、バッファの名前を指定します。
POPUP-WINDOWS : 分割する行数/列数を指定します。
t ニ分割します。
整数 指定行数/列数で分割します。
nil ウィンドウが分割されていない場合でも新たに
分割しません。
VERT-P : 縦方向に分割します。
non-nil 左右にニ分割します。
nil 上下にニ分割します。
使用例:
;;; den8の場合
(defvar *den8-summary-window-ratio* 1/4)
(defun den8-viewer ()
(let ((view (switch-to-buffer "*Den8 View*"))) ; Viewを作る
(let ((sum (switch-to-buffer "*Den8 Summary*"))) ; Summaryを作る
<初期化・省略> ))
(delete-other-windows) ; 自分以外の全部のウインドウを消す
(den8-popup-summary-buffer)) ; 2分割して、上下にサマリと内容を表示
(defun den8-popup-summary-buffer ()
(pop-to-buffer den8-summary-buffer
(truncate (* (screen-height) *den8-summary-window-ratio*))))
Type: Function
Arguments: pos-not-visible-in-window-p POINT &optional WINDOW
Package: editor
File: builtin.l
指定されたポイントPOINTがウィンドウの表示範囲内にないかを返します。
t 表示範囲内にない。
nil 表示範囲内にある。
Type: Function
Arguments: pos-visible-in-window-p POINT &optional WINDOW
Package: editor
File: window.l
ポイントがウィンドウの表示範囲内にあるかを返します。
t 表示範囲内にある。
nil 表示範囲内にない。
Type: Function
Arguments: previous-page
Package: editor
File: page.l
指定ページ分画面を上スクロールします。
*page-scroll-half-window* が non nil なら半画面ずつスクロールします。
SeeAlso: next-page
Type: Function
Arguments: previous-window WINDOW &optional MINIBUF
Package: editor
File: builtin.l
WINDOW の前のウィンドウを返します。
MINIBUF : ミニバッファウィンドウを候補に入れるか
nil 無視する
non-nil 候補に入れる
SeeAlso: next-window
Type: Function
Arguments: recenter &optional ARG
Package: editor
File: window.l
バッファをスクロールして画面上の表示位置を調整します。
引数を指定しなければ現在行が画面の中央に位置します。
(recenter 0)で現在行がウインドウの一番上に来ます。
Type: Special Form
Arguments: save-window-excursion {FORM}*
Package: editor
File: builtin.l
処理の前後でカレントウィンドウとウィンドウのレイアウトの状態を保存します。
SeeAlso: save-excursion
Type: Function
Arguments: screen-height
Package: editor
File: builtin.l
xyzzyのウィンドウ全体の高さが何行になるのかを返します。
Type: Function
Arguments: screen-width
Package: editor
File: builtin.l
xyzzyのウィンドウ全体の幅が何桁になるのかを返します。
SeeAlso: screen-height
Type: Function
Arguments: scroll-down-both-window
Package: editor
File: cmds.l
現在のウィンドウと、次のウィンドウを同時に下スクロールします。[S-C-Up]
Type: Function
Arguments: scroll-up-both-window
Package: editor
File: cmds.l
現在のウィンドウと、次のウィンドウを同時に上スクロールします。[S-C-Down]
Type: Function
Arguments: scroll-window ARG
Package: editor
File: builtin.l
ウィンドウを指定行数分スクロールします。
負の数値を指定すると逆方向にスクロールします。
使用例:
;;; 0.3秒おきに1行ずつスクロールさせる。
(dotimes (i 4) (scroll-window 1) (sit-for .3))
=> nil
(scroll-window n)
Type: Function
Arguments: scroll-window-horizontally ARG
Package: editor
File: builtin.l
ウィンドウを指定桁数分、右にスクロールします。
負の数値を指定すると逆方向にスクロールします。
SeeAlso: scroll-window
Type: Function
Arguments: selected-window
Package: editor
File: builtin.l
現在アクティブなウィンドウを返します。
使用例:
;;; 現在のウィンドウを返してみる。
(selected-window)
=> #<window 54137832>
SeeAlso: set-window
Type: Function
Arguments: set-default-fold-width WIDTH
Package: editor
File: builtin.l
テキストの折り返し方法を制御します。[ツール]-[共通設定]-[表示]の"テキス
トの折り返し"と同じで、全体に影響します。
WIDTH : 折り返しの方法を指定します。
nil 折り返しません。
t ウィンドウの幅で折り返します。
数値 折り返し位置を指定します。
Type: Function
Arguments: set-local-window-flags WINDOW-OR-BUFFER FLAGS ON-OR-OFF
Package: editor
File: builtin.l
特定のウィンドウもしくはバッファの各種表示を制御します。
BUFFER-OR-WINDOW : バッファかウィンドウのいずれかを指定します。
FLAG : 下のフラグのどれかを指定します。
*window-flag-alternate-vscroll-bar* バッファ全体表示できている
場合の垂直スクロールバー
*window-flag-cursor-line* 行カーソル
*window-flag-eof* EOF
*window-flag-fold-line* 折り返しライン
*window-flag-fold-mark* 折り返し
*window-flag-full-width-space* 全角スペース
*window-flag-half-width-space* 半角スペース
*window-flag-hscroll-bar* 水平スクロールバー
*window-flag-just-inverse* (詳細不明)
*window-flag-line-number* 行番号
*window-flag-mode-line* モード行
*window-flag-newline* 改行
*window-flag-ruler* ルーラ
*window-flag-scrolling* (詳細不明)
*window-flag-tab* タブ
*window-flag-vscroll-bar* 垂直スクロールバー
*window-flag-zenkaku-space* 全角スペース
ON-OR-OFF : 変更後の値を設定します。
t フラグをonにします。
nil フラグをoffにします。
それ以外 デフォルトに戻します。
使用例:
;;; カレントバッファの行番号を表示しないようにする。
(set-local-window-flags (selected-buffer)
*window-flag-line-number* nil)
Type: Function
Arguments: set-window WINDOW
Package: editor
File: builtin.l
ウィンドウを変更します。
selected-window や get-buffer-window で取得したウィンドウに移動します。
WINDOW:移動先のウィンドウ
使用例:
;;; *scratch*が表示されていれば移動する。
(setq win (get-buffer-window (find-buffer "*scratch*")))
=> #<window 48436204>
(if win (set-window win))
=> t
(selected-buffer)
=> #<buffer: *scratch*>
Type: Function
Arguments: set-window-configuration CONF
Package: editor
File: builtin.l
取得しておいたウィンドウの状態に戻します。
CONF:current-window-configurationで取得したウィンドウの状態
SeeAlso: current-window-configuration
Type: Function
Arguments: shrink-window &optional (ARG 1)
Package: editor
File: window.l
カーソルのあるウィンドウの高さを小さくします。
SeeAlso: shrink-window-horizontally
SeeAlso: enlarge-window
Type: Function
Arguments: shrink-window-horizontally &optional (ARG 1)
Package: editor
カーソルのあるウィンドウの幅を小さくします。
使用例:
;;; listerのマージンからウィンドウの幅を引く場合
(shrink-window-horizontally (- (window-width) *lister-margin*))
SeeAlso: enlarge-window-horizontally
Type: Function
Arguments: split-window &optional ARG VERTICAL
Package: editor
File: builtin.l
画面を二分割します。分割行数と分割方向を指定可能です。
ARG : 分割する行数を指定します。
VERTICAL : 縦方向に分割します。
t 横に二分割します。
nil 縦に二分割します。
分割後にカレントになるウィンドウには注意が必要です。
(split-window 20 t)
=> +20-+---------+
| | |
+↑-+---------+
こちらにカーソルがくる
(split-window -20 t)
=> +---------+20-+
| | |
+---------+↑-+
こちらにカーソルがくる
(split-window 20 nil)
=> +-------------+
| ←こちらにカーソルがくる
+-------------+
+-------------+
(split-window -20 nil)
=> +-------------+
+-------------+
| ←こちらにカーソルがくる
+-------------+
SeeAlso: split-window-vertically
Type: Function
Arguments: split-window-vertically &optional ARG
Package: editor
File: window.l
多分、 split-window の横に二分割するのと同じです。
SeeAlso: split-window
Type: Function
Arguments: window-columns &optional WINDOW
Package: editor
File: builtin.l
ウィンドウの文字を表示可能な領域の幅をキャラクタ単位で返します。
window-width が対象とする幅から、必要に応じて「行番号」表示領域、「折り
返し」マーク表示領域を除いた幅を計算対象とします。
キャラクタ幅に満たない幅については切り捨てますが、返す最小値は 1 です。
補足:
具体的には、window-width の返す値から、「行番号」表示時は、行番号表示
桁数 (xyzzy 0.2.2.233 では 6) +境界線分 (1) が引かれます。
さらに、「折り返し」表示かつ、テキストの折り返しが「ウィンドウ幅」の場
合には、「折り返し」マーク分 (1) が引かれます。
SeeAlso: window-width
SeeAlso: window-lines
SeeAlso: window-height
Type: Function
Arguments: window-coordinate &optional WINDOW
Package: editor
File: builtin.l
指定されたウィンドウの座標をリストで返します。
(左端のx座標 左端のy座標 右端のx座標 右端のy座標)
座標軸は左上が (0 0) で右下にいくほど値が大きくなり、
単位はピクセルです。
使用例:
(window-coordinate)
=> (0 0 693 636)
SeeAlso: window-width
SeeAlso: window-height
Type: Function
Arguments: window-height &optional WINDOW
Package: editor
File: builtin.l
ウィンドウの高さを行単位で返します。
部分的でなく完全に表示可能な行の数を返しますが、返す最小値は 1 です。
xyzzy 0.2.2.232 では内部的には window-lines と完全に同一定義です。
使用例:
;;; 現在のウィンドウを縦に半分にする。
(split-window (- (floor (window-height) 2) 2))
=> t
補足:
xyzzy 0.2.2.232 では内部的には window-lines と完全に同一定義ですが、
window-height と window-lines は同一オブジェクトではありません。
(eq #'window-height #'window-lines) => nil
SeeAlso: window-lines
SeeAlso: window-width
SeeAlso: window-columns
Type: Function
Arguments: window-lines &optional WINDOW
Package: editor
File: builtin.l
ウィンドウの表示可能行数を返します。
部分的でなく完全に表示可能な行の数を返しますが、返す最小値は 1 です。
xyzzy 0.2.2.232 では内部的には window-height と完全に同一定義です。
使用例:
(window-lines)
=> 18
補足:
xyzzy 0.2.2.232 では内部的には window-height と完全に同一定義ですが、
window-lines と window-height は同一オブジェクトではありません。
(eq #'window-lines #'window-height) => nil
SeeAlso: window-height
SeeAlso: window-width
SeeAlso: window-columns
Type: Function
Arguments: window-width &optional WINDOW
Package: editor
File: builtin.l
ウィンドウの幅をキャラクタ単位で返します。
文字を表示可能な領域の幅ではなく、「行番号」表示領域、「折り返しマーク」
表示領域を含んだ領域についての幅を返します。
キャラクタ幅に満たない幅については切り捨てますが、返す最小値は 1 です。
SeeAlso: window-columns
SeeAlso: window-height
SeeAlso: window-lines