コンピュータ
Emacs
最新バージョンのインストール方法
Software centerやsynapticにまだない新しいバージョンのemacsを使うには自分でソースコードをビルドします。
Windows11のWSL2上のUbuntu20.04で最新バージョン(emacs27.1, 2022.02.01現在)のインストール方法は以下のとおりです。
$ sudo apt install build-essential libgtk2.0-dev libxpm-dev libjpeg-dev libgif-dev libtiff-dev libgnutls28-dev texinfo libcurses-ocaml-dev mailutils
$ wget -O- http://ftp.gnu.org/gnu/emacs/emacs-27.1.tar.xz | tar xJvf -
$ cd emacs27.1/
$ ./configure
$ make
$ sudo make install
Ubuntu16.04上で最新バージョン(emacs25.1, 2017.03.08現在)のインストール方法は以下のとおりです。
$ sudo apt install build-essential
$ sudo apt build-dep emacs24
$ wget -O- http://ftp.gnu.org/gnu/emacs/emacs-25.1.tar.xz | tar xJvf -
$ cd emacs25.1/
$ sudo apt install libwebkitgtk-3.0-dev
$ ./configure --with-modules --with-xwidgets
$ sudo make install
--with-xwidgetsがver25から導入されたXWidgets用のオプションです。 これを使わない場合はlibwebkitgtk-3.0-devのインストールも必要なくなります。
例えば、
M-x xwidget-webkit-browse-url http://www2.riken.jp/epmrt/yasui/index.html
でWebページの表示などができます。
ちなみに、./configureで--with-cairoオプションをつけると全画面表示でエラーがでたので、このオプション無しでビルドしています。
Spacemacsのインストール
$ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
Ctrl+hをバックスペースにするには、.spacemacsで
(defun dotspacemacs/user-config ()
(global-set-key (kbd "C-h") 'delete-backward-char)
)
設定ファイルの管理
emacsの設定は~/.emacs.d/init.dに記述します。 init-loader.elを使って設定ファイルを分割して管理すると、バグの発見が簡単になります。 package.elを使うと新しいパソコンを導入するときに自動でパッケージをインストールしてくれます。
実用的な使い方
その他便利な使い方
dired
elscreen
google-translate
Gnuplot
インストール方法
ソフトウェアセンターから提供されているものを使うとプロットでギリシャ文字が文字化けしたので自分でビルドします。
バージョン5.2.2でのインストール方法は以下の通りになります。
$ sudo apt install libwxgtk3.0-dev libcairo2-dev libpango1.0-dev
$ ./configure
$ make
$ sudo make install
gnuplotのファイル自体はあらかじめダウンロードして、そのディレクトリに移動しておいてください。 gnuplot5.2.2から?はlibwxgtk3.0以降であってもconfigureで--with-single-threadedオプションは不要でした。
やや古いバージョンは以下のようにしてインストールできます(5.0.4, 5.2.3は確認済み)。
$ sudo apt-get build-dep gnuplot
$ ./configure --with-wx-single-threaded
$ make
$ sudo make install
Ubuntu16.04ではlibwxgtkがver.3.0しかサポートされていないため、configureにオプションをつける必要があります。 libwxgtk2.8であればオプション無しでconfigureできるはずです。 参考
使い方はこちらがとても参考になります
https://ss.scphys.kyoto-u.ac.jp/person/yonezawa/contents/program/gnuplot/index.html
Windows Subsystem for Linux
Windows Subsystem for Linux (WSL, Bash on Ubuntu on Windows)上でemacsから快適にgnuplotを操作することを目標にします。
WSL2のインストール
https://qiita.com/tomtwinkle/items/92c8c399f9aad62c45b6を参照にしました。
WSL種々設定
ホームディレクトリの変更
http://tadaoyamaoka.hatenablog.com/entry/2016/08/06/112047を参考に、
/etc/passwdをスーパーユーザー権限で編集して
username:x:1000:1000:"",,,:/home/username:/bin/bash
を
username:x:1000:1000:"",,,:/mnt/c/Users/yasui/:/bin/bash
に変更し、
設定ファイルのシンボリックリンクを作成します。
$ ln -s .* /mnt/c/Users/yasui/
bashを再起動させれば設定が反映されます。
フォント輸入
Windowsのフォントを使えるようにします。
$ sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows
$ sudo fc-cache -fv
emacs, gnuplotのインストール
gnuplotは上記のUbuntuと同じ方法でビルドします。 WSLにはbuild-essentialがデフォルトで入っていないので、
$ sudo apt install build-essintial
のインストールが必要となります。
emacsについてはここを参考に、
$ sudo add-apt-repository ppa:ubuntu-elisp/ppa
$ sudo apt update
$ sudo apt install emacs-snapshot
$ sudo apt install emacs-mozc
$ sudo update-alternatives --config emacs
としました。
X Windowの用意
WSL2で使用方法に変更がありました。(Disable access controlオプション必要とlocalhostが使えないところ)
https://sourceforge.net/projects/vcxsrv/files/vcxsrv/からVcXsrvをダウンロード、インストールします。
VcXsrvを起動して、
Multiple windows
Start no client
Clipboard
Primary Selection
Native opengl
Disable access control
のオプションを選択して、Save configurationでこの設定を保存しておく
Windowsの起動時にVcXsrvも自動起動させるため、保存した設定ファイルをC:\Users\name\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupにコピーする
続いて、シェルにディスプレイのありかを伝える。~/.bashrcに以下を加えます。
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
または、.config/fish/config.fishに
set -x DISPLAY (cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
参考
https://pc-karuma.net/windows-10-app-startup/
https://qiita.com/baibai25/items/5841b0592727893d960f
エラー対処
このままではemacsを起動したときにエラーメッセージが大量にでるので、以下を行います。
$ sudo apt install gconf2
$ dbus-uuidgen | sudo tee /etc/machine-id
さらに、~/.bashrcに以下を加えます。
export NO_AT_BRIDGE=1
参考
http://s.webry.info/sp/vogel.at.webry.info/201607/article_4.html
https://qiita.com/PharaohKJ/items/88e9f6a19406ee41e155
emacs設定ファイル
gnuplotと連携のとれるよう、.emacs.dに設定を加えます。
基本的にはgnuplot-mode.elを追加するだけです。
(require 'gnuplot)
(defvar gnuplot-program "/usr/local/bin/gnuplot")
(autoload 'gnuplot-mode "gnuplot" "gnuplot major mode" t)
(autoload 'gnuplot-make-buffer "gnuplot" "open a buffer in gnuplot mode" t)
(setq auto-mode-alist (append '(("\\.gp$" . gnuplot-mode)) auto-mode-alist)
auto-mode-alist (append '(("\\.plt$" . gnuplot-mode)) auto-mode-alist))
(add-hook 'gnuplot-mode-hook
'(lambda ()
(define-key gnuplot-mode-map (kbd "C-;") 'gnuplot-send-buffer-to-gnuplot)))
sshでX windowを転送する
まずは、リモートPC(接続される側)の設定
$ sudo vi /etc/ssh/sshd_config
以下はこのファイルの確認が必要な部分。
Port 22
X11Forwarding yes
#X11DisplayOffset 10
X11DisplayOffset 0
設定ファイルの読み込み
$ sudo service ssh restart
クライアントPC(接続する側)でディスプレイを設定する。
DISPLAY=0.0でないことに注意。
毎回のこの設定を使う場合は、下記を.bashrcに書き加える。
$ export DISPLAY=localhost:0.0
接続する。
$ ssh -XC username@remote_IPaddress
GNU Scientific Library
GNU Scientific Library (GSL)をUbuntu18.04にインストールします。
$ sudo apt install libgsl-bin
Makefileを用意します。
CC = gcc
CFLAGS = -Wall
DEST =
LDFLAGS =
LIBS = -lgsl -lgslcblas -lm
OBJS = filename.c
PROGRAM = programname
all: $(PROGRAM)
$(PROGRAM): $(OBJS)
$(CC) $(OBJS) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $(PROGRAM)
clean:; rm -f *.o *~ $(PROGRAM)
ErgoDox
便利なコマンド
TSVをCSVに変換
cat file.tsv | tr "\\t" "," | sed '/^$/d' > file.csv