Hatena::ブログ(Diary)

mizchi log

@mizchiの雑記帳

2012-03-03

z.shいれる際の注意


zsh使いなら効率改善のため知っておきたいAUTOJUMP - Glide Noteで知って入れてみた。

が、ちゃんと動かない。補完時にエスケープされずに表示される。そのままエンターしても遷移しない。

no title

If you want, you can take a look at line 107 in z.sh, and change it from:

if( $1 ) print "\"" $1 "\""

to

if( $1 ) print $1


言われたとおりに書き換えたら動いた。(シェルスクリプト詳しくない…)
awkのprint関数のエスケープの挙動がシェル(もしくはそのバージョン)によって違うんだろう、たぶん。

2011-11-20

MacBook Air にいれてるアプリ 11/20


旧・Macの手書き説明書 - FC2 BLOG パスワード認証
読んでたら書きたくなった。環境構築厨として。

アプリのリンクやスクショ貼るのめんどかったので、ぐぐってください。

ターミナルでできることはターミナルでやる派なので、最近はアプリ減りました。
Dock表示しないし、デスクトップに何も置かない。極力マウスを使わない、そんな設定。キーバインドがないアプリは問答無用でクソ。

Google日本語入力

IMEことえりでは人間が死ぬ。

YoruFukurou

Twitterクライアント。Macだと他が霞んで見える使いやすさ。

Limechat for Mac

IRCクライアント

NNDD

ニコ動ビュワー + ダウンローダ。画面サイズを調整できるのが良い。
要: 最近アップデートがうざいAdobeAir

Growl

アップデートでめんどくさかったから350円の有料版買ったら、色々動かなくなって後悔した。それでもないと死ぬ。

Namely

シンプルなアプリランチャ。/Applications以下から補完する。それだけ。
QuickSilverは大仰すぎた。

AppCleaner

アンインストーラ。~/Library/Application Supports/のリソースも消してくれる。

GeekTool

一秒リフレッシュでデスクトップにtopコマンドを貼ってる。
アクティビティモニタの代用。

TotalTerminal

開発用。
SIMBL不要でViser的なことができる。この前までiTerm2使ってたのだけど、xterm-256でvimのカラースキームが使いたかっただけなので、Lionでデフォルトとなった現在iTerm2はいらないかな、という認識。画面分割はtmuxでやる。

ブラウザ

本当はFirefoxを使いたいのだけど、あのリリーススケジュールだと動くものも動かない。メモリ食いつぶす問題が収まって安定するまでは、Chromeを使うことにした。

Chromium

ChromeのOSS開発版。たしか何かの最新API使いたくて入れたのだが、その後も人柱し続けている。verによっては突然日本語入力できなくったりするが(コミットログみてるとあるモジュールが定期的に消されては復活している。英語圏…)、普通の人は普通にChrome使うのがいいと思う。

ViChrome

Vim風キーバインドを提供してくれるものでは一番

FullFeed for Chrome

グリモン。LDR用。

LDR open in background tab

グリモン。LDR用。

JSON View

開発用。JSONのAPI叩いたときに見やすく整形してくれる

Autopegerize

いわずもがな。

はてブ拡張

いわずがな。

共有

iCloudの余りのクソさに憤慨。というか僕は主に共有先がMacじゃないので…

Dropbox

主にunix設定ファイルだとか、軽いスニペットのドキュメントを置いている。色々ドキュメントソフトあるけど、好きなエディタで好きなファイルぶん投げればそれで十分な気がする。自炊した本を置くには、ちょっと容量足りない。

色々キャンペーンこなして3.5GBにはなってるのだけど、昔VM用Ubuntuの仮想イメージ置いて複数台から参照してたらぶっ壊れたので(当然だが…)、そういうのはやめようと思った。

Pogoplug

アプリで完結するものではないのだけど、Pogoplugに差した家のHDDにアクセスできる。LAN内ならローカル参照と同じ速度でるので2GB x2差してる。自宅クラウドで4GB。
MBPは容量少ないので、~/Downloadsを定期的にぶん投げて、気が向いたときに整理するようにしている。

エディタ

学習コストを無視していろんなエディタをいじりまくった結果、最近はエディタをいじって解決するのではなくて、プラギンごとに得手不得手があるならエディタごと切り替えれば良い、という考えになった。
なんでも一つのでエディタでという思想は、EmacsのNavi2chが他バッファ巻き込んで落ちたときに捨てた。

CocoaEmacs

MacVim

Sublime Text2


共通点としてはどれもVimキーバインドとして設定してあること。Vimはいわずもがな、Emacsはvimpulse-mode、SublimeText2はvintage。スニペットはDropbox上にある。
ところでWebStorm気になるんだけどCoffeeScriptでのJS補完が動いたら使ってみたい。高い。

2011-02-24

Emacs 再び


半年程Vimを使っていたが、気になっていたプラグインの使い勝手を試したくてゼロからEmacs環境を作った

f:id:mizchi:20110224123305j:image

拡張


  • anything
  • autoinsert
  • auto-complete
  • auto-install
  • color-moccur
  • elscreen
  • jaunte
  • multiterm
  • simple-hatena
  • undo-tree
  • vimpulse
  • yasnippet
  • zencoding

vimpulse + jaute + elscreen + anything で、かなり vimperator っぽくなった
hit-a-hintできるjaunteかなり素敵。キーバインドはもう vim じゃないと生きて行けないんだが、vimpulse のおかげでかなり忠実な挙動をする
vimのpathogenの管理が楽だったので、基本 ~/.emacs.d/plugin/ 以下に拡張ごとのディレクトリ掘って汚染しないようにした
再帰的に読み込むには以下のようにする

(let ((default-directory "~/.emacs.d/plugin/"))
    (setq load-path (cons default-directory load-path))
    (normal-top-level-add-subdirs-to-load-path))

が、auto-install で突っ込んだ拡張はバラバラに展開されるのでauto-install依存のものは諦めた

以下設定 vimpulse の設定

参考:vimpulseとanythingを使う設定とか - *iroi*

; vimpulse
(setq viper-mode t)
(setq backup-inhibited t)
(require 'vimpulse)
(setq vimpulse-cjk-want-japanese-phrase-as-word t)
(require 'vimpulse-cjk)
(defun vimpulse-set-mode-line-face ()
  (unless (minibufferp (current-buffer))
    (set-face-background 'mode-line
                         (cdr (assq viper-current-state
                                    '((vi-state       . "Black")
                                      (insert-state   . "Red")
                                      (emacs-state    . "Wheat")
                                      (operator-state . "Green")
                                      (visual-state   . "Blue")))))))

(add-hook 'viper-vi-state-hook    'vimpulse-set-mode-line-face)
(setq visible-bell nil)
(add-hook 'viper-insert-state-hook      'vimpulse-set-mode-line-face)
(add-hook 'viper-emacs-state-hook       'vimpulse-set-mode-line-face)
(add-hook 'vimpulse-operator-state-hook 'vimpulse-set-mode-line-face)
(add-hook 'vimpulse-visual-state-hook   'vimpulse-set-mode-line-face)
(defadvice set-buffer (after vimpulse-mode-line-face activate)
  (vimpulse-set-mode-line-face))
(defadvice find-file (after vimpulse-mode-line-face activate)
  (vimpulse-set-mode-line-face))
(defadvice kill-buffer (after vimpulse-mode-line-face activate)
  (vimpulse-set-mode-line-face))
(defadvice switch-to-buffer (after vimpulse-mode-line-face activate)
  (vimpulse-set-mode-line-face))
(defadvice select-window (after vimpulse-mode-line-face activate)
  (vimpulse-set-mode-line-face))
(defadvice delete-window (after vimpulse-mode-line-face activate)
  (vimpulse-set-mode-line-face))	


; comibinate with anything
(defun my-minibuffer-minor-mode ()
  (when (fboundp my-minibuffer-minor-mode)
    (funcall (symbol-function my-minibuffer-minor-mode))))
(add-hook 'minibuffer-setup-hook 'my-minibuffer-minor-mode)
;;(add-hook 'minibuffer-exit-hook 'my-minibuffer-minor-mode)
(defadvice anything (around set-major-mode activate)
  (let ((my-minibuffer-minor-mode 'my-anything-minibuffer-mode))
    ad-do-it))
(easy-mmode-define-minor-mode
 my-anything-minibuffer-mode
 "Anything MiniBuffer Mode"
 nil
 " Anything MiniBuffer"
 '())
(vimpulse-map ";" 'viper-ex)
(vimpulse-map ":" 'anything-M-x)
(vimpulse-map "?" 'describe-bindings)
(vimpulse-map "l" 'forward-char)
(vimpulse-map "h" 'backward-char)
(vimpulse-map "F" 'find-file)
(vimpulse-map "f" 'jaunte)
(vimpulse-map "m" 'hs-toggle-hiding)
(vimpulse-map "M" 'my-toggle-hideshow-all)
(vimpulse-map " " 'anything)
(vimpulse-map "\C-r" 'anything-recentf)
(vimpulse-map "\C-y" 'yas/insert-snippet)
(vimpulse-map "\C-j" 'yafastnav-jump-to-forward)
(vimpulse-map "b" '(lambda ()
                     (interactive)
                     (anything 'anything-c-source-elscreen)
	))

(vimpulse-map "!" '(lambda ()
                     (interactive)
                     (anything 'anything-c-source-shell-command)
	))

(vimpulse-map "\C-s" 'anything-c-moccur-occur-by-moccur) ;バッファ内検索
(vimpulse-map "td" 'elscreen-kill)
(vimpulse-map "tt" '(lambda ()
                     (interactive)
		     (elscreen-create)
		     (anything-recentf)
	))
(vimpulse-map "H" 'elscreen-previous)
(vimpulse-map "L" 'elscreen-next)
(define-key viper-minibuffer-map "\C-g" 'keyboard-escape-quit)
(define-key viper-insert-global-user-map "\C-g" 'viper-exit-insert-state)
(define-key viper-insert-global-user-map "\C-h" 'delete-backward-char)
(define-key viper-insert-global-user-map "\C-b" 'backward-char)
(define-key viper-insert-global-user-map "\C-f" 'forward-char)
(define-key viper-insert-global-user-map "\C-n" 'next-line)
(define-key viper-insert-global-user-map "\C-p" 'previous-line)
(define-key viper-insert-global-user-map "\C-a" 'move-beginning-of-line)
(define-key viper-insert-global-user-map "\C-e" 'end-of-line)
(define-key viper-insert-global-user-map "\C-h" 'delete-backward-char)
(define-key viper-insert-global-user-map "\C-i" 'yas/expand)
(define-key viper-insert-global-user-map "\C-y" 'yas/insert-snippet)
(define-key vimpulse-visual-basic-map "v" 'end-of-line)
(define-key vimpulse-visual-basic-map ";" 'comment-dwim)

(vimpulse-define-key 'my-anything-minibuffer-mode 'insert-state "\C-n" 'anything-next-line)
(vimpulse-define-key 'my-anything-minibuffer-mode 'insert-state "\C-p" 'anything-previous-line)
(vimpulse-define-key 'my-anything-minibuffer-mode 'insert-state "\C-f" 'anything-next-page)
(vimpulse-define-key 'my-anything-minibuffer-mode 'insert-state "\C-b" 'anything-previous-page)
(vimpulse-define-key 'my-anything-minibuffer-mode 'insert-state "\C-l" 'anything-force-update)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "o" 'anything-follow-mode)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "j" 'anything-next-line)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "k" 'anything-previous-line)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "\C-f" 'anything-next-page)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "\C-b" 'anything-previous-page)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "\C-l" 'anything-force-update)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "}" 'anything-next-source)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "{" 'anything-previous-source)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "gg" 'anything-beginning-of-buffer)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "G" 'anything-end-of-buffer)
(vimpulse-define-key 'my-anything-minibuffer-mode 'vi-state "/" 'anything-isearch)