黒い背景だとノート PC 電池節約のためにバックライトを暗くすると見にくいので明い背景のカラーテーマを作ってみた。名前適当すぎて変えたい。
nishikawasasaki/ns-milk-theme https://github.com/nishikawasasaki/ns-milk-theme
淡い色にしたら結局見にくかった……
黒い背景だとノート PC 電池節約のためにバックライトを暗くすると見にくいので明い背景のカラーテーマを作ってみた。名前適当すぎて変えたい。
nishikawasasaki/ns-milk-theme https://github.com/nishikawasasaki/ns-milk-theme
淡い色にしたら結局見にくかった……
以下は当時の記事で今は動作しないかもしれません。
2019/01/09設定を見直しました
↓
https://nishikawasasaki.hatenablog.com/entry/2019/01/09/Macのssh-agentとfish_shell(4年ぶり2回目)
インフルエンザが周囲で大流行、最前線です。
Mac で fish shell を使っていると、linux で ssh-agent 用に書いた設定でエラーが発生。 どうも Mac では SSH_AUTH_SOCK の場所が違うみたい。
探してみるとどうやら
/private/var/folders/fw/
にあるようなので、その時作られていた
/private/var/folders/fw/_tkなんとかかんとか/T/ssh/agent
を SSH_AUTH_SOCK に設定するように暫定設定。 _tk なんとかの部分はもし変わるようなら対応しよう。
# ssh-agent set agentPID (ps gxww | grep "ssh-agent]*\$" | awk '{print $1}') | head -1 set agentSOCK (/bin/ls -t /private/var/folders/fw/_tkなんとかかんとか/T/ssh*/agent*|head -1) if test "$agentPID" = "" -o "$agentSOCK" = "" set -e SSH_AUTH_SOCK set -e SSH_AGENT_PID eval (ssh-agent) ssh-add else set --export SSH_AGENT_PID $agentPID set --export SSH_AUTH_SOCK $agentSOCK # if [ `ssh-add -l` = "" ]; then # ssh-add < /dev/null # fi end
~/.config/fish/config.fish
の中で
# 環境毎の設定読み込み ########################################## switch (uname) case Darwin . $HOME/.config/fish/config_mac.fish case Linux . $HOME/.config/fish/config_gentoo.fish end
なんてしてます。
1/22 はカレーの日です!
Jersey そのままで JSON の出力をすると int でも引用符に囲まれた文字列の "0" になるし、要素が 1 つの時リストじゃなくなるしと残念なので、Jackson を使う。
Jackson のバージョン違いや設定方法の変更の影響でググるととにかくたくさん情報が出てくるのだけれど、いまの時点ではとにかく Jackson2 を使うため pom.xml に
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.2.3</version> </dependency>
と書けば web.xml さわらなくても Jackson が使えて、Jersey の JSON 出力も Jackson 利用に変わるので設定すっきり。
いまさら感もありますが mykie.el がとても便利です。
yuutayamada/mykie-el · GitHub - https://github.com/yuutayamada/mykie-el
状況に応じてキーをアサインできるこちらを利用することで、今までできなかった便利なキー設定が可能です。
まずはこちら。
(global-set-key (kbd "C-;") '(lambda () (interactive) (mykie :default 'helm-my :region 'helm-occur :region-handle-flag 'copy)))
普段は C-; で helm を起動しますが、リージョンのある場合は helm-occur を起動します。yank するだけですぐにリージョンの内容で helm-occur ができて便利ですね。
次はこちら。
(global-set-key (kbd "o") '(lambda () (interactive) (mykie :default 'self-insert-command :region 'occur-by-moccur :region&C-u 'moccur-grep-find :region-handle-flag 'copy)))
普段はそのまま o を入力しますが、リージョンのある場合は occur-by-moccur を起動します。C-u o とした場合は moccur-grep-find が起動します。yank するだけでリージョン内容からものが探せて便利ですね。
最後にこちら。
(global-set-key (kbd "r") '(lambda () (interactive) (mykie :default 'self-insert-command :region '(progn (deactivate-mark) (anzu-query-replace)) :region&C-u 'anzu-query-replace :region-handle-flag 'copy)))
普段はそのまま r を入力しますが、リージョンのある場合はバッファ全体に対して anzu-query-replace を実行します。C-u o するとリージョン内での anzu-query-replace となります。yank するだけでリージョン内容をすぐに探せて便利ですね。
mykie.el とは直接関係ないのですが、query-replace に最初から置換対象を渡して起動できると、一度 yank しなくてもよいのでもっと楽になりそうですがひとまずこれで使っています。
LVM 使わずに作成した virtualbox 仮想マシンのディスクを、 ちょっとずつ必要に応じてサイズ拡張しているといつも手順を忘れるのでメモしておく。
ファイルを作成するのでそこそこ時間がかかる
VBoxManage clonehd gentoo-disk1.vmdk gentoo-disk1.vdi --format VDI
実際にファイルサイズを拡張するわけではないので一瞬でおわる。 MB 単位で指定するので、ここでは 16 GB にしている。
VBoxManage modifyhd gentoo-disk1.vdi --resize 16384
新しく作成した vdi 形式のディスクへ付け替える。
おなじ SATA ポートで
↓
つけかえる
ディスクは拡張しても OS からわからないので、パーティションを拡張する。 fdisk コマンドで行うが、「拡張」オプションはないので消してから再作成する。
ディスク自体が拡張しているか確認する。
fdisk -l
Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2147bbb1 Device Boot Start End Blocks Id System /dev/sda1 2048 206847 102400 83 Linux /dev/sda2 206848 4401151 2097152 82 Linux swap / Solaris /dev/sda3 4401152 31457279 13528064 83 Linux
上の状態だと /dev/sda3 が拡張したい領域なので一度消す
fdisk /dev/sda
Command (m for help): d Partition number (1-4): 3 Partition 3 is deleted
消えている
Command (m for help): p Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2147bbb1 Device Boot Start End Blocks Id System /dev/sda1 2048 206847 102400 83 Linux /dev/sda2 206848 4401151 2097152 82 Linux swap / Solaris
再作成
Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (1-4, default 3): 3 First sector (4401152-33554431, default 4401152): Using default value 4401152 Last sector, +sectors or +size{K,M,G} (4401152-33554431, default 33554431): Using default value 33554431 Partition 3 of type Linux and of size 13.9 GiB is set
確認
Command (m for help): p Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2147bbb1 Device Boot Start End Blocks Id System /dev/sda1 2048 206847 102400 83 Linux /dev/sda2 206848 4401151 2097152 82 Linux swap / Solaris /dev/sda3 4401152 33554431 14576640 83 Linux
保存して終了
Command (m for help): w The partition table has been altered!
パーティションが拡張できたらファイルサイズを拡張して OS に認識させる。
resize2fs /dev/sda3
df -h
設定したサイズに増えていれば完了。
ホストマシンのディスクを圧迫するので不要になった vmdk ファイルを捨てる。
サーバー監視と Emacs 用の Gentoo on VirtualBox でブラウザ起動したら 音を出るようにしていなかったので作業メモです。
基本的には
を参考にして進めていけば良いです。
何点か補足するのが下記です。
なにはさておきドライバが無いと音は鳴りませんので、 上記の Gentoo Wiki の
Kernel You need to activate the following kernel options:
Kernel configuration
の部分を参考に設定されているか確認します。 もし Wiki のようになっていなければ設定を変更してカーネルをリビルドしましょう。
# root genkernel --bootloader=grub --menuconfig all
alsa-utils を emerge したら、単純に
# root
rc-update add alsasound boot
するだけです。忘れてたので……。
この時点で root ユーザーは alsamixer コマンドで音量設定等出来るはずですが root 以外のユーザーで alsamixer を実行すると
cannot open mixer: No such file or directory audio group
と表示されて失敗してしまいます。
これを解決するためには audio グループに自身の一般ユーザーを追加します。
# root gpasswd -a 追加するユーザー名 audio
usermod -G するとうっかりしがちなので gpasswd -a の方が良いと思います。
追加後はさらにログアウト・ログインも必要ですので注意。。
あとは alsamixer で音量調整をしながら
speaker-test -t wav -c 2
で音が出ることを確認して完了です。
なんとなく fish に移ってみました。
これまでよく使うディレクトリに移動するために zsh + autojump で j として使っていたのですが、 fish のタブ補完では j 入力後にどんな候補があるのか補完してもらえず どうしたものか考えていました。
コマンド履歴の補完は mooz さんの percol
mooz/percol https://github.com/mooz/percol
を使って
bpinto/oh-my-fish https://github.com/bpinto/oh-my-fish
の中にあった percol_select_history を利用することにしました。
じゃあということで fish で percol を使って 良く利用するディレクトリに飛べるよう function を作ってみました。
zsh 用は
percol で z / autojump のようにディレクトリ高速ジャンプ - Slip Ahead Logging http://stillpedant.hatenablog.com/entry/percol-cd-history
にありますのでこれを fish 用に改造して
set CD_HISTORY_FILE $HOME/.cd_history_file # cd 履歴の記録先ファイル # percol を使って cd 履歴の中からディレクトリを選択 # 過去の訪問回数が多いほど選択候補の上に来る function percol_cd_history sort $CD_HISTORY_FILE | uniq -c | sort -r | sed -e 's/^[ ]*[0-9]*[ ]*//' | percol | read -l percolCDhistory if [ $percolCDhistory ] # commandline 'cd ' # commandline -i $percolCDhistory echo 'cd' $percolCDhistory cd $percolCDhistory echo $percolCDhistory commandline -f repaint else commandline '' end end # キーバインドの追加 ############################################ function fish_user_key_bindings bind \cx percol_cd_history # 以下他のキーバインド end
加えて cd 系のコマンドで return する前に
echo $PWD >> $CD_HISTORY_FILE # percol_cd_history 用
してやると、ひとまずやりたいことが出来るようになりました。
cd コマンド実行時に移動先のパスを $CD_HISTORY_FILE へ書き出して保存しています。 cd した後に ls してほしいので
commandline -f repaint
が無いとキーバインドから実行した場合に画面が止まるようでした。
また、上の function では percol で選択するとすぐに cd していますが、 if 文の中のコメントアウトを逆にすると 入力だけしてくれて cd を実行するにはエンターが必要なように変わります。 履歴から補完して入力後に編集する機会が多いのであれば こちらを利用した方が便利なように思います。
commandline 'cd ' commandline -i $percolCDhistory # echo 'cd' $percolCDhistory # cd $percolCDhistory # echo $percolCDhistory # commandline -f repaint
以前は .keysnail.js 中で
style.register(<><![CDATA[
#keysnail-prompt-textbox *|input {
ime-mode : inactive !important;
}
]]></>);
のようにしてたのだけれど、Firefox 21 から E4X を廃止(予定)、 20 からはデフォルト利用不可にしたのでこのままではエラーが出るようになりました。
E4X | MDN https://developer.mozilla.org/ja/docs/E4X
ということで
style.register(['#keysnail-prompt-textbox *|input {',
'ime-mode : inactive !important;',
'}'].join("\n"));
と書き直してやれば問題なくなります。
変換にはこちらを利用いたしました、ありがとうございます!
http://logroid.blogspot.jp/2012/10/javascript-cdata-converter.html
とある大きな内容を git push しようとすると 見慣れないエラーで失敗しました。
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: recursion detected in die handler
411 なので送信量の指定がきちんとされていない?と思いつつ、 調べてみると gitlab のフロントにいる nginx が受けつけられる サイズの最大量を超えてしまっていたよう。
これを解決するために nginx の gitlab 用設定に
client_max_body_size 100M;
を一時的に追加しました。
しかしそれでも同じエラーが発生していたのでさらに調べたところ、 git が送信するファイル量が多すぎるとこのエラーが発生しするとのこと。 解決策は、送信するファイルのバッファ総量を変更することだそう。 この総量の設定値はローカルリポジトリ毎にもっているので
git config --global http.postBuffer 524288000
として変更しました。 いくつかのリポジトリで発生したため global を付けて設定しています。
こんな設定値があるのかーと思ったので備忘録として書いておきます。
eshell でリモートサーバに入って作業をしていると
/
からディレクトリを辿りたくなることがあります。 深い作業ディレクトリから /etc 下のファイルを見に行きたい時などです。
ここで
cd /
としてしまうと、リモートの / ではなくて 当然、自マシンの / へ移動してしまいます。
かといって相対パスで ../../../ なんてやるのも面倒なので リモートサーバの / まで移動する eshell 用コマンド "cd/"を 適当 に作っておきました。
;; リモートホスト / へ移動
(defun eshell/cd\/ ()
(interactive)
(let* ( (host-name (concat
(car (split-string (eshell/pwd) ":/"))
":/")))
(eshell/cd host-name)
))
// ( を2つ続けると、はてなの markdown で注釈になるのか。。
ちなみに eshell で helm を使うととても便利です。
helm-eshell-history を使うと eshell のコマンド履歴を helm で絞り込み → 入力できます。
コマンドを一部入力した状態で実行すると、 入力した部分に一致する候補が絞り込まれた状態で helm が起動するので便利です。 eshell 標準の eshell-previous-matching-input-from-input と同じような機能ですが、 helm で絞り込みが効くのでより便利だと思います。
helm-esh-pcomplete を使うと pcomplete の補完を helm で選択して入力することができます。 pcomplete をそのまま使うよりもはるかに便利だと思います。 pcomplete を使っているので、リモートサーバの上でも補完が可能です。
ちなみに helm-esh-pcomplete で補完を行うと相対パスが絶対パスに変換されて入力されます。 これにより、 eshell の cd を使った移動履歴を helm-eshell-history で絞り込む際に 履歴が全て絶対パスで記録されているため カレントディレクトリを意識せずに cd の履歴を再利用することができます。
"cd " と入力して helm-eshell-history を実行することで、 eshell は autojump 無しで移動したことのあるディレクトリに どんどん移動することができます!!
よく使うので eshell-mode-hook で
(define-key eshell-mode-map (kbd "M-p") 'helm-eshell-history)
(define-key eshell-mode-map [(tab)] 'helm-esh-pcomplete)
と割り当てて使っています。
auto-complete での eshell 補完も設定しているので 簡単な移動は auto-complete で、 リモートなどへの遠い移動や履歴からの補完は helm でと使い分けています。
eshell 便利です。
// とは言うものの、素直に zsh 使った方が良いことが多いですが……