Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
% Reference Card for GNU Emacs
% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004, 2005,
% 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
% Author: Stephen Gildea <>
% This file is part of GNU Emacs.
% GNU Emacs is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% GNU General Public License for more details.
% You should have received a copy of the GNU General Public License
% along with GNU Emacs. If not, see <>.
% This file is intended to be processed by plain TeX (TeX82).
% The final reference card has six columns, three on each side.
% This file can be used to produce it in any of three ways:
% 1 column per page
% produces six separate pages, each of which needs to be reduced to 80%.
% This gives the best resolution.
% 2 columns per page
% produces three already-reduced pages.
% You will still need to cut and paste.
% 3 columns per page
% produces two pages which must be printed sideways to make a
% ready-to-use 8.5 x 11 inch reference card.
% For this you need a dvi device driver that can print sideways.
% Which mode to use is controlled by setting \columnsperpage.
% To compile and print this document:
% tex refcard.tex
% dvips -t landscape refcard.dvi
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
% for their many good ideas.
%**start of header
% This file can be printed with 1, 2, or 3 columns per page.
% Specify how many you want here.
% Set letterpaper to 0 for A4 paper, 1 for letter (US) paper. Useful
% only when columnsperpage is 2 or 3.
% PDF output layout. 0 for A4, 1 for letter (US), a `l' is added for
% a landscape layout.
\input pdflayout.sty
% Nothing else needs to be changed below this line.
\def\versionemacs{23} % version of Emacs this is for
\def\year{2010} % copyright year
% 日本語版
% から派生
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
Permissions on back.}}
\def\shortcopyrightnoticeja{\vskip 1ex plus 2 fill
\centerline{\small (based on (日本語版) \versionnumberja{}}}
\vskip 1ex plus 2 fill\begingroup\small
\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
\centerline{For GNU Emacs version \versionemacs}
\centerline{Designed by Stephen Gildea}
Permission is granted to make and distribute modified or unmodified
copies of this card provided the copyright notice and this permission
notice are preserved on all copies.
For copies of the GNU Emacs manual, see:
% make \bye not \outer so that the \def\bye in the \else clause below
% can be scanned without complaint.
\newdimen\intercolumnskip %horizontal space between columns
\newbox\columna %boxes to hold columns already built
column\if 1\ncolumns\else s\fi\space per page]}
\def\scaledmag#1{ scaled \magstep #1}
% This multi-way format was designed by Stephen Gildea October 1986.
% Note that the 1-column format is fontfamily-independent.
\if 1\ncolumns %one-column format uses normal size
\hsize 4in
\vsize 10in
\voffset -.7in
\font\titlefont=\fontname\tenbf \scaledmag3
\font\headingfont=\fontname\tenbf \scaledmag2
\font\headingfontj=goth10 \scaledmag2
\else %2 or 3 columns uses prereduced size
\hsize 3.2in
\if 1\the\letterpaper
\vsize 7.95in
\vsize 7.65in
\hoffset -.75in
\voffset -.745in
\font\titlefont=cmbx10 \scaledmag2
\font\headingfont=cmbx10 \scaledmag1
\font\headingfontj=goth10 \scaledmag1
\if 1\the\letterpaper
\normalbaselines\rm %make definitions take effect
\if 2\ncolumns
\def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
\else \if 3\ncolumns
\errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
\errmessage{Illegal number of columns per page}
\output={% %see The TeXbook page 257
% This next line is useful when designing the layout.
%\immediate\write16{Column \folio\abc\space starts with \firstmark}
\if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
\else\if a\abc
\global\setbox\columna\columnbox \global\def\abc{b}
%% in case we never use \columnb (two-column mode)
\global\setbox\columnb\hbox to -\intercolumnskip{}
\global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
\if a\abc \else\null\vfill\eject\fi
\if a\abc \else\null\vfill\eject\fi
% we won't be using math mode much, so redefine some of the characters
% we might want to talk about
\parindent 0pt
\parskip 1ex plus .5ex minus .5ex
% newcolumn - force a new column. Use sparingly, probably only for
% the first column of a page, which should have a title anyway.
% title - page title. Argument is title text.
\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
% section - new major section. Argument is section name.
\vskip 3ex plus 2ex minus 2ex {\headingfont \headingfontj #1}\mark{#1}%
\vskip 2ex plus 1ex minus 1.5ex}
% beginindentedkeys...endindentedkeys - key definitions will be
% indented, but running text, typically used as headings to group
% definitions, will not.
% paralign - begin paragraph containing an alignment.
% If an \halign is entered while in vertical mode, a parskip is never
% inserted. Using \paralign instead of \halign solves this problem.
% \<...> - surrounds a variable name in a code example
\def\<#1>{{\it #1\/}}
% kbd - argument is characters typed literally. Like the Texinfo command.
\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
% beginexample...endexample - surrounds literal text, such a code example.
% typeset in a typewriter font with line breaks preserved
{\obeyspaces\global\let =\ }
% key - definition of a key.
% \key{description of key}{key-name}
% prints the description left-justified, and the key-name in a \kbd
% form near the right margin.
\def\key#1#2{\leavevmode\hbox to \hsize{\vtop
\setbox\metaxbox\hbox{\kbd{M-x }}
% metax - definition of a M-x command.
% \metax{description of command}{M-x command-name}
% Tries to justify the beginning of the command name at the same place
% as \key starts the key name. (The "M-x " sticks out to the left.)
\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
\hskip -\metaxwidth minus 1fil
% threecol - like "key" but with two key names.
% for example, one for doing the action backward, and one for forward.
% 表記法
%\def\wsexp{{\bf S 式}}
%**end of header
\title{GNU Emacs Reference Card}
\centerline{(for version \versionemacs)}
\section{Emacs を開始する}
\metax{GNU Emacs を開始する}{\kbd{emacs} と入力(等) }
\metax{名前を指定して編集開始・終了}{→ \wfile の操作 Files}
\section{Emacs を終了する}
\key{Emacs を中断する(X の時はアイコン化)}{C-z}
\key{Emacs を完全に終了する}{C-x C-c}
\section{\wfile の操作 Files }
\key{開く (read)} {C-x C-f}
\key{保存 (save) } {C-x C-s}
\key{{\bf 全て}の\wfile を保存する}{C-x s}
\key{他の\wfile\wbuffer に読込む(insert) }{C-x i}
\key{別の\wfile を編集開始}{C-x C-v}
\key{名前を付けて保存}{C-x C-w}
\key{版管理(RCS)のための持出し・登録}{C-x C-q}
\section{説明を読む Getting Help}
\kbd{C-h} (か \kbd{F1}) を入力してその説明に従う。
初めて使うのなら、\kbd{C-h t} と入力して、
説明入門編({\bf tutorial})を開始する
\key{説明の\wwindow を消す}{C-x 1}
\key{説明の次の\wwindow に行く}{C-M-v}
\key{ ... についての説明 (apropos)}{C-h a}
\key{キー → 関数の対応を表示} {C-h k}
\key{関数についての説明} {C-h f}
\key{現在のモードの説明} {C-h m}
\section{問題からの復旧 Error Recovery}
\key{入力・あるいは実行を中断 (abort) } {C-g}
\metax{システム障害で失った\wfile を取戻す} {M-x recover-session}
\key{変更を元に戻す (undo)} {\hss C-x u, C-_ {\rm or} C-/ }
\metax{\wbuffer を編集開始時の状態に戻す} {M-x revert-buffer}
\key{乱れた画面を再描画} {C-l}
\section{順次検索 Incremental Search}
\key{直前検索一致文字列を選択 prev}{M-p}
\key{次に見つかる検索一致文字列を選択 next}{M-n}
検索を繰返すには\kbd{C-s} か \kbd{C-r} を入力するとその向きに続ける。
検索中に \kbd{C-g} を入力すると最後の検索だけを中止する
\section{移動 Motion}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{【{\bf 移動の単位}】}{$\leftarrow$ {\bf 戻る}}{{\bf 進む} $\rightarrow$}
\threecol{頁}{C-x [}{C-x ]}
\threecol{\wbuffer の最初・最後}{M-<}{M->}
\key{左に移動}{C-x <}
\key{右に移動}{C-x >}
\key{現在行を画面の中央に表示するように移動}{C-u C-l}
\section{切取と消去 Killing and Deleting}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{【{\bf 切取・消去の対象}】}
{$\leftarrow$ {\bf 前を}}{{\bf 後を} $\leftarrow$}
\threecol{文字(切取でなく消去)} {DEL}{C-d}
\threecol{行(端まで)}{M-0 C-k}{C-k}
\threecol{文}{C-x DEL}{M-k}
\threecol{\wsexp}{M-- C-M-k}{C-M-k}
\key{範囲を切取保存/({\bf kill ring})に複写}{M-w}
\key{{\it「文字」}まで切取}{M-z 「文字」}
\key{最後に切取ったものを貼付} {C-y}
(範囲{\bf region} = \wmark\wpoint の間)
\section{\wmark を付ける Marking }
\key{\wpoint\wmark mark を付ける}{C-@ {\rm or} C-SPC}
\key{\wmark\wpoint を交換}{C-x C-x}
\key{\wmark を引数の数の語だけ減らす}{M-@}
\key{段落に\wmark を付ける}{M-h}
\key{頁に\wmark を付ける}{C-x C-p}
\key{\wsexp\wmark を付ける}{C-M-@}
\key{関数に\wmark を付ける}{C-M-h}
\key{\wbuffer 全体に\wmark を付ける}{C-x h}
\section{対話置換 Query Replace}
\metax{正規表現を使って同じく置換}{M-x query-replace-regexp}
【その後の入力として有効な\wkey は】
\key{再帰編集に入る。(抜けるには \kbd{C-M-c})}{C-r}
\section{複数\wwindow Multiple Windows}
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{ }{\wwindow に作用}{枠に作用}
\threecol{他の\wwindow を全て消す}{C-x 1\ \ \ \ }{C-x 5 1}
\threecol{上下に二つの\wwindow を開ける}{C-x 2\ \ \ \ }{C-x 5 2}
\threecol{この\wwindow を消す}{C-x 0\ \ \ \ }{C-x 5 0}
\key{左右に二つの\wwindow を開ける}{C-x 3}
\key{他の\wwindow の中を上下に移動する scroll}{C-M-v}
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{\wpoint を他の\wwindow に移動}{C-x o}{C-x 5 o}
\threecol{他の\wwindow\wbuffer を選択する}{C-x 4 b}{C-x 5 b}
\threecol{他の\wwindow\wbuffer を表示する}{C-x 4 C-o}{C-x 5 C-o}
\threecol{他の\wwindow\wfile を開ける}{C-x 4 f}{C-x 5 f}
\threecol{他の\wwindow\wfile を書込禁止で開ける}{C-x 4 r}{C-x 5 r}
\threecol{他の\wwindow で Dired を開ける}{C-x 4 d}{C-x 5 d}
\threecol{他の\wwindow\wtag を探す}{C-x 4 .}{C-x 5 .}
\key{\wwindow を上下に大きくする}{C-x ^}
\key{\wwindow の左右を狭くする}{C-x \{}
\key{\wwindow の左右を広くする}{C-x \}}
\section{整形 Formatting}
\key{現在行を段落しする (モードによる)}{TAB}
\key{範囲を段落しする (モードによる)}{C-M-\\}
\key{\wsexp を段落しする (モードによる)}{C-M-q}
\key{範囲を引数だけ必ず段落しする}{C-x TAB}
\key{\wpoint の後に改行を挿入}{C-o}
\key{\wpoint の上下の空白行を削除}{C-x C-o}
\key{\wpoint の両側の全ての空白を削除}{M-\\}
\key{\wpoint の位置にちょうど一つの空白を挿入}{M-SPC}
\key{整形幅 fill column を設定}{C-x f}
\key{先頭文字列 fill-prefix を設定}{C-x .}
\key{face を設定}{M-o}
\section{大小文字変換 Case Change}
\key{単語を大文字にする upper}{M-u}
\key{単語を小文字にする lower }{M-l}
\key{単語の最初の文字を大文字にする Capitalize}{M-c}
\key{範囲を大文字にする}{C-x C-u}
\key{範囲を小文字にする}{C-x C-l}
\section{\wminbuffer The Minibuffer}
\wminbuffer では次の\wkey が使用出来る:
\kbd{C-x ESC ESC} と入力すると、直前の操作を呼出して編集(変更)
\kbd{F10} を使えば、メニュー棒を表示する
\title{GNU Emacs Reference Card}
\section{\wbuffer Buffers}
\key{他の\wbuffer を(名前で)呼出す}{C-x b}
\key{全ての\wbuffer 名を表示する}{C-x C-b}
\key{いまの\wbuffer を捨てる}{C-x k}
\section{前後の入替 Transposing}
\key{{\bf 文字}を入替える}{C-t}
\key{{\bf 単語}を入替える}{M-t}
\key{{\bf 行}を入替える}{C-x C-t}
\key{{\bf \wsexp}を入替える}{C-M-t}
\section{スペルチェック Spelling Check}
\metax{範囲にある全ての単語を調べる}{M-x ispell-region}
\metax{\wbuffer の全ての単語を調べる}{M-x ispell-buffer}
\section{\wtag Tags}
\key{\wtag 定義を探す}{M-.}
\key{次の\wtag を探す}{C-u M-.}
\metax{新しい\wtag 定義の\wfile を指定}{M-x visit-tags-table}
\metax{\wtag 表の全ての\wfile を正規表現検索}{M-x tags-search}
\metax{全ての\wfile で対話置換を実行}{M-x tags-query-replace}
\key{\wtag 検索や対話置換を続ける}{M-,}
\section{シェル Shells}
\key{範囲をシェル操作でフィルタにかける}{C-u M-|}
\key{シェル\wwindow \kbd{*shell*} を開け対話を開始する}{M-x shell}
\section{長方形 Rectangles}
\key{長方形をレジスタに写す}{C-x r r}
\key{長方形を切取る}{C-x r k}
\key{長方形を貼付ける}{C-x r y}
\key{長方形を挿入(現在文字を右にずらす)}{C-x r o}
\key{長方形領域を空白にする}{C-x r c}
\key{長方形領域の各行に同じ文字列を挿入}{C-x r t}
\section{単語登録 Abbrevs}
\key{全モード用登録を追加}{C-x a g}
\key{モード限定登録を追加}{C-x a l}
\key{この登録に全モード定義を追加}{C-x a i g}
\key{この登録にモード限定定義を追加}{C-x a i l}
\key{明示的に登録を展開}{C-x a e}
\section{正規表現 Regular Expressions}
\key{改行を除く全ての一文字に一致}{. {\rm(dot)}}
\key{正規表現で使う文字{\it c\/}をそのまま使う時}{\\{\it c}}
\key{グループ化、算術かっこ}{\\( {\rm$\ldots$} \\)}
\key{{\it n\/}番目のグループに一致した文字列と同じもの}{\\{\it n}}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{【一致するもの】}{{\bf 開始に一致}}{{\bf 終了に一致}}
%%% $}
\threecol{\wbuffer }{\\`}{\\'}
\threecol{【文字の種類】}{{\bf それらに一致}}{{\bf それら以外に一致}}
\threecol{明示的に指定}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
\threecol{{\it c}という形式の文字}{\\s{\it c}}{\\S{\it c}}
\metax{第一言語を指定}{C-x RET l}
\metax{全ての入力方法を表示}{M-x list-input-methods}
\key{次の操作の coding system を指定}{C-x RET c}
\metax{全ての coding systems を表示}{M-x list-coding-systems}
\metax{coding system の先頭に追加}{M-x prefer-coding-system}
\section{情報 Info}
\key{情報 (Info) を開始する}{C-h i}
\key{指定した関数・変数の情報を探す}{C-h S}
【節 node の中での移動】
\key{節の最初に行く}{. {\rm (dot)}}
\key{次の節 next}{n}
\key{前の節 previous}{p}
\key{一つ上に戻る up}{u}
\key{項目を名前で選ぶ menu}{m}
\key{{\it n\/}(1--9) 番目の項目を選ぶ }{{\it n}}
\key{相互参照 cross reference に従う (\kbd{l}で戻る)}{f}
\key{最後に見た節に戻る last}{l}
\key{案内節 directory node に戻る}{d}
\key{個々の情報の最上位に移動 top}{t}
\key{名前で指定して任意節に移動 go}{g}
\key{説明入門編{\bf tutorial}を開始}{h}
\key{情報 Info を終了}{q}
\section{一文字変数(レジスタ) Registers}
\key{範囲をレジスタに保存}{C-x r s}
\key{レジスタ内容を\wbuffer に挿入}{C-x r i}
\key{\wpoint をレジスタに保存}{C-x r SPC}
\key{レジスタに保存してある値(位置)に移動}{C-x r j}
\section{\wkeymacro Keyboard Macros}
\key{\wkeymacro の登録を開始}{C-x (}
\key{\wkeymacro の登録を終了}{C-x )}
\key{最後に登録した\wkeymacro を実行}{C-x e}
\key{最後に登録した\wkeymacro に追加}{C-u C-x (}
\metax{最後の登録に名前を付ける}{M-x name-last-kbd-macro}
\metax{Lisp 定義形式で\wbuffer に挿入}{M-x insert-kbd-macro}
\section{Emacs Lisp の取扱い操作}
\key{\wpoint の前までの {\bf \wsexp}を評価する}{C-x C-e}
\key{\wpoint の {\bf defun}を評価する}{C-M-x}
\metax{範囲を評価する}{M-x eval-region}
\key{入力\wwindow で式を評価する}{M-:}
\metax{load-pathから\wfile を読む}{M-x load-library}
\metax{変数とフェース faces の設定}{M-x customize}
% The intended audience here is the person who wants to make simple
% customizations and knows Lisp syntax.
【全体に有効な\wkey の割当を Emacs Lisp で設定する例】
(global-set-key (kbd "C-c g") 'search-forward)
(global-set-key (kbd "M-\#") 'query-replace-regexp)
(defun \<操作名> (\<引数>)
(interactive "\<型>")
(defun this-line-to-top-of-window (line)
(interactive "P")
(recenter (if (null line)
(prefix-numeric-value line))))
\kbd{interactive} の型とはどのように引数を取るかを表わす。
\kbd{C-h f interactive} とすれば詳しい説明が得られる。
% Local variables:
% compile-command: "pdftex refcard"
% End:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment