複数のユーザー別にhowmディレクトリをDropboxディレクトリに設定するやり方
いきさつ
研究室用のEmacsと家用のEmacsの設定の違いを吸収するにはどうしたらいいか考えてたらauto-completeのプルダウンメニューにユーザー関係の変数が用意されてたのを発見した。用意されている変数があるのでよし使おうと思ったら作ってみたら出来た。
やり方
この設定はOSごとに変わっていて
Windows | "C:/Users/ユーザー名/" |
Linux | "~/" (/home/ユーザー名/) |
の場所にDropboxディレクトリを置いている場合で説明しています。
howmディレクトリの場所は (dropbox-directory)/"Documents/howm"の場所に作るとします。
(defvar run-cygwin (equal system-type 'cygwin)) (defvar run-meadow (featurep 'meadow)) (defvar run-nt (equal system-type 'windows-nt)) (defvar run-ms-dos (equal system-type 'ms-dos)) ;; Windowsかどうかの判定 (defvar run-windows (or run-cygwin run-meadow run-nt run-ms-dos)) ;; Linuxかどうかの判定 (defvar run-linux (eq system-type 'gnu/linux) ;; Dropboxディレクトリの設定 (defvar dropbox-directory (cond ((eq run-windows t) (concat "c:/Users/" user-login-name "/Dropbox")) ((eq run-linux t) "~/Dropbox") (t "これ以外にいってしまう場合は適宜設定する"))) ;; howmディレクトリの設定 (setq howm-directory (concat dropbox-directory "/Document/howm/"))
これでhowmディレクトリをDropboxディレクトリに設定できました。
確認したい場合は*scratch*でC-jで評価や、C-x C-eで評価してください。
howm-directory ;=> "~/Dropbox"
OSの判定はなかなか便利なのでいれておいて損はない。他にもEmacsのバージョンの判定や、ターミナルかどうかの判定も作ることができる。↓に少しだけ変数・関数の説明を残しておきます。
関数・変数名 | 説明 |
user-login-name | 現在ログインしてるユーザーの名前を返す。 |
defvar | Emacsのコンパイラやプログラマに、これはユーザーがちゃんと定義した変数ですよってのを教える関数 |
system-type | どのOSの、どの環境で動いているかを表す変数 |
window-system | どのウィンドウシステムを使っているかを表す変数 |
OSなどの判定についての記事は参考リンクにあります。
参考リンク
- OSなどの環境判定に関する記事
- OS判定のプログラムが含まれてるソースコード
- 関数の説明
- sysytem-type :System Environment - GNU Emacs Lisp Reference Manual
- window-system : Window Systems - GNU Emacs Lisp Reference Manual