[TxMt] Duplicate current file (was: TextMate Feature Request)
Allan Odgaard
allan at macromates.com
Wed Sep 7 12:23:31 UTC 2005
On 06/09/2005, at 19.29, Jeff Powell wrote:
[ I've cc'ed the ML, since this is a popular request, yet you're the
first to suggest solving the problem with a command :) ]
> It's pretty basic really --- I've got a project setup in TM and
> quite frequently, I will need to make a copy of a file inside of
> the project [...] Can I make a command that might do the duplication?
Yes, make a command that saves current file (since it duplicates
what's on disk). The actual command should be:
--------8<--------
# so we can work with relative paths
cd "$TM_DIRECTORY"
# construct a default name for the duplicate
def_name=`perl -pe <<<"$TM_FILENAME" 's/^(.*?)(\.[^.]*)?$/$1 copy$2/'`
# prompt user for a name
CocoaDialog inputbox --text "$def_name" --button1 "Duplicate" --
button2 "Cancel"|{
# if user selected 'Duplicate' and file doesn't exist
read res; read new_name;
if [[ "$res" == "1" && ! -e "$new_name" ]]; then
# do the actual duplication
cp -p "$TM_FILENAME" "$new_name"
# force TM to refresh project drawer and open duplicate
{ osascript -e 'tell application "SystemEvents" to activate' \
-e 'tell application "TextMate" to activate'
open -a TextMate "$new_name"; } &>/dev/null &
fi
}
More information about the textmate
mailing list