Hatena::ブログ(Diary)

プログラムとかののblog このページをアンテナに追加 RSSフィード Twitter

2015-07-26

新しいMagitにしたら動かなくなった

こんなエラーが出た。

Error (magit): git-commit-mode has to be removed

Magit is no longer compatible with the library `git-commit-mode',
which was used in earlier releases.  Please remove it, so that
Magit can use the successor `git-commit' without the obsolete
library getting in the way.  Then restart Emacs.

Error (magit): git-rebase-mode has to be removed

Magit is no longer compatible with the library `git-rebase-mode',
which was used in earlier releases.  Please remove it, so that
Magit can use the successor `git-rebase' without the obsolete
library getting in the way.  Then restart Emacs.

git-commit-mode, git-rebase-modeは最近のMagitだと互換性がないから削除してくださいとのこと。

magitに関連するパッケージが古いことが原因らしい。

対処法としては、

  1. M-x list-package をする
  2. magitに関連しそうなパッケージをキーボードの"d"で選択する。
    magitと名インストールされたパッケージが怪しい。
  3. キーボードの"x"で削除を実行してパッケージを削除する。
  4. 削除したらまたmagitをインストールする。

これでmagitが動くようになるはず。

新しくなったmagitはこちら。

f:id:pogin:20150726040359p:image

なんかインデントがなくなって違和感がある…。

ちなみに昔のMagitはこちら。

f:id:pogin:20150726041052p:image

Stashes: が下に来たから見やすくなった。Stashes:はそんな重要な情報じゃないし確かに上になくて良いと思う。Local:が消えて Remote: の情報が少なくなったのはたまに困ることがありそう。

2015-04-02

error "GHCi lacks `:complete' support"

haskell-modeでinteractive-modeの補完を使おうとしたら、こんなメッセージが出た。

[Haskell]error "GHCi lacks `:complete' support"

どういうことかというと、GHC 7.6.3じゃ:completeはサポートしていないという話。

Haskell 7.8に上げろとのこと。

Completion error on OS X: GHCi lacks :complete support ? Issue #281 ? haskell/haskell-mode ? GitHub

2014-10-13

第6回init.el読書会に参加しました

自分も書いてみようと思ったので書いてみます。自分はあまり指摘ができないので、

  • 気づいたこと
  • 自分が知らなかった技術

などを書こうと思います。

今回はGithubで検索して見つけたdragonwasrobotさんのinit.elを見ました。
dragonwasrobot/dot-emacs

jade.el

Jade - Template Engine
dot-emacs-d/modes/jade.el

これはJadeという、Haml, Slim, などと同様のHTMLテンプレートエンジンです。これは閉じタグがないタイプの軽量マークアップ言語のようです。
例はこんな感じ。
HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>最高にクールなホームページ</title>
        <link rel="stylesheet" href="./css/app.css">
    </head>
    <body>
        <h1>最高にクールなホームページ</h1>
        <p>最高にクールなホームページへようこそ。</p>
        <script src="./js/app.js" charset="UTF-8"></script>
    </body>
</html>

JADE

doctype html
html
  head
    meta(charset='UTF-8')
    title 最高にクールなホームページ
    link(rel='stylesheet', href='./css/app.css')
  body
    h1 最高にクールなホームページ
    p 最高にクールなホームページへようこそ。
    script(src='./js/app.js', charset='UTF-8')

だいぶ楽に書けそうなテンプレートエンジンだと思います。

詳しい説明はこちらへ。
https://gist.github.com/japboy/5402844

dot-emacs.el

dot-emacs.el

気づいたこと、知らなかった設定
L67

(set-fringe-mode 4)

これはフリンジと呼ばれる左右にある余白の設定です。(set-fringe-mode 100)とかするとどんなものなのかがわかりやすい。

L68
iswitch-mode は古い。icomplete-modeかido-modeを使うべきらしい

L75
standard-indent は謎。一体なんの設定なのか。

L108

(setq cursor-type 'bar)

cursor-typeという設定がある。Emacsのカーソルを設定することができる。

(add-to-list 'default-frame-alist '(cursor-type . 'box)) ;; ボックス型カーソル
(add-to-list 'default-frame-alist '(cursor-type . 'hbar)) ;; 下線
(add-to-list 'default-frame-alist '(cursor-type . '(bar . 3)) ;; 幅3ポイントの縦棒カーソル

http://th.nao.ac.jp/MEMBER/zenitani/elisp-j.html#cursor

L110
saveplaceが便利そう。saveplaceはファイルを編集して、終了したときのカーソルの位置を覚えておく機能。


increment-number-at-pointというのがあるのを知った
Vimみたいにカーソル下の数字をインクリメントする機能。
dot-emacs.el#L222
IncrementNumber -EmacsWiki-

L199
kill-all-bufferはたまに便利そう。

;; すべてのバッファを削除する
(defun kill-all-buffers ()
  "Kills all emacs buffers."
  (interactive)
  (mapc (lambda (b) (kill-buffer b)) (buffer-list)))

dot-emacs.el#L199

aliases.el

dot-emacs-d/aliases.el
このファイルはEmacsでシェルのようにaliasを作っている

(defalias 'ms 'magit-status)
(defalias 'qrr 'query-replace-regexp)
(defalias 'er 'eval-region)

よく使うコマンドはこんな風に設定するといいみたいです。

coq.el

Coqについては↓へ。
Coqによる証明プログラミング

dot-emacs-d/modes/coq.el
eval-after-loadで(print)していてeval-after-loadが起きたことがわかりやすい

(eval-after-load "coq-mode"
  '(progn
     (print "In eval-after-load coq"))
     ...)

pretty-mode.elというものがある。
https://github.com/akatov/pretty-mode

終わりに

もう気力が続かないのでここで終わります。

init.el読書会は毎週土曜日22:00時、lingrのEmacs部屋でやってるので、興味のある方はぜひ参加してみてください。

http://emacs-jp.github.io/reading-init.el/