ファイルの右クリックメニューに好きなコマンドを追加する方法
- [ファイル名を指定して実行]で、regedit を実行
- [マイコンピュータ] -> [HKEY_CLASSES_ROOT] -> [*] -> [shell] を右クリックし、新しいキーを作る。名前は何でもよい。
- 新しく作ったキーが選択された状態で、今度は右側ペインの(規定)というところをダブルクリック。
- 出てきたダイアログに、コンテキストメニューに表示したいメニューの名前を入力。
- 2.で作った新しいキーの下に[command]というキーを作成。
- また、右側のペインにある(規定)というところをクリックし、今度は実行したいコマンドを入力する。例えば "C:/xyzzy.exe %1"とする。%1のところにはファイル名がわたってくる。
ディレクトリを右クリックした時にメニューを出したい時は、
[マイコンピュータ] -> [HKEY_CLASSES_ROOT] -> [Directory] -> [shell]
に対して同様にやればOK。
Scheme どう書く?的
整列済みの number のリストがある。
'(1 3 4 5 6 12 13 15)
このようなリストで数が連続している部分は '(1 2 3) -> '(1 . 3) のように両端のみを書くような記法を導入する。
最初の例のリストであれば以下のようになる。
'(1 (3 . 6) (12 . 13) 15)
このようなリストの変換をするコードを書きたい。
書いてみました。こんな感じ。
う〜ん、なんかベタだなぁ。もっと、おぉ!というのが書きたい。
SRFIとか覚えないとダメかな・・・。
(define (compact-number-list lst) (define (skip-to-end l) (if (null? (cdr l)) l (if (= (+ 1 (car l)) (cadr l)) (skip-to-end (cdr l)) l))) (if (null? lst) '() (let ([beg (car lst)] [r (skip-to-end lst)]) (cond [(null? r) lst] [(= beg (car r)) (cons beg (compact-number-list (cdr r))) ] [else (cons (cons beg (car r)) (compact-number-list (cdr r)))]))))
moccur-grep-findをちょっと便利に
higeponさんのid:higepon:20080717:1216264518を見て、そういえば自分も
moccur-grep-findの拡張子の指定のところで困ってたな〜と思い出した。
いい機会なので自分も少し設定をごにょごにょしてみることに。
せっかくなので、id:higepon さんとは別のアプローチをとることにしてみた。
拡張子(本当は拡張子ではなくてファイルマスクか?)の指定で何が面倒かって、
例えば、拡張子がcppだったかhppだったか、それともただのhだったかわからない、
という時に、
searchstring \.cpp$\|\.hpp$\|\.h$
としなければいけなくてこれをタイプするのが面倒だった。
これが、
searchstring cpp,hpp,h
となっただけでだいぶ便利になるんじゃないか。というわけで作ったのがこれ。
ほとんどmoccur-grep-findそのままで、マスクの文字列のところをカンマでsplit
してガチャガチャやってるだけです。(例えばcpp,hpp,hなら\.cpp$\|\.hpp$\|\.h$にしてるだけ)
(defun moccur-grep-find-ext (dir inputs) (interactive (list (moccur-grep-read-directory) (moccur-grep-read-regexp moccur-grep-default-mask))) (moccur-setup) (setq moccur-last-command 'moccur-grep-find) (let (regexps mask (files nil) ;;(default-directory dir) ) (setq regexps (mapconcat 'concat (if (= 1 (length inputs)) inputs (cdr (reverse inputs))) " ")) (setq mask (if (= 1 (length inputs)) "." (car (reverse inputs)))) (setq mask2 (concat "\\." (mapconcat 'identity (split-string mask ",") "$\\|\\.") "$" )) (message "Listing files...") (cond ((listp dir) (while dir (cond ((file-directory-p (car dir)) (setq files (append (reverse (moccur-grep-find-subdir (car dir) mask2)) files))) (t (setq files (cons (car dir) files)))) (setq dir (cdr dir)))) (t (setq files (reverse (moccur-grep-find-subdir dir mask2))))) (message "Listing files done!") (moccur-search-files regexps files) ))
あとは除きたい拡張子を
searchstring ^svn-base
みたいにできたら便利かなぁ。
Redmineかなり快適
いやぁー。Redmine、かなり快適だ。
コミットログに、
あんなところや、こんなところを直した。(fixes #12)
というふうに、"fixes #チケット番号" のように書いておくと、
勝手にそのチケットがクローズされます。
ただし、管理 -> 設定 -> リポジトリ のところにある、『適用されたステータス』というところを空にしておくとダメみたい。
『終了』に変更したらうまく動いてくれるようになった。
ちなみに Redmine 0.7.2 およびそれ以前のバージョンには、
クロスサイトスクリプティングの脆弱性が存在するそうなので、
該当するバージョンを使ってる場合はバージョンアップすべし。
詳しくはここ
プロジェクト管理用アプリをRedMine0.7.2に変更。
インストールは/doc/INSTALLに書いてあるとおり。
思ったよりもサクサク動いてかなり快適。
実は最初インストールにてこずって結構はまったので忘れないようにメモ。
サーバのRubyがなぜか1.7が入っていたのでまず1.8.7にアップグレード。
RedMine0.7.2がRails2.0.2じゃなきゃダメらしいので、Rails2.0.2 + Ruby1.8.7 + RedMine0.7.2 という組み合わせで動かすことにした。しかしインストールして実際に動かしてみると、チケットを登録した後カレンダーや活動タブを表示させようとするとinternal error になってしまう。チケットが一つもない場合は大丈夫。
調べてみると、Ruby1.8.7に対応してるのは、Rails2.1からで、Rails2.0.2はRuby1.8.7未対応らしい。てか、Railsのサイトのトップにでかでかと書いてあった。ちゃんと読まない自分がいけない。
しかし、1.8.6の最新版であるRuby1.8.6-p230にしたら、なんと余計悪くなって、ログインすらできなくなった。
しかたないのでRuby1.8.6-p110あたりにしてみたら、今度はしっかり動いてくれた。とりあえずはRedMineがrails2.1に対応してくれるまでこのままようすみ。
Diredモードでファイルの作成
Diredモードで dired-create-directoryはあるのになんで dired-create-file
はないのかなぁーと不思議に思ってた。あそっか、shell-command で
tocuh 'filename'としてやれば済む話だからか、と納得。
それで shell-command で試してみたら、mcompleteの補完機能とぶつかって
うまくコマンドを渡せない事が発覚。今までずっとeshellを使ってたから気がつかなかった。mcomplete.elを開いて、mapcar に渡すリストの最後に ido-shell-command を追加して無事解決。
(mapcar #'(lambda (f) (put f 'mcomplete-mode '(:mode off))) '(iswitchb-buffer iswitchb-buffer-other-window iswitchb-display-buffer iswitchb-buffer-other-frame ido-find-file ido-find-alternate-file ido-write-file ido-insert-file ido-switch-buffer ido-insert-buffer ido-kill-buffer ido-find-file-other-window ido-find-file-other-window ido-switch-buffer-other-window ido-display-buffer ido-find-file-other-frame ido-switch-buffer-other-frame ido-shell-command))
でも、 だったら dired-create-directory だって mkdir 'dirname'でいいんじゃ?