2018年 8月 の投稿一覧

pyhon-modeのインストールと設定

1 概要

python-modeはPythonプログラムを編集、デバッグ、開発するEmacsのメジャーモードです。

2 環境

文書作成時のOS,ソフトウェアのバージョンは以下のとうりです。

OS:Debian buster(testing)
Emacs:25.2.2
pyhton3.7:3.7.0-1
python-mode:6.2.3-1

3 インストール

apt-get install python-mode

4 設定

4.1 python-mode

autoloadの設定は’/etc/emacs/site-start.d/50python-mode.el’でされているので各自の設定は不要です。

4.2 doctest-mode

autoloadの設定は’/etc/emacs/site-start.d/50python-mode.el’でされているので各自の設定は不要です。

4.3 company-pycomplete

補完入力はcompanyを使っているので

‘/usr/share/emacs/site-lisp/python-mode/completion/company-pycomplete.el’のCommentaryを参考に

(add-hook 'python-mode-hook
          '(lambda()
             (setq company-backends '((company-pycomplete)))
             )
          )

のように設定しました。

これは、python-modeのときだけ、companyのバックエンドをcompany-pycompleteに変更します。

4.4 pycomplete.py

‘/usr/share/pyshared/pycomplete.py’は

if sys.version_info[0] >= 3: # Python 3
    import io
else: # Python 2
    import StringIO

のように、Pythonのバージョンをチェックします。

よって、以下のようにして、自分が使うpythonのバージョンを最新の3.7にしました。

cd ~/bin
ln -s python3 python
ln -s /usr/bin/python3.7 python3

これは、’.bashrc’に

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

のような設定をしているため、’~/bin/python’をシステムの’/usr/bin/python’より優先してくれます。

5 カスタマイズ

5.1 python-mode

5.1.1 py-highlight-error-source-p

カスタマイズ変数’py-highlight-error-source-p(Default:nil)’を’t’に変更しました。

When py-execute-… commands raise an error, respective code in source-buffer will be highlighted. Default is nil.
M-x `py-remove-overlays-at-point’ removes that highlighting.

5.1.2 py-company-pycomplete-p

カスタマイズ変数’py-company-pycomplete-p(Default:nil)’をtに変更しました。

Load company-pycomplete stuff. Default is nil

5.1.3 py-tab-indents-region-p

カスタマイズ変数’py-tab-indents-region-p(Default:nil)’をtに変更しました。

When `t’ and first TAB doesn’t shift, indent-region is called.

5.1.4 py-verbose-p

カスタマイズ変数’py-verbose-p(Default:nil)’をtに変更しました。

If functions should report results.

シンタックスチェッカーflycheckのインストールと設定

1 概要

各種プログラミング言語の文法チェッカーflycheckをインストールし設定します。

2 インストール環境とソフトウェアのバージョン

文書作成時のOS,ソフトウェアのバージョンは以下のとうりです。

OS:Debian buster(testing)
Emacs:25.2.2
elpa-flycheck:31-1

3 flycheck

3.1 インストール

flycheckはelpa-flycheckというパッケージになっているのでこれをインストールします。また、ドキュメントflycheck-docもインストールします。

apt-get install elpa-flycheck flycheck-doc

3.2 設定

‘/usr/share/emacs/site-lisp/elpa-src/flycheck-31/flycheck.el’ のSetup欄より

設定ファイルに

(add-hook 'after-init-hook #'global-flycheck-mode)

と書きます。

また、’/usr/share/doc/elpa-flycheck/html/user/installation.html’にはuse-packageを使った設定が書いてあります。

(use-package flycheck
  :ensure t
  :init (global-flycheck-mode))

と書きます。

どちらか一方を書けばよいです。

あとは、’/usr/share/doc/elpa-flycheck/html/languages.html’を見ながら各言語に必要なソフトを入れていきます。

4 Go言語

例としてGo言語のflycheckの設定をしてみます。

具体的には’/usr/share/doc/elpa-flycheck/html/languages.html’のGo言語の欄の1〜3のgo-gofmt、go-golint、go-vetを設定します。

コマンド’gofmt’,’go vet’はgolang-goパッケージをインストールしたときに一緒に入っています。別途golintをインストールします。

apt-get install golint

3欄’go-vet’はカスタマイズ変数flycheck-go-vet-print-functions、flycheck-go-vet-shadow、flycheck-go-build-tagsでカスタマイズできます。

しかし、すべてデフォルトのnil(無効)でよかったので設定ファイルに追加の設定はしていません。

use-packageのインストールと設定

1 概要

use-packageは.emacsを簡単にするelispパッケージです。

2 インストール環境とソフトウェアのバージョン

文書作成時のOS,ソフトウェアのバージョンは以下のとうりです。

OS:Debian buster(testing)
Emacs:25.2.2
elpa-use-package:2.3+repack-2

3 インストール

Debianでは’elpa-use-package’というパッケージになっているので、これをインストールします。

apt-get install elpa-use-package

4 設定

設定ファイルに

(require 'use-package)

と書きます。

パッケージシステムpackage.elの設定(2018年版)

1 インストール環境とソフトウェアのバージョン

文書作成時のOS,ソフトウェアのバージョンは以下のとうりです。

OS:Debian buster(testing)
Emacs:25.2.2
package.el:1.1.0

2 設定

package.elはEmacs24から同梱されているので設定のみ書きます。

(require 'package)

;;; Add package-archives
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)

;; Initialize
(package-initialize)

3 参考リンク

melpa.elをインストールしたりシンボリックリンクを作成する必要がなくなってます。

使用方法のみ参考にしてください。

パッケージシステムの設定 | Emacsのelispインストール・設定・使い方

Go言語開発環境の構築

1 概要

Go言語とEmacsでの開発環境を構築します。

2 インストール環境とソフトウェアのバージョン

文書作成時のOS,ソフトウェアのバージョンは以下のとうりです。

OS:Debian buster(testing)
Emacs:25.2.2
golang:2:1.10~5
elpa-go-mode:3:1.5.0-2
golang-golang-x-tools:1:0.0~git20180501.d3e4ceb5+ds-1
elpa-company-go:20170907-3

3 Go言語のインストール

golangはメタパッケージなので、開発環境のほとんどがインストールされます。

apt-get install golang

4 go-modeのインストール

Debianではelpa-go-modeというパッケージになっているのでこれをインストールします。

apt-get install elpa-go-mode

4.1 キーバインド

C-c C-a go-import-add
C-c C-d godef-describe
C-c C-f go-goto-map
C-c C-j godef-jump

C-M-q prog-indent-sexp

C-x 4 C-c Prefix Command

C-c C-f a go-goto-arguments
C-c C-f d go-goto-docstring
C-c C-f f go-goto-function
C-c C-f i go-goto-imports
C-c C-f m go-goto-method-receiver
C-c C-f n go-goto-function-name
C-c C-f r go-goto-return-values

C-x 4 C-c C-j godef-jump-other-window

5 golang-golang-x-toolsのインストール

Go言語の補助ツール(type-checker、SSAなど)はgolang-golang-x-toolsというパッケージで提供されているのでこれをインストールします。

apt-get install golang-golang-x-tools

6 elpa-company-goのインストール

Goコードのためのcompany-modeバックエンドです。

apt-get install elpa-company-go

補完入力フレームワークCompanyのインストールと設定

1 概要

CompanyはEmacsのテキスト補完入力フレームワークです。

2 インストール環境とソフトウェアのバージョン

OS:Debian buster(testing)
Emacs:25.2.2
company.el:0.9.6

3 インストール

Debianではelpa-companyというパッケージになっているので、それをインストールします。

apt-get install elpa-company

4 設定

まず、設定ファイルには

(require 'company)

と書きます。

すべてのモードでcompany.elを有効にする場合は

(global-company-mode)

と書き、特定のモードだけ有効にする場合は

(add-hook 'python-mode-hook 'company-mode)

のように書きます。例はpython-modeで有効にする場合です。

5 キーバインディング

候補表示中の主なキー設定です。

  • M-n:次の候補選択
  • M-p:前の候補選択
  • C-g:候補選択中止
  • RET:候補選択
  • F1, C-h:docを別バッファに表示
  • C-w:定義場所を表示
  • C-s:候補検索
  • C-M-s:候補フィルタリング
  • [tab]:共通するprefixを挿入

6 カスタマイズ

次の候補選択は’C-n’で、前の候補選択は’C-p’で選びたいのと’C-h’は<backspace>にしているので

(define-key company-active-map (kbd "M-n") nil)
(define-key company-active-map (kbd "M-p") nil)
(define-key company-active-map (kbd "C-n") 'company-select-next)
(define-key company-active-map (kbd "C-p") 'company-select-previous)
(define-key company-active-map (kbd "C-h") nil)

とカスタマイズしました。

7 参考URL

emacsの補完用パッケージcompany-mode