ウィンドウ


*next-screen-context-lines*

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*
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

*page-scroll-half-window*

Type: Variable
Package: editor
File: page.l
next-page/previous-pageのスクロールの単位を半画面ずつにするか制御します。 

  t     半画面ずつスクロール
  nil   一画面ずつスクロール

SeeAlso: next-page
SeeAlso: previous-page
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

*status-bar-format*

Type: Variable
Package: editor
File: page.l
ステータスバーに表示する情報を指定する文字列です。文字の並び順に表示されます。 

  t     時計 
  p     カーソル位置
  c     カーソル位置の文字コード(内部コード)
  u     カーソル位置の文字コード(ユニコード)
  T     時計(曜日入り) 

使用例: 
  (setq *status-bar-format* "cupT")

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

count-windows

Type: Function
Arguments: count-windows &optional MINIBUF
Package: editor
File: window.l
ウィンドウの数を返します。 

  MINIBUF : フラグはミニバッファウィンドウを数えるかどうかです。 
        t       ミニバッファを数える。 
        nil     ミニバッファを数えない。 

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

current-window-configuration

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

delete-other-windows

Type: Function
Arguments: delete-other-windows
Package: editor
File: builtin.l
現在カーソルがあるウィンドウ以外のウィンドウを削除します。 
ただし、現在カーソルがあるウィンドウがミニバッファウィンドウの場合は他の
ウィンドウを削除しません。 

戻り値: 
  t     ウィンドウの削除に関わらず t 固定 

補足: 
  本関数はコマンドで、初期設定では C-x 1 にバインドされています。 

SeeAlso: delete-window
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

enlarge-window

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)  => 変更できません

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

enlarge-window-horizontally

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

get-buffer-window

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

get-window-start-line

Type: Function
Arguments: get-window-start-line &optional WINDOW
Package: editor
File: builtin.l
ウィンドウの先頭行が表示行で何行目かを返します。 

補足: 
  どういった場合に起こりえるのか不明ですが、ウィンドウにバッファが関連付 
  いていない場合は nil を返します。 

SeeAlso: current-virtual-line-number
SeeAlso: current-line-number
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

mode-line-format

Type: BufferLocal
Package: editor
モードラインのフォーマットを設定します。 
タイトルバーのフォーマットと同様ですので、title-bar-formatを参照して下さい。 

SeeAlso: title-bar-format
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

next-page

Type: Function
Arguments: next-page &optional (ARG 1)
Package: editor
File: page.l
指定ページ分画面を下スクロールします。 
*page-scroll-half-window* が non nil なら半画面ずつスクロールします。 

SeeAlso: previous-page
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

next-window

Type: Function
Arguments: next-window WINDOW &optional MINIBUF
Package: editor
File: builtin.l
WINDOW の次のウィンドウを返します。 

  MINIBUF : ミニバッファウィンドウを候補に入れるか 
       nil    無視する 
   non-nil    候補に入れる

SeeAlso: previous-window
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

other-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を返す。 

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

pop-to-buffer

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*))))

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

pos-not-visible-in-window-p

Type: Function
Arguments: pos-not-visible-in-window-p POINT &optional WINDOW
Package: editor
File: builtin.l
指定されたポイントPOINTがウィンドウの表示範囲内にないかを返します。 

  t     表示範囲内にない。 
  nil   表示範囲内にある。 

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

pos-visible-in-window-p

Type: Function
Arguments: pos-visible-in-window-p POINT &optional WINDOW
Package: editor
File: window.l
ポイントがウィンドウの表示範囲内にあるかを返します。 

  t     表示範囲内にある。 
  nil   表示範囲内にない。 

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

previous-page

Type: Function
Arguments: previous-page
Package: editor
File: page.l
指定ページ分画面を上スクロールします。 
*page-scroll-half-window* が non nil なら半画面ずつスクロールします。 

SeeAlso: next-page
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

previous-window

Type: Function
Arguments: previous-window WINDOW &optional MINIBUF
Package: editor
File: builtin.l
WINDOW の前のウィンドウを返します。 
  
  MINIBUF : ミニバッファウィンドウを候補に入れるか 
       nil    無視する 
   non-nil    候補に入れる

SeeAlso: next-window
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

recenter

Type: Function
Arguments: recenter &optional ARG
Package: editor
File: window.l
バッファをスクロールして画面上の表示位置を調整します。 
引数を指定しなければ現在行が画面の中央に位置します。 
(recenter 0)で現在行がウインドウの一番上に来ます。 

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

save-window-excursion

Type: Special Form
Arguments: save-window-excursion {FORM}*
Package: editor
File: builtin.l
処理の前後でカレントウィンドウとウィンドウのレイアウトの状態を保存します。 

SeeAlso: save-excursion
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

screen-height

Type: Function
Arguments: screen-height
Package: editor
File: builtin.l
xyzzyのウィンドウ全体の高さが何行になるのかを返します。 

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

screen-width

Type: Function
Arguments: screen-width
Package: editor
File: builtin.l
xyzzyのウィンドウ全体の幅が何桁になるのかを返します。 

SeeAlso: screen-height
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

scroll-down-both-window

Type: Function
Arguments: scroll-down-both-window
Package: editor
File: cmds.l
現在のウィンドウと、次のウィンドウを同時に下スクロールします。[S-C-Up]

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

scroll-up-both-window

Type: Function
Arguments: scroll-up-both-window
Package: editor
File: cmds.l
現在のウィンドウと、次のウィンドウを同時に上スクロールします。[S-C-Down]

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

scroll-window

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)

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

scroll-window-horizontally

Type: Function
Arguments: scroll-window-horizontally ARG
Package: editor
File: builtin.l
ウィンドウを指定桁数分、右にスクロールします。 
負の数値を指定すると逆方向にスクロールします。 

SeeAlso: scroll-window
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

selected-window

Type: Function
Arguments: selected-window
Package: editor
File: builtin.l
現在アクティブなウィンドウを返します。 

使用例: 
  ;;; 現在のウィンドウを返してみる。 
  (selected-window)
  => #<window 54137832>

SeeAlso: set-window
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

set-default-fold-width

Type: Function
Arguments: set-default-fold-width WIDTH
Package: editor
File: builtin.l
テキストの折り返し方法を制御します。[ツール]-[共通設定]-[表示]の"テキス
トの折り返し"と同じで、全体に影響します。 

  WIDTH : 折り返しの方法を指定します。 
        nil     折り返しません。 
        t       ウィンドウの幅で折り返します。 
        数値    折り返し位置を指定します。 

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

set-local-window-flags

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)

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

set-window

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*>

[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

set-window-configuration

Type: Function
Arguments: set-window-configuration CONF
Package: editor
File: builtin.l
取得しておいたウィンドウの状態に戻します。 

  CONF:current-window-configurationで取得したウィンドウの状態 

SeeAlso: current-window-configuration
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

shrink-window

Type: Function
Arguments: shrink-window &optional (ARG 1)
Package: editor
File: window.l
カーソルのあるウィンドウの高さを小さくします。

SeeAlso: shrink-window-horizontally
SeeAlso: enlarge-window
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

shrink-window-horizontally

Type: Function
Arguments: shrink-window-horizontally &optional (ARG 1)
Package: editor
カーソルのあるウィンドウの幅を小さくします。 

使用例: 
  ;;; listerのマージンからウィンドウの幅を引く場合 
  (shrink-window-horizontally (- (window-width) *lister-margin*))

SeeAlso: enlarge-window-horizontally
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

split-window

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

split-window-vertically

Type: Function
Arguments: split-window-vertically &optional ARG
Package: editor
File: window.l
多分、 split-window の横に二分割するのと同じです。 

SeeAlso: split-window
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

window-columns

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

window-coordinate

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

window-lines

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
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]

window-width

Type: Function
Arguments: window-width &optional WINDOW
Package: editor
File: builtin.l
ウィンドウの幅をキャラクタ単位で返します。 
文字を表示可能な領域の幅ではなく、「行番号」表示領域、「折り返しマーク」 
表示領域を含んだ領域についての幅を返します。 
キャラクタ幅に満たない幅については切り捨てますが、返す最小値は 1 です。 

SeeAlso: window-columns
SeeAlso: window-height
SeeAlso: window-lines
[ Intro | 目次 | 索引 | 目的別 | ウィンドウ ]