06 - 賢馬は「引数」が読める
私がお腹をさすりながら席につくと,EeePC が不思議な様子でたずねる。「珍しいな,こんな夜更けに」「うん,晩ご飯食べすぎて寝れないの。だから眠くなるまでチュートリアルやろうと思って」
「何を食べたんだ?」「えーとね,鶏肉のエビチリ風と,」「ふむ」「もやしとキャベツのスープと,あと,ゆかりご飯」「体調は元通りのようだな」「だいたいね」「無茶はするなよ。私と違って君の部品は交換できないんだからな」「…ありがと。でも君だってもう交換できる部品はないんだから」「私は君と違って頑丈だから平気だ。キーボードだけは壊れやすいが」「壊れる前に外付けキーボードで使っているから安心して」「うむ。だから心配は無用だ。存分に使ってくれ」「存分に使えるほどの性能があればね…」「おい,元気になった途端に憎まれ口か」
「早速前回のおさらいをしようと思ったんだけど」「うむ」「C-n とか M-f とかを修得したいなら鬼軍曹.elがあります」「なんだそれは」「矢印キーとかリターンキーが使えなくなる」「名前に違わぬスパルタだな」「エディタの本でも紹介されてたし,頭で覚えるより動かして身につけましょう」「君は使ったのか?」「私は小説書きながら身につけました」「かなり特殊なケースだな」
Emacs の大抵のコマンドには数値引数を与えることができます。大抵の場合こ
の数値で繰り返し回数を指示することになります。数値引数を与えるには、コ
マンドを入力する前に C-u に続いて数字を何桁かタイプします。もしメタキー
が使えるなら、メタキーを押しながら数字をタイプすることもできます。でも
やはり C-u を覚えることを勧めます。それはどんな端末でも使えるからです。
数値引数は「前置引数」とも呼びます。実行したいコマンドの前にタイプする
からです。
例えば C-u 8 C-f とタイプすると8文字分先に移動します。
>> 適当な数値引数を C-n あるいは C-p に与え、一回のコマンドでなるべく
この行の近くに来るようにしてみましょう。
「初見でこの字 (『引数』のこと) を正しく読める人がいたら,その人は馬のハンスを守護霊に持っている可能性がある」「馬のハンスって何だ」「足し算ができる馬」「それはすごい」「本当は飼い主の反応を見てた」「じゃあ計算能力を持ってたわけじゃないんだな?」「うん」「それとその…君の言う熟語に何の関係があるんだ」「ほら,読めないでしょ」「ぐ…」
私はニヤリとする。「私はハンスの飼い主じゃないからね。ヒントはあげないよ」「…」EeePC の CPU 使用率が突如として急上昇する。「あ,検索したらダメだよ」気づかれた EeePC。「…君が問いを出すということは,『いんすう』ではないだろう,ということしかわからん…」「どう?降参する?」
追い込まれた EeePC。しかしキャリア 10 年のベテランは踏んばった。「定義を教えてくれ」「いいよ。これはね,選択肢なの」「選択肢?」「果物とか買うときに,いくつ買うか選べることがあるでしょ。服を買うときも,通販だと色を選べたり。そういう選択肢のこと」「ふむ」「それで,選んだ内容に応じて結果が変わってくる。金額とか,デザインとか」「変数のようなものか?」「お!いい線いってる」
「ふむ,とすると,この "C-u 8 C-f" の "8" が選択肢にあたるわけだな?」「そうそう。それが 6 だと 6 文字進む」「20 だと 20 字進む」「その通り」「それってパラメータ (媒介変数) のことじゃないのか?」「おお!」「ん?」「ご明察でございます」
「これ,パラメータって読むのか?」「正しくは『ひきすう』なんだけど」「ひきすう」「でもよくわかったね」「媒介変数は常識だろう」「え」「?」「…」「まさか君は知らないのか?」「し,知ってるよ!数学で,昔…」「復習が大事なんだろう?」「…」「人間は忘れやすいんだろう?」「…」「青チャートが埃をかぶっているぞ」「ちょっと,余計なこと言わないでよ」
大抵のコマンドは数値引数を繰り返し回数と解釈しますが、中には例外もあり
ます。たとえば、コマンドによっては(これまでに学んだコマンドはどれも違
いますが)、前置引数があるかないかだけが問題で、それがあるときは、実際
に与えた数値には関係なく、通常とは異なる働きをします。
C-v や M-v はまた違ったタイプの例外です。この場合、指定された数の行だ
け画面をスクロールさせることになります。例えば C-u 8 C-v は画面を8行
上にスクロールさせます。
>> C-u 8 C-v を試してみましょう。
画面が上に8行スクロールしたはずです。また画面を下にスクロールさせるには
M-v に引数を与えればよいのです。
「C-u ってEmacs の本でも序盤に出てくるくらい基本の機能なんだけど,今まで使いこなせなかった」「これから使っていくんだろう?」「私みたいにプログラミングで使わなくても活躍するかな」「やらない理由なんていくらでも出てくるものだ。気をつけろ」「あれ?それ前に私言ったっけ」「君が流してるラジオで聞いた」
「あ,私でも知ってる C-u 使う便利な方法」「何だ」「あとで『マーク (C-SPC)』って機能が説明されると思うんだけど」「うむ」「C-u C-SPC でさっきマークした場所に帰ってこれる」「何が便利なんだ?」「読んでる途中で何か確認したいことがあって別の行にうつっても,C-u C-SPC ですぐに戻って作業を再開できる」「ほう」「しかもマークした場所はファイル閉じるまで Emacs に記憶されてるから,ふせんみたいに使うこともできる」「付箋か。君の文章は短いものが多いが,活躍する機会はあるのか?」「eww で長い Web ページ読むときとか」「なるほど」
「あとね,今調べてたんだけど」「うむ」「同じコマンドでも C-u の有り無しで違うコマンドが実行できるの」「C-u の定義からするとそうなるな」「私いま C-x g で magit が起動するんだけど,C-u C-x g で自動コミットできると面白いなって」「ふむ」「GitBook をビルドすると変更点が多くて」「ふむ」「magit のコミット画面が重くなっちゃう」「コミットに時間がかかるのが嫌だと」「そうそう。だから GitBook ビルドしたら,C-u C-x g で直接コミットできればいいなって」「プログラムが完成したら公開するんだろう?」「もちろん」「楽しみだな」「君,人の話聞くの上手だね」「そうか。 M-x doctor
に感謝するといい」
もし X や MS-Windows のウィンドウシステムを使っているのなら、スクロー
ルバーと呼ばれる縦長の四角いエリアが Emacs のウィンドウの左右どちらか
かの端にあるはずです。ウィンドウの両端には同じく縦長の四角い「フリンジ」
と呼ばれるエリアもありますので、混乱しないで下さい。フリンジは継続行を
示す文字やその他のシンボルを表示する場所です。スクロールバーは左右どち
らか一方のみの一番外側にあるものです。スクロールバーの中をマウスでクリッ
クすれば、画面をスクロールさせることができます。
>> スクロールバーの中でマウスの真中のボタンを押してみましょう。ボタン
を押した位置で決まる文章の位置まで画面がスクロールします。
>> スクロールバーの中で真中のボタンを押したままマウスを上下に動かして
みましょう。それに合せて画面がスクロールするのが分るはずです。
もし、マウスにホイールボタンがあるなら、それを使ってもスクロールでき
ます。
「これ英語版だとかなり簡略化されてるね」「ほう」
If you are using a graphical display, such as X or MS-Windows, there
should be a tall rectangular area called a scroll bar on one side of
the Emacs window. You can scroll the text by clicking the mouse in
the scroll bar.
If your mouse has a wheel button, you can also use this to scroll.
「フリンジとか ">>" の部分とか無くなってる」
如果你正在使用图形界面,比如 X 或者微软的 Windows,那么在 Emacs 窗
口的一边应该有一个长方形的区域叫“滚动条”。你可以用鼠标操纵滚动条来滚动
文字。
如果你的鼠标有滚轮的话,你也可以使用滚轮来滚动。
「中国語版も同じ。あ,滚动はスクロールのことね」「読めるのか」「読めるようになりたい。これは何回も出てくるから覚えた」「対訳はいい教材だな」「うん。ねえ,日本語版の真中のボタンって,UNIX の 3 ボタンマウスのことかな?いちおうマウスホイールのクリックでも動くけど」「3 ボタンマウス」「UNIX にはそういうマウスがあるの」
(Lars Pind, An_Early_Three_Buttoned_Mouse)
「各ボタンの役割は?」「左右は普通のマウスと同じで,中クリックがペーストだったかな?」「使ったことあるのか?」「実際に動いてる機械ではないかなぁ」「さわったことはあるんだな」「うん。私みたいなへっぽこが触っていい代物ではないとさとった」「大げさだな」「だって絶対触っちゃいけないような機械にしかついてないんだもん。みんな顔怖いし」「この写真だと昔のもののようだが今でもあるのか?」「そりゃ当然でしょ」「なぜわかる」「10 年物の君が平然としてるくらいだから」「…たしかにな」
(c) 2018 jamcha (jamcha.aa@gmail.com). (c) 1985, 1996, 1998, 2001-2018 Free Software Foundation, Inc.