コンピュータ

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

https://www.spacemacs.org/#

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を使うと新しいパソコンを導入するときに自動でパッケージをインストールしてくれます。

実用的な使い方

その他便利な使い方

Igor Pro

STMのデータ解析には幸坂さんの作られたSIDAMというすばらしいパッケージを使用しています。

https://github.com/yuksk/SIDAM

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)

便利なコマンド

TSVをCSVに変換

cat file.tsv | tr "\\t" "," | sed '/^$/d' > file.csv