2019年04月20日

Emacs鍛え直しプランその1

前提

麦汁氏の .emacs.d はほぼ研がれてないので衰退し続けている。 なので、Emacs をもう一度強くしたい。 しかし、既存設定もゴチャゴチャしている というわけで、必要そうな設定、拡張だけ残して後は捨てる事を検討したい

取捨選択

残すもの

今開発等をする上で実際に活用しているものは残さないといけない。 というわけで使ってるものを列挙したい。 優先度もつけて。

  • ruby 関係
    • enh-ruby-mode
    • rspec-mode
    • projectile-rails
    • rbenv
  • JS 関係
    • js2-mode
    • vue-mode
    • ember-mode
  • CSS 関係
    • css-mode
  • その他開発系
    • haml-mode
    • handlebars-mode
    • pug-mode
    • yaml-mode
    • shell-mode 系
    • markdown-mode
    • helm-projectile
  • プログラミング全般系
    • whitespace-mode
    • company-mode(auto-complete もかも。まだ置き換え完了してない気がする)
    • git-gutter
    • flycheck
  • 自作系
    • 自動フォーマット関数
    • プロジェクト依存の replace 関数
  • 編集系
    • undo-tree
    • 自動保存の設定
    • multiple-cursor
    • auto-insert
  • 表示系
    • yalinum-mode(だっけ)
    • view-mode
    • paredit
    • font系の設定
    • windows.el
    • fullscreen 設定
  • ファイル操作系
    • helm
    • tempbuf-mode
    • ido
    • recentf
    • dired系
    • open-junk-file
    • uniquify
  • 日本語関係
    • ddskk
    • migemo
  • その他
    • el-get
    • sticky-control
    • exec-path-from-shell
    • sdic関係
    • org-mode
    • seesaa-blog-mode
    • scratch-log
    • monokai
    • init-loader
    • helm-descbinds
そんなに使ってないもの

使ってるけど、そんなに使ってなかったり、 設定不備で騙し騙し使ってたりするもの

  • vc-annotate
  • plantuml-mode
  • vc-annotate
  • twmode
  • yasnippet
  • summarye
  • flex-autopair
  • esa-mode
  • web-mode
一旦捨ててもいいもの

設定は入れていたが色々あって使えなくなってて、 けど今後使いたいやつ

  • magit
  • org系のいくつか
  • e2wm 系
  • edbi
  • hideshow
  • fold-dwim
  • sql-mode 系
  • go 関係
  • blockdiag
  • grep-edit
    • wgrep がいいのかもしれない
  • yalinum-mode
    • display-line-numbers を使うなら捨てた方が良さそうな雰囲気
使いたいけどしばらくは良いやつ

なんか使ってないやつ。 覚えきれてなかったり最近はいいやってなってたり。

  • w3m 系
  • eldoc 系
  • emojis
  • lsp系
  • ace-jump
  • blockdiag
  • calfw
  • csv-mode
  • csv-nav
  • gist
  • id-manager
  • ipa-mode
  • multi-term
  • sr-speedbar
  • sudo-save
  • yard-mode
  • yari
  • inf-ruby
  • yatex
  • keyconbo
今はもう要らない子

昔使ってたけど、現職では要らない子達。 設定ファイル自体は将来使いたくなった時の参考用にどこかに置いておきたいが、 今はもう邪魔な子達

  • php-mode
  • php-doc
  • php-completion
  • vbnet-mode
  • csharp-mode
  • feature-mode
  • org-redmine

上のリストを作ってみての感想

残す物、むっちゃ多いな? 移行困難では……?

設定ダイエット計画その1

多いのは多いので置いといて、鍛え直し計画のために ダイエットはしないといけない。 というわけで以下の計画を考えた(雑)

  1. 今の設定ファイルを 2019.04.20.emacs.d とか適当な名前で移動する
  2. 残しておきたい拡張系を、素の設定で入れる
  3. どうしても削れない設定は即入れる
  4. 不都合があれば少しずつ今の設定から拾っていく

よしパーペキ。



タグ:作業ログ
posted by 麦汁 at 18:56 | Comment(0) | emacs | このブログの読者になる | 更新情報をチェックする

2018年07月15日

僕の最強 Emacs の Rails 開発環境が壊れてきたのでなんとかしてみた

3連休だし2年ぶりに Blog 記事書いてみる。 目的は単にやったことの記録を残すこと。

最近はエディタの設定を弄り倒す気力とかがなくて、 少々環境がブチ壊れても、基本的にそのままにしていた。 その結果、段々と Emacs での Rails 周りの環境がブチ壊れて来ている。

作業効率が低下しているはずなのでなんとかしようと思う

何が壊れてるか

  • flycheck でエラー吐かれる
  • projectile-rails が動いてない
  • auto-complete もぶっ壊れる

壊れてるのをひとまず直す

ruby-lint で怒られてるのをなんとかするの巻

とりあえず Ruby のファイルをいじって何かをしようとすると以下のように怒られが発生する。

Location: /Users/mugijiru/projects/dev/hoge/app/models/fuga.rb on line 16, column 18
Expected: 1
Received: 0
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:125:in `execute_callback'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:95:in `iterate'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/virtual_machine.rb:798:in `evaluate_node'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/virtual_machine.rb:486:in `on_class'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:125:in `execute_callback'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:86:in `block in iterate'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:85:in `catch'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:85:in `iterate'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:91:in `block in iterate'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:90:in `each'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/iterator.rb:90:in `iterate'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/virtual_machine.rb:195:in `block in run'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/virtual_machine.rb:195:in `each'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/virtual_machine.rb:195:in `run'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/runner.rb:125:in `run_vm'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/runner.rb:58:in `analyze_file'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/runner.rb:36:in `block in analyze'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/runner.rb:35:in `each'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/runner.rb:35:in `analyze'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/lib/ruby-lint/command.rb:51:in `run'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/bin/ruby-lint:88:in `block (2 levels) in <top (required)>'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/slop-3.6.0/lib/slop.rb:260:in `parse!'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/slop-3.6.0/lib/slop.rb:211:in `parse'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/ruby-lint-2.3.1/bin/ruby-lint:95:in `<top (required)>'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/bin/ruby-lint:23:in `load'
	from /Users/mugijiru/.anyenv/envs/rbenv/versions/2.5.1/bin/ruby-lint:23:in `<main>'

Try installing a more recent version of ruby-rubylint, and please open a bug report if the issue persists in the latest release.  Thanks!

最新版入れろよなって怒られてるけど、今入ってるのが最新版で その後は特にメンテされてないっぽい。つらい。 悲しいけど無効にする。

まずは Emacs の中で

(setq flycheck-disabled-checkers '(ruby-rubylint))

を突っ込んでおいて

$ gem uninstall ruby-lint

多分 uninstall だけでいいけど。 こいつの役割は rubocop か何かに任せよう。

projectile-rails が動いてない件

次は projectile-rails が動いてないのでファイル間移動がちょっとつらい問題。

M-x projectile-rails-mode

したら動くので、Rails プロジェクト内のファイルを開いた時には自動的に enable になってほしい。

と思って自分の設定を調べてたら単に

(projectile-rails-global-mode)

をコメントアウトしてた。というわけで有効にして解決。

auto-complete が動かなくなった
Making tags completion table for /Users/mugijiru/projects/dev/hoge/app/models/piyo.rb...
Error running timer ‘ac-update-greedy’: (user-error "File /Users/mugijiru/.rbenv/versions/2.1.5/lib/ruby/2.1.0/TAGS does not exist")

う……。いつの時代の設定だ……。 とりあえず .rbenv 内にある TAGS を見る設定を削除。 (っていうかそんなの生成してたんかな俺)

これでとりあえず auto-complete が動くようになった。あくまでとりあえずだけど。

動くようになったのでちょっと欲を出す

helm-for-files した時に helm-projectile の結果を優先的に出したい

helm-for-files 便利ですよね。C-; にキーバインドを当ててるので 基本的にファイルを開く時はそれで開いている。 で、それで projectile で拾えるリストが使えたら便利そうですよね。 というわけで

(setq helm-for-files-preferred-list
      '(helm-source-buffers-list
        helm-source-bookmarks
        helm-source-projectile-files-list
        helm-source-recentf
        helm-source-file-cache
        ))
helm で画像ファイルとかは無視したい問題

helm-for-files で Rails のファイルを検索できるようにしたものの 画像とか基本的に開かないので検索結果に出るとうざい。 あとついでに色々無視したい。

というわけで https://github.com/bbatsov/projectile/blob/master/doc/usage.md#ignoring-files に従い プロジェクト直下に .projectile というファイルを置いて

-/app/assets/images
-/tmp
-/log
-/public/uploads
~/node_modules

とか書いて解決。

最後に

もっと色々やりたかったけど Yak Shaving してしまったのでここまで……

タグ:Emacs ruby Rails
posted by 麦汁 at 23:57 | Comment(0) | emacs | このブログの読者になる | 更新情報をチェックする

2016年05月22日

seesaa blog mode とかいうの作った。

org-mode 大好きな自分のために seesaa blog の記事を org で書いて投稿するための seesaa-blog-mode.el とかいうの作った。

README あたりに色々書いたから こっちに書くことあんまりない。

README に書いている通りにインスコして設定しておいたら

M-x seesaa-blog-new-entry

で新しいエントリが作れる。 この時、設定するタイトルを聞かれるのでそれに対して

test title

とか書いたら

#+TITLE: test title

とかって感じの org なバッファが作られるようなやつ。

あと seesaa-blog-mode という minor-mode も有効になる。

で、つらつらなんか書いて

C-c C-c

したら /tmp に HTML が吐かれて browse-url でその HTML が開かれるのでそれでプレビューができる感じ。 自分はその際に emacs-w3m が起動するようにしているので、 その前提でコードが書いてた、ような。

まあ別にそれを見ないでもいいんだけど、 C-c C-p とかしたら公開する感じ。

org-mode の HTML エクスポート機能を使っているから htmlize をインストールしていると ソースコードもシンタックスハイライトされる。

書きかけで Emacs を終了した時なんかは 普通に書きかけのファイルを開いて

M-x seesaa-blog-mode

したらこの minor-mode が有効になるので 上に書いている C-c C-c 及び C-c C-p も有効になる感じになる。

というわけで、GitHubに公開しているバージョンでの初投稿テストです。

(GitHub 最新の org-mode で動かないのは内緒。 そもそも何故か org-html-export-as-html が動かない……)

タグ:Emacs EmacsLisp
posted by 麦汁 at 18:55 | Comment(0) | TrackBack(0) | emacs | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。