2015-04-13 (月)

helm-bundle-show.elを作ったら、またEmacsから離れられなくなった [Emacs][Ruby][zsh]

bundleしてるgemにcdする。pecoで絞り込みつつ - Qiita

Emacsでも同じことがやりたかったので、helm-bundle-show.elを作りまし
た。絶対誰か作っているだろ!と思って探したけどありませんでした。

masutaka/emacs-helm-bundle-show

`$ bundle show` with helm interface



helm-bundle-show

続きを読む

この記事に言及しているこのブログ内の記事

2014-09-06 (土)

ghqとcdrの出力を一緒にpecoに食わせたら捗った [zsh][Go][Emacs]

最近はghq+pecoでリポジトリのあるディレクトリ、cdr+pecoで最近訪れた
ディレクトリに簡単に移動できて、非常に捗っている。

ghq+pecoとcdr+pecoはそれぞれ以下の記事が詳しい。

- ghqを使ったローカルリポジトリの統一的・効率的な管理について - delirious thoughts
- pecoを使い始めた - $shibayu36->blog;

ただ、ghq+pecoはC-x C-y、cdr+pecoはC-x bと、当然別々のキーになるの
で、どっちを使うか考えたり間違えたりするのでモヤモヤしていた。

Emacsは自作のhelm-ghq.elで同じ操作感にしていたので、同じモヤモヤだっ
たが、最近来たPull Requestを取り込んでからは改善。

C-x b (helm-for-files)でghqの出力も出すことでキーバインドを1つに集
約できた。C-x C-yのキーバインドは削除。

C-x bでこのような一覧が表示されて、絞り込む感じ。
- ghq list --full-pathの出力
- 現在開いているバッファ
- 最近開いたファイル
- カレントディレクトリにあるファイルやディレクトリ

複数のソースを出力していても、混乱しないどころか便利に使えたので、
zshも同じでいいじゃんと思い、変更した関数がこれ。(リファクタリング出来そう...)

続きを読む

2014-06-20 (金)

pyenvとpercolをインストールした [Python][zsh]

数年前にRTMに入れたままになってましたが、ようやくpercolをインストー
ルしました。zshでhelmっぽい履歴検索をやりたかったためです。

https://github.com/mooz/percol

※ 最近の毎週木曜日は、会社の人ともくもくしています。

続きを読む

この記事に言及しているこのブログ内の記事

2014-05-18 (日)

zshの履歴検索は↑やC-rだけじゃないよM-pもあるよ&履歴マニアの話 [zsh]

少し前にこちらの記事が話題になりました。
naoya_itoの火を噴いたシェルtips - Togetterまとめ

rebuild.fmのEpisode41でも言及されていた気がします。

弊社フィードフォースでも、ペアプロの時にこういった話をすることはあ
ります。ただ、C-rやC-uは知られていても、M-pはあまり知られていない雰
囲気でしたのでまとめました。

続きを読む

2013-12-07 (土)

OSXのzshで直前の履歴をクリップボードにコピーするやつ作った [zsh][OSX]



何かコマンドを打ってから、Ctrl-x Ctrl-pするとクリップボードに
コピーされます。

2012-11-19 (月)

OSXのGNU Screenは~/.zprofileを読み込まない? [zsh][OSX]

tmuxのすすめ|catatsuyのBlog

これを参考にtmuxを試していたら、なんかPATHがおかしい。調べてみたら、
むしろGNU Screenの方がおかしくて、~/.zprofileが読み込まれていないこ
とが分かった。

私の~/.zprofileは以下のとおり。

#
# /etc/zprofile and ~/.zprofile are run for login shells
#

# all bourne shells should source /etc/profile
source /etc/profile



/etc/profileは以下のとおり。

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
	eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
	[ -r /etc/bashrc ] && . /etc/bashrc
fi



結果的に以下が原因で、PATHとMANPATHが異なっていた。
GNU Screen -> eval `/usr/libexec/path_helper -s` が実行されない
tmux -> eval `/usr/libexec/path_helper -s` が実行される。
[2007-01-22-1] 見ると、GNU Screenの挙動が変だよなあ。。。

環境:
OSX 10.8.2 Mountain LION
zsh 4.3.11 (i386-apple-darwin12.0) # OSX付属
Screen version 4.00.03 (FAU) 23-Oct-06 # OSX付属

ひとまず~/.zprofileを空っぽにして対応。OSXで新規ユーザを作ってもそ
れ系のファイルは作られなかったので、Debianの名残なんでしょう。

追記(2012-11-20):
今回も @cvmat さんからアドバイス頂きました。


2011-10-12 (水)

GNU Screenの別Windowsのカレントディレクトリに移動するzshスクリプト、cddを直した [zsh]

cdd - screen の別WINDOWのカレントディレクトリに移動する zsh スクリプト - coリ・ー・ン<2nd life

結論から言うと結構便利です。GNU Screen を使っている zsh ユーザーは
是非お試しを。

私の環境では以下のエラーが発生するので、修正して gist にアップしま
した。(coderepos へのコミットの仕方が分からないし、人によっては必要
ない修正なので、gist にアップしました。)

- "unsetopt clobber"(既存のファイルへの上書きリダイレクト防止) を設
  定していると 49 行目付近の "echo "\n" >> "$CDD_PWD_FILE"" がエラー
  になる。
- $HOME/.zsh が存在しないとエラーになる。

あと、cdadd と cddel がそれぞれ _cdadd と _cddel でないと使えなかっ
たので、直しました。



追記(2012-05-18):
最近は使ってないというか、存在を忘れてますね〜。。
ところでこんな記事がありました。
cdd を tmux, bash, multi session +α に対応した - カワイイはつくれる

2011-09-28 (水)

ターミナルの zsh と Emacs を風のように駆け抜ける! [Emacs][zsh][勉強会]

福岡Emacs 行ってきました!

Mew 関係者がお二人(@nom4476 @moepanda)もいらっしゃったり、Vim 使い
が 1/3 くらい占めていて案外新鮮だったり、ワールドカフェという対話手
法に感心したり(残念ながら時間切れで途中で退席しましたが)で、とって
も楽しかったです!

嬉しかったことは @moepanda さんにお会いできたことと、@nom4476 さん
が「このブログ読んでますよ」と仰ってくれたこと。うれしはずかし...(*^^*)

私も「Langrich社でのEmacs活用、langrich.el」というお題でデビューを
飾ることが出来ました。8888

それぞれの発表も面白かったのですが、一番気になったのが発表の中でど
なたかが、ターミナルの現在のディレクトリを dired で開いたり、Emacs
の現在のバッファに対応するディレクトリをターミナルで開いたりしてい
たことでした。

どなたか忘れてしまったのですが、試しにツイートしてみたら @nom4476
さんが gist に置いてくださいました。



Gist のコードはこちら。



かる〜く解説。

- dired()
ターミナル上の zsh で dired とタイプすると、現在のディレクトリを
dired で開いてくれます。

- cde()
同じく cde とタイプすると、Emacs の現在のバッファに対応するディレク
トリをターミナル上の zsh で開いてくれます。

※ emacsclient 使っているので、~/.emacs とかに (server-start) を書
いておく必要があります。

でも elscreen 使っていると、cde() が動きません。elscreen が frame
情報を書き換えているためのようです。なんとしてでも動かしたかったの
で、風邪をおして(笑)頑張ってハックしました。

ついでに @Dubhead さんの修正も dired() に含めました。("dired .." と
か "dired usr/local" とか出来るようになります。)



合わせて Quicksilver の Triggers を使えば、dired() や cde() した後
に簡単にフォーカスを切り替えられます。

関連 URL (?) :
風になりたい奴だけが Emacs を使えばいい。 - 日々、とんは語る。

追記(2011-10-10):
kiwanami さんのブログが更新されたので、追記します。
fukuoka-emacs 0x03 やりました - 技術日記@kiwanami

追記(2011-10-11):
私を含めた全員分のポジションペーパーは google docs にあります。

追記(2011-10-27):
@syohex さんがもう少し厳密に取り出すように改良してくれました。
cdeを改良 - Life is very short

この記事に言及しているこのブログ内の記事

2009-08-22 (土)

screen で 最終行にウィンドウ一覧を表示する方法 [screen][zsh]

以下を ~/.screenrc に書くと、

hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"


こんな風に表示できます。
screen-hardstatus

タブ表示みたいで良いですね。ウィンドウをいくつ開いているかよく忘れ
るので ^^; 、便利です。

参考情報:
GNU screen いろいろまとめ。 - naoyaのはてなダイアリー

追記(2009-08-23):
zsh ユーザの方は、以下を ~/.zshrc に書いておくと "zsh" という文字列
の代わりに「コマンド実行中はコマンド名を、未実行ならカレントディレ
クトリを表示」してくれます。情報ありがとうございます。> kitokitoki さん

case "$TERM" in
screen)
    preexec() {
        echo -ne "\ek#${1%% *}\e\\"
    }
    precmd() {
        echo -ne "\ek$(basename $(pwd))\e\\"
    }
esac



参考情報:
screenのキャプションにディレクトリ名 or コマンド名を表示 - メモの日々(2008-03-31)

2009-04-30 (木)

漢の zsh [zsh]

zsh との付き合いは 7 年くらいになりますが、やはり補完が便利です。

tar のオプションを補完。

% tar ←ここで tab キー
A -- append to an archive
c -- create a new archive
f -- specify archive file or device
t -- list archive contents
u -- update archive
v -- verbose output
x -- extract files from an archive


make のルールを補完。

% make ←ここで tab キー
all check-syntax clean hoge.o hugahuga.o main.o


cd した履歴を補完。

% pwd
/home/masutaka
% cd /usr/local
% cd /home
% cd /etc
% cd -←ここで tab キー
0 -- /home/masutaka
1 -- /usr/local
2 -- /home


という前書きはさておいて、「漢の zsh」というコラムがあったので、
ざっと読んでみました。個人的に気になった設定をメモメモ。

第6回: 漢はだまって先方予測 - あなたはこの機能使いこなせるか」より。


以下の設定をすると、コマンド入力時に携帯のかな漢字変換の先行予測の
ようなことをしてくれる。

autoload predict-on
predict-on


第8回: これは既にシェルを超えている…… zshの算術演算」より。


expr コマンドを使わずに計算が出来る。

% echo $(( 1 + 2 + 3 + 4 + 5 ))
15

あらかじめ "zmodload -i zsh/mathfunc" を実行し、mathfunc モジュール
を読み込むと、以下のような sin 関数演算も出来る。

% echo $(( sin(1) ))
0.8414709848078965

sh では変数の型はすべて文字列だが、zsh では整数型や実数型もあるとのこと。

第11回: zshはエディタか? - 「zed」でお手軽編集」より。


zsh には簡易エディタ機能も備えている。(あらかじめ "autoload zed" を
実行しておく必要がある。)

% zed hoge.txt

-f を指定すると、zsh の関数を編集出来る。

% zed -f function_name

実は zed 自体も zsh の関数で、自分自身を編集できてしまう。

% zed -f zed


第15回: **で簡単ヒット!!! - 漢達への熱いお願い付き」より。


ワイルドカードの展開内容をその場で確認可能。

% cd /usr/*←ここで C-x g
/usr/X11R6 /usr/bin /usr/games /usr/include /usr/lib /usr/local /usr/sbin /usr/share /usr/src


ここまで書いておいて何ですが、実はたくさん設定をするのは好きではな
いです。ある程度満足したら、後はできるかぎり設定を少なくすることに
喜びを感じます。^^;

2007-01-22 (月)

設定ファイルの読み込み順番 [zsh]

ログインシェルとして起動: .zshenv -> .zprofile -> .zshrc -> .zlogin
インタラクティブシェルとして起動: .zshenv -> .zshrc
シェルスクリプトとして起動: .zshenv
ログインシェルとして終了: .zlogout

この記事に言及しているこのブログ内の記事

2004-12-14 (火)

ログイン/ログアウトの監視 [zsh]

tcshでもできるみたい。
<http://tehanu.hpcl.titech.ac.jp/zsh/waka/intro-LoginLogoutWatching.html>
% watch=all
% WATCHFMT="%n has %a %l from %m at %t %w."
% log

2004-01-08 (木)

cd した履歴を辿ってくれる。 [zsh]

% cd -[TAB]

2003-06-26 (木)

foreach 文の使い方 [zsh]

foreach file (*); if [ -d "$file" ]; then; ls -alFd $file; fi; end

2003-02-25 (火)

補完テーブルを作り直す [zsh]

hash -r

2003-02-19 (水)

パイプとリダイレクト [zsh]

`|&' は `2>&1 |' の省略形だが、`>& word' は `> word 2>&1' の省略形ではない。

2002-07-24 (水)

zsh-tips第?弾 [zsh]

`which コマンド名` と '=コマンド名'は同じ
% ls -al =emacs
lrwxrwxrwx 1 root root 5 Apr 30 06:44 /usr/local/bin/emacs -> emcws
rm *.o~hoge.o で hoge.o 以外の全ての *.o が消せる。
ワイルドカードの部分に <ここから-ここまで> のように
数値を指定すると数値的にその範囲内に当たるファイル名がマッチする。
{ここから..ここまで}との違いはエラーを出さないこと。
% ls -a <1-10>
1 2 4 5

2002-06-13 (木)

HIST_IGNORE_ALL_DUPS -> 同じコマンドの history は履歴に入れない。 [zsh]

'setopt histignorealldups'して、'history'すると同じ履歴は消えているけど、
$HISTFILEの中身は消えてない。これは、デフォルトでは $HISTFILEの同期は
zsh プロセスが exit したときだから。INC_APPEND_HISTORY や SHARE_HISTORY を
有効にしていると、このタイミングが変わる。
SHARE_HISTORYは、直前の履歴を使い回すことが多い時は却って不便かもしれない。
マニュアルにあるように、適当なタイミングで 'fc -RI'する方が使い易いかも。

2002-05-23 (木)

カレントディレクトリ以下のすべての実行ファイルを削除 [zsh]

zsh $ rm **/*(x.)

最終更新時間: 2017-08-11 21:21

検索
最近の話題
- 2017-08-07
  github-nippou v3.0.0 released
- 2017-08-02
  『サーバーレスシングルページアプリケーション』を読んだ
- 2017-07-10
  emacs-helm の標準添付から外された helm-elscreen を Melpa に追加した
- 2017-07-05
  WEB+DB PRESS Vol.99の「実践Kubernetes」の第4章でつまづいたメモ #wdpress
- 2017-06-29
  Kubernetes Meetup Tokyo #5 に行ってきた #k8sjp
- 2017-06-26
  『プログラマのためのGoogle Cloud Platform入門』を読んだ
- 2017-06-02
  AWS Summit Tokyo 2017 に行ってきた #AWSSummit
最近追記された記事
- 2017-06-02-1 (41日前)
- 2017-04-29-1 (103日前)
- 2017-04-13-1 (117日前)
- 2017-04-13-1 (119日前)
- 2017-03-02-1 (161日前)
- 2017-02-25-1 (166日前)
- 2017-02-21-1 (170日前)
- 2015-06-07-1 (176日前)
- 2016-10-19-1 (185日前)
- 2016-01-01-1 (197日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (19)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (3)
- Book (87)
- Boxen (2)
- Bugsnag (1)
- C (26)
- capistrano (4)
- chalow (56)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (10)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (3)
- E-mail (8)
- elasticsearch (4)
- Emacs (220)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (1)
- Game (20)
- GCP (1)
- Gem (5)
- Git (9)
- GitHub (17)
- Go (5)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (3)
- Heroku (9)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPhone (15)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Kubernetes (2)
- Langrich (7)
- LDAP (6)
- Life (19)
- Linux (6)
- Mackerel (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (1)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (12)
- Rake (2)
- RaspberryPi (1)
- RedHat (29)
- Redmine (3)
- Rspec (1)
- Ruby (50)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Twitter (14)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (25)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (15)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
Google+