npmをapt-getしようとしたときのエラー対処
npmを入れようとしたら Unable to correct problems, you have held broken packages. とか怒られたので対処方法を調べた。
% sudo apt-get install npm Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: npm : Depends: nodejs but it is not going to be installed Depends: node-abbrev (>= 1.0.4) but it is not going to be installed Depends: node-ansi but it is not going to be installed Depends: node-archy but it is not going to be installed Depends: node-block-stream but it is not going to be installed Depends: node-fstream (>= 0.1.22) but it is not going to be installed Depends: node-fstream-ignore but it is not going to be installed Depends: node-github-url-from-git but it is not going to be installed Depends: node-glob (>= 3.1.21) but it is not going to be installed Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed Depends: node-inherits but it is not going to be installed Depends: node-ini (>= 1.1.0) but it is not going to be installed Depends: node-lockfile but it is not going to be installed Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed Depends: node-minimatch (>= 0.2.11) but it is not going to be installed Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed Depends: node-gyp (>= 0.10.9) but it is not going to be installed Depends: node-nopt (>= 2.1.1) but it is not going to be installed Depends: node-npmlog but it is not going to be installed Depends: node-once but it is not going to be installed Depends: node-osenv but it is not going to be installed Depends: node-read but it is not going to be installed Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed Depends: node-request (>= 2.25.0) but it is not going to be installed Depends: node-retry but it is not going to be installed Depends: node-rimraf (>= 2.2.2) but it is not going to be installed Depends: node-semver (>= 2.1.0) but it is not going to be installed Depends: node-sha but it is not going to be installed Depends: node-slide but it is not going to be installed Depends: node-tar (>= 0.1.18) but it is not going to be installed Depends: node-which but it is not going to be installed E: Unable to correct problems, you have held broken packages.
どうも先にppaリポジトリを追加してnodejsをインストールしていたために、 依存関係でエラーが出た様子。
sudo apt-get --purge remove nodejs sudo add-apt-repository --remove ppa:chris-lea/node.js sudo apt-get install npm
これで無事インストールできた。
rubocopを実行したときのエラー
rubocopを実行したら、
invalid byte sequence in US-ASCII
と怒られたときの対処法。
ということなので、
echo 'export LC_CTYPE=en_US.UTF-8' >> ~/.bashrc
を実行して解決。
use-packageを導入してみた
Emacs - use-packageで可読性の高いinit.elを書く - Qiita
上のサイトを参考にemacsにuse-package.elを導入してみた
require を use-package に書き換えるのはそのままなので問題なし
define-keyの書き換え方がいまいちわからない
:bind で ("キー設定" . 動作) はいいんだけど
キーマップの指定方法がよくわからない
よくわからないからuse-package.elに内蔵されてるbind-key.elで確認
「bind-key.el」タグの記事一覧 | るびきち「日刊Emacs」
(global-set-key (kbd "C-c x") 'my-ctrl-c-x-command)
↓
(bind-key "C-c x" 'my-ctrl-c-x-command)
(define-key some-other-mode-map (kbd "C-c x") 'my-ctrl-c-x-command)
↓
(bind-key "C-c x" 'my-ctrl-c-x-command some-other-mode-map)
なるほど 3つ目の引数でキーマップを指定すると
つまり
bind-key.el では
bind-key "キー設定" 動作 キーマップ
となる
ここで use-package.el の :bind に戻ってくると
:bind ( ("キー設定" . 動作 . キーマップ) )
ということになるように思える
試してみたけどどうも違うらしい
他のサイトもぼちぼち見てみたけど
use-pakcage.el の解説では :bind 使用時にキーマップの指定をしているのが見つけられない
ということでキーマップが global-map 以外の場合は bind-key.el でいこう
まとめ
use-package.elを導入した
require
↓
use-package
define-key
↓
キーマップが global-map の場合は
:bind ("キー設定". 動作)
キーマップがそれ以外の場合は use-package.el に内蔵されている key-bind.el を使う
(bind-key "キー設定" '動作 キーマップ)
その他のオプションはそのうち追記予定