#!/bin/sh # fp - dmenu file picker, projectwise while ! ( [ -d .git -o -d .hg -o -d _darcs -o -f ?akefile ] || expr $PWD : "\(/\|$HOME\|$HOME/\(prj\|src\)/[^/]*\)$" >/dev/null ); do cd .. done find -L $PWD -maxdepth 4 -xdev \ '(' -type d -regex '.*/\(\..*\|CVS\|RCS\)' \ -o -name '*.o' -o -name '*~' ')' -prune \ -o -type f -print 2>/dev/null | sort | dmenu -l 20 2>/dev/null : elisp " (defun fp () "Find file in project using dmenu." (interactive) (let ((f (shell-command-to-string "fp"))) (unless (equal "" f) (find-file (substring f 0 (1- (length f))))))) "