最低限の開発環境を整えるには 計算機科学実験及演習 3 ソフトウェア ミニ補講 古川 孝太郎 音声メディア分野 M2 2014 年 06 月 20 日 (金) 1 / 23 はじめに (1/4) . TA をしているとよく見かける開発環境 : . • 別のプログラムを実行する度に小さいウィンドウを開閉 • マウスでカチカチしながら選択・移動・編集 . • 誤ってウィンドウを消すと未保存の内容は消滅 . . 「その環境、不便じゃないですか?」 2 / 23 はじめに (2/4) . . 便利なツールを導入して生産性を上げよう! . このミニ補講の内容 . 1 章 : Tmux の導入 2 章 : Emacs の基本的な使い方 3 章 : Emacs のカスタマイズ方法 . 4 章 : 付録 : よく使うキーバインド集 3 / 23 はじめに (3/4) . Tmux とは . CUI 操作による端末切替器 1) • モニタを広く/分割して使用可能 . • ssh 越しに作業する際にセッションを保持 . Emacs とは . 高機能なテキストエディタ 2) • コーディングの補助機能が充実 . • カスタマイズが容易で拡張性が高い . . いずれもキーバインド (連続的なキー操作の関数への対応) が重要 1) 2) cf. Screen cf. Vim 4 / 23 はじめに (4/4) . キーバインドの表記 . . C- : 「Ctrl を押しながら」 M- : 「Alt を押しながら」または「Esc を押した後に」 RET : 「Enter 」 SPC : 「Space 」 Tab : 「Tab 」 . 例 . C-x s . : 「Ctrl と x を押した後に s を押す」 C-x C-s : 「Ctrl と x を押した後に Ctrl と s を押す」 C-M-a : 「Ctrl と Alt と a を押す」 C-x RET f utf-8 : 「Ctrl と x, Enter , f, utf-8 と順に入力」 5 / 23 Tmux の導入 (1/5) . インストールと設定 . 1. ソースを取得してビルド wget http://downloads.sourceforge.net/tmux/tmux-1.9a.tar.gz tar zxvf tmux-1.9a.tar.gz cd tmux-1.9a ./configure make 2. Tmux の設定ファイルを編集する (後述) ˜$ emacs ˜/.tmux.conf 3. シェルの rc ファイルに記述 ˜$ emacs ˜/.*shrc if (! test $TMUX); then tmux; fi 4. . rc ファイルの再読込み ˜$ source ˜/.*shrc 6 / 23 Tmux の導入 (2/5) . 基本的な使い方 . key C-b or C-b : function ウィンドウ分割, 移動, スクロール, . . . . . ※ C-b はプレフィックス (tmux へキーコードを送る) ※ キーバインドは変更可能 一覧は C-b ? で見ることができる . 7 / 23 Tmux の導入 (3/5) ペイン ウィンドウ ステータスバー 8 / 23 Tmux の導入 (4/5) . よく使う機能 . • new-window : ウィンドウ (仮想端末) を新しく開く C-b c • split-window C-b %, : ウィンドウを分割 (オプション -v, -h) C-b ¨ • select-window : 指定のウィンドウに移動 (-t :window-name) C-b (0-9), C-b ´ window-name • select-pane : 指定のペインに移動 (-U, -D, -L, -R) C-b ↑, C-b ↓, C-b →, C-b ← • copy-mode : スクロール (戻る: C-c) C-b [ • detach-client : デタッチ C-b d • attach-session : アタッチ (-t session-name) . 9 / 23 Tmux の導入 (5/5) . Tmux の設定ファイル (˜/.tmux.conf) の書き方 . set-option -g status-keys emacs set-window-option -g mode-keys emacs .. . unbind-key C-b bind-key C-z send-prefix .. . 1. 色や文字コードなどのパラメータを設定 set-option -g param value 2. キーバインドを解除 unbind-key key 3. . キーバインドを新しく設定 bind-key key function 10 / 23 Emacs の基本的な使い方 (1/3) . 概要 . 1. 端末上で emacs を起動する $ emacs -nw 2. ファイルを開く C-x C-f filename 3. 編集する 4. 保存する C-x C-s 5. emacs を終了する . C-x C-c 11 / 23 Emacs の基本的な使い方 (2/3) ウィンドウ バッファ 文字コードなど ファイル名 モード名 ミニバッファ 12 / 23 Emacs の基本的な使い方 (3/3) . 編集のモード . • モード : 特定の種類のファイル編集に特化した機能 • メジャーモード : 1 バッファにつき 1 つ指定できる特化機能 • マイナーモード : 組み合わせ可能な汎用の便利機能 . まず大切なのはメジャーモード . メジャーモードの切り替え方 . M-x mode-name • 通常はファイルを開いたときに自動で切り替わる . • プリセットとして: c-mode, c++-mode, lisp-mode, latex-mode, ... 13 / 23 Emacs のカスタマイズ方法 (1/5) . . Emacs はカスタマイズして使いやすく! . Emacs の設定ファイル群の構成と利用 . • ˜/.emacs : 起動時に読み込まれる • ˜/.emacs.d : .emacs から呼び出される設定, 一時ファイルなど 1. 設定ファイルを編集 (後述) ˜$ emacs ˜/.emacs (Web 等から取得した .el ファイル群は.emacs.d へ) 2. . emacs 上で設定ファイルを再読込み M-x load-file ˜/.emacs 14 / 23 Emacs のカスタマイズ方法 (2/5) . キーバインドの追加 . (global-set-key "key" ’function-name) (global-unset-key "key") • 例 : C-x b, C-x C-b でバッファメニューを表示 (global-set-key ¨\C-xb¨ ’buffer-menu) (global-set-key ¨\C-x\C-b¨ ’bs-show) • 例 : 矢印キーで左右ウィンドウ間のカーソル移動 (global-set-key [right] ’window-right) (global-set-key [left] ’window-left) . ※ キーの書き方癖があるので注意 ※ 端末上で取得可能なキーコードは GUI より少ない ※ キーバインド一覧の確認は M-x describe-bindings 15 / 23 Emacs のカスタマイズ方法 (3/5) . フック . . フック : 特定のタイミングで関数を呼び出す仕組み . フックの追加 . • 例 : ファイル保存時に行末の半角スペースを消去 (add-hook ’before-save-hook ’delete-trailing-whitespace) • 例 : c-mode でのインデントを調整 (add-hook ’c-mode-hook ’(lambda () (setq c-basic-offset 2) (setq c-tab-width 2) (setq c-indent-level 2) (setq tab-width 2) . (setq-default tab-width 2))) 16 / 23 Emacs のカスタマイズ方法 (4/5) . モードの追加 . 例 : lex ファイル編集モード flex-mode を導入する • .el ファイルを用意する ˜$ wget http://ftp.sunet.se/pub/gnu/emacs-lisp/incoming/flex-mode.el ˜$ mv flex-mode.el ˜/.emacs.d/ • 起動時にロードするように .emacs に設定 (add-to-list ’load-path ¨˜/.emacs.d¨) (require ’flex-mode) • ファイルオープン時に拡張子で判別してモードに入るよう設定 . (add-to-list ’auto-mode-alist ’(¨\\.l$¨ . flex-mode)) 17 / 23 Emacs のカスタマイズ方法 (5/5) . 実験を進める上で役に立つモード . • flex-mode : Lex ファイルの編集 http://www.emacswiki.org/emacs/FlexMode • bison-mode : Yacc ファイルの編集 http://www.emacswiki.org/emacs/BisonMode • auctex : Tex ファイルの編集, 自動コンパイル http://www.emacswiki.org/emacs/AUCTeX http://oku.edu.mie-u.ac.jp/˜okumura/texwiki/?AUCTeX • multi-term : emacs 上で複数立ち上げ可能な端末3) http://www.emacswiki.org/emacs/MultiTerm . 3) cf. term, eshell 18 / 23 付録 : よく使うキーバインド集 (1/) . 終了 . . C-x C-c : emacs を終了 . キャンセル . . C-g : 操作をキャンセル . ファイル操作 . C-x C-f : ファイルを開く C-x C-s : 編集中のバッファを (上書き) 保存 . C-x C-w : 編集中のバッファを別名で保存 19 / 23 付録 : よく使うキーバインド集 (2/) . カーソル移動 . . C-p : カーソルを 1 行上へ移動 C-n : カーソルを 1 行下へ移動 C-f : カーソルを 1 文字進める C-b : カーソルを 1 文字戻す C-a : カーソルを行頭へ移動 C-e : カーソルを行末へ移動 M-< : カーソルをバッファの先頭へ移動 M-> : カーソルをバッファの末尾へ移動 C-x o : 次のウィンドウに移動 20 / 23 付録 : よく使うキーバインド集 (3/) . テキスト編集 . C-/ : Undo/Redo C-k : 行末まで切取り C-w : 選択領域を切取り C-y : 貼付け C-s string : 検索 (下に) C-s string : 検索 (上に) C-t : 前後の文字を置換 M-u : 次の単語をすべて大文字に M-l : 次の単語をすべて小文字に . M-c : 次の単語の先頭を大文字に 21 / 23 付録 : よく使うキーバインド集 (/) . ウィンドウ操作 . C-x 1 : ウィンドウを 1 つに C-x 2 : ウィンドウを縦に 2 つ二分割 C-x 3 : ウィンドウを横に 2 つに分割 . C-x 0 : ウィンドウを消す . そのほか . C-x RET f encode : 編集中のバッファの文字コードを変更 M-% : 逐次置換 (次: n, 置換: SPC) C-x h : 全選択 . C-i : インデント C-q : キーコードをそのまま入力 22 / 23 参考文献 . Tmux SourceForge tmux: http://tmux.sourceforge.net/ Manual Pages: tmux(1): http://www.openbsd.org/cgi-bin/man.cgi?query=tmux Emacs GNU Emacs - GNU Projects: http://www.gnu.org/software/emacs/ EmacsWiki: http://www.emacswiki.org/ . 23 / 23
© Copyright 2024 ExpyDoc