ネットワークコンピューティング実習

1. URL
2. 担当教員
3. TA (ティーチングアシスタント)
4. ネットワークに関する疑問
5. 講義目的: 到達目標
6. 授業方法
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. Debian GNU/Linux のインストール
11. UNIX (UNIX とは、ユーザ権限、パッケージ管理)
12. Debian GNU/Linux セットアップ〜パッケージ管理
13. シェル (ファイル操作、リダイレクト、パイプ)
14. X ウィンドウシステム & ウィンドウマネージャ
15. エディタ (Emacs チュートリアル)
16. シミュレータ導入 (インストール、実行、可視化)
17. Python 言語 (1) (名前、変数、式)

エディタ (Emacs チュートリアル)

実習の流れ・チーム分けの方針・態度目標

2025/09/24 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/netcompx/2025/#10-1

内容目標

- Emacs の基本的な操作方法を習得し、ファイルを作成・編集できるようになる

テキスト

https://lsnl.jp/~ohsaki/lecture/netcompx/2025/priv/03.pdf

課題

課題 1

Emacs をインストールせよ。

課題 2

Emacs のチュートリアルを起動し、 「もし Emacs が反応しなくなったら」までを実行せよ。

課題 3

「Hello!」という文字列が書かれた ~/foo.txt というファイルを Emacs のみを用いて作成せよ。

課題 4

Emacs のキーバインド一覧を表示し、 どのようなコマンドがあるかを眺めてみよ。 また、 (1) M-d、 (2) C-SPC、 (3) C-w、 (4) C-y というキー操作によってどのような処理が実行できるかを調べよ。

略解

課題 1

> sudo apt install emacs

課題 2

> Alt + Ctrl + 2 (Alt と Ctrl を押しながら 2 を押す、「emacs &」で起動してもよい)
> C-x RET l Japanese RET (言語環境を日本語に変更、M-x set-language-environment RET でもよい)
> M-h t (M-x help-with-tutorial RET でもよい)
※ C-x は Ctrl キーを押しながら x キーを押す
※ M-x は Alt キーを押しながら x キーを押す
※ RET は Enter キー (もしくは C-m)

課題 3

> C-x C-f foo.txt RET (M-x find-file foo.txt RET でもよい)
> Hello!
> C-x C-s (M-x save-buffer RET でもよい)
※ ~ はホームディレクトリを表す。

課題4

> M-h b (M-x describe-bindings RET でもよい)
> M-d: kill-word (単語単位の削除 (キル → キルリングに入るタイプの削除))
> C-SPC: set-mark-command (現在のポイント(カーソル位置)をマークする)
> C-w: kill-region (リージョン (マークとポイントの間) をキルする)
> C-y: yank (キルしたテキストをペーストする)

より深く学びたい人へ

(Emacs に限りませんが) オンラインドキュメントではなく、 書籍で知識を吸収することをおすすめします。 Emacs に関する良書は多くありませんが、 読むなら以下の本をすすめます。 「GNU Emacs マニュアル」は原文が GPL で公開されているので、 翻訳版も GPL で公開されています。

Richard Stallman, ``GNU Emacs マニュアル,'' 共立出版, 1988.
https://lsnl.jp/~ohsaki/lecture/netcompx/2025/priv/GNU_Emacs_Manual.pdf

GNU Emacs マニュアル 28.1
https://ayatakesi.github.io/emacs/28.1/html/index.html

ただし、 翻訳の質は共立出版のもののほうがはるかに良いです。

Debra Cameron, James Elliott, Marc Loy, Eric Raymond, Bill
Rosenblatt, ``入門 GNU Emacs 第 3 版, '' オライリー・ジャパン, 2007.

参考資料

GNUとは?
https://www.gnu.org/home.ja.html

自由ソフトウェアとは?
https://www.gnu.org/philosophy/free-sw.ja.html

チャレンジ課題

- shell-command (M-!) を用いて Emacs 上からコマンド「ls -l」を実行せよ。

- shell-command (M-!) を用いて Emacs 上からコマンド「man ls」を実行せよ。

- C-u M-! を用いて Emacs 上からコマンド「man ls」を実行せよ。「man ls」の出力はカレントバッファに挿入される。

- query-replace (M-%) を用いて、カレントバッファ内の文字列 file を FILE に置換せよ。

- 適当な段落に対して fill-paragraph (M-q) を実行し、段落を整形せよ。

- shell によって Emacs のバッファ内で fish を起動せよ。

- shell によって起動した fish でコマンド「ls -l」を実行せよ。

- shell によって起動した fish でコマンド「man ls」を実行せよ。

- コマンド「man ls」の出力を ~/ls.txt というファイルに保存せよ。

- 現在起動している Emacs において C-t がどのコマンドに割り当てられているかを調べよ。

- 現在起動している Emacs において forward-word がどのキーに割り当てられているかを調べよ。

- ~/.emacs の 141〜154 行目を変更しフォント (Emacs における face) の色を好みのものに変更せよ。

- 簡単な C 言語のプログラムを作成せよ。Emacs における c-mode の便利な機能を調べて、それらを試してみよ。

- 簡単な Python 言語のプログラムを作成せよ。py-mode の便利な機能を調べて、それらを試してみよ。

- make-frame-command (C-x 5 2) を実行し、新規にフレームを作成せよ。

- delete-frame (C-x 5 0) を実行し、現在のフレームを削除せよ。

レポート課題 2025/10/29

「レポート課題 2025/09/24」と同じ。

https://lsnl.jp/~ohsaki/lecture/netcompx/2025/#10-7

質問

- 課題とは直接関係ないのですが、キーを1回しか押していないつもりでも、Emacs上で複数回入力されたように反応することがあります。講義中の先生の操作でも同じような挙動を見かけたので、キーリピートの間隔や感度設定を調整する方法などがあれば知りたいです。以前から気になってはいたのですが、そういうものだと思っていたので、今回知りたいと思いました。

私はキーリピートが速いほうが好みなので、配布している ~/.xinitrc では以下のよ
うに設定しています。

xset r rate 200 40

- 自習内容であるように、windows上でCapslockキーをctrlキーに変更したのですが、基本的には操作ができるのですが、日本語や英語などに打ち方を変更するときなど、時々変な操作が行われてしまいます。もし原因がわかれば教えていただけますでしょうか。

VirtualBox のホストが Windows の時の固有の問題 (?) のようです。解決法を知っ
ている人を紹介します。

- startxの画面が小さくて、emacsを開いたときにC-xのコマンドが見えなく、startxは開かずGUIがない状態で今回行った。0000x000を変えてみても変わらなかったので、対処方法を知りたい

  正しく設定すれば、ノート PC のディスプレイと等倍 (例えば 1920x1080 ピクセル)
  で X ウィンドウシステムを利用できます。何が原因が調べてみますので、声をかけ
  てください。


[<14. X ウィンドウシステム & ウィンドウマネージャ] [>16. シミュレータ導入 (インストール、実行、可視化)]