Сохранение группы писем Mail в формате RTF c картинками и музыкой
![]() |
![]() |
Мне давно хотелось сохранять группу сообщений электронной почты в виде одного текстового файла. Я предполагал, что потребуется написать сценарий или воспользоваться сторонней программой-конвертором и провел около часа, читая обсуждения. Разумеется, можно создать архив почтового ящика, но прочесть письма потом будет возможно только вновь импортировав их в Mail.
Image: mobilejunkie.wordpress.com
Решение оказалось неожиданно простым. Сначала выделите группу писем в Mail; затем выберите Save As (Сохранить как). В нижней части окна сохранения укажите формат Rich Text. Вот и всё! Mail сохранит выбранные письма с картинками и даже аудиовложениями. Если кому-то решение покажется слишком очевидным, что ж, если оно уже и было описано ранее, мне встречать не приходилось.
macosxhints.com
ДалееTerminal: использование Finder Trash
![]() |
![]() |
Я написал несколько bash- функций для удаления из Терминала в нормальную Корзину Mac OS X. Это не так просто, как кажется на первый взгляд, ведь каждый раздел имеет отдельную Корзину. Начните с добавления нижеследующего кода в ваш загрузочный bash-файл (.bashrc или .profile):
#!/bin/bash -c 'echo This file is meant to be sourced.'
alias rm='del'
# make rm(1) safe.
# Remove or comment-out this line to return to normal rm(1) functionality.
function del ()
{
if declare -F trash >/dev/null
then
trash "$@"
else
command rm -i "$@"
fi
}
function trash ()
{
local F
local HOME_DEVICE="$(stat -f %Sd "$HOME")"
local TRASHCAN=~/.Trash
# Set this in advance _outside_ the loop below
for F in "$@"
do
if ! test -e "$F"
then
echo "No such file or directory: $F" 1>&2
return 4
fi
local DEVICE="$(stat -f %Sd "$F")"
if [ x"$DEVICE" == x"" ] || [ x"$DEVICE" == x"???" ]
then
echo "Can't locate trash for ${F}." 1>&2
return 3
fi
if [ x"$DEVICE" != x"$HOME_DEVICE" ]
then
TRASHCAN="$(trashOnDevice "$DEVICE")"
fi
if [ ! -d "${TRASHCAN}" ]
then
command rm -f "${TRASHCAN}"
if ! mkdir -m 700 "${TRASHCAN}"
then
echo "$TRASHCAN is inaccessible at this time." | sed 's;'"$HOME"';~;g' 1>&2
return 1
fi
fi
local FinT="$(basename "$F")"
if [ -e "${TRASHCAN}/${FinT}" ]
then
FinT="$(date) ${FinT}"
fi
if ! mv -vn "$F" "${TRASHCAN}/${FinT}"
then
echo "Unable to move $F to the trash." 1>&2
return 2
fi
done
local TRASHSIZE="$(du -hs "${TRASHCAN}" 2>/dev/null | cut -f 1)"
local TRASHCANloc="$(dirname "$TRASHCAN" | sed 's;^/Volumes/\(.*\)/.Trashes;\1;g' | sed 's;'"$HOME"';~;g' | sed 's;^/.Trashes;/;g')"
echo "${TRASHSIZE:- 0B} in trash on $TRASHCANloc."
}
function emptytrash ()
{
local TMPIFS="$IFS"
IFS='
'
local MOUNTS=( $(mount | sed -n 's:/dev/.* on \(.*\) (.*):\1:p') )
local TRASHCANs=( "${HOME}/.Trash" $(IFS="$TMPIFS";for i in `seq 0 $(( ${#MOUNTS[@]} - 1 ))`; do echo "${MOUNTS[$i]}/.Trashes/$(id -u)"; done) )
IFS="$TMPIFS"
unset TMPIFS
local TRASH_SIZE
TRASH_SIZE="$( (for i in "${TRASHCANs[@]}"; do ls "$i"/; done) 2>/dev/null | wc -w)"
if [ "$TRASH_SIZE" -gt 0 ]
then
echo -n "Emptying trash"
for i in "${TRASHCANs[@]}"
do
tput smcup
pushd "$i" 2>/dev/null && {
srm -frsvz . 2>/dev/null ; popd ;
}
tput rmcup
echo -n .
done
local DONE=
[ `ls "${HOME}/.Trash" | wc -w` == 0 ] && DONE="Done."
echo "$DONE"
else
echo "Trash is empty."
fi
}
function trashOnDevice ()
{
local DEVICE="$1"
local MOUNT="$(mount | sed -n 's:/dev/'"$DEVICE"' on \(.*\) (.*):\1:p')"
if [ x"$MOUNT" == x"" ] || [ x"$MOUNT" == x"???" ]
then
# If no mount point is found, then don't return the path to root!
return 1
elif [ x"$MOUNT" == x"/" ]
then
# Encourage the resulting path to _not_ start with two slashes
MOUNT=""
fi
echo "$MOUNT/.Trashes/$UID"
}
# Usage : seq n m [i]
# echo all integers between n and m using a skip or increment of i
function seq ()
{
[ "$1" ] || [ "$2" ] || return 1
local x=$1;
local y=$2;
local i=${3:-1};
local seperator="${4:- }"
while [ $x -le $y ]
do
echo -n $x"${seperator}";
x=$(( $x + $i ));
done
echo
}
macosxhints.com
ДалееВышел TranslateIt! for Mac Deluxe 12. Обзор нововведений
![]() |
![]() |
| Нужен словарь? Скачать TranslateIt! for Mac бесплатно! |
Хороший словарь на компьютере вещь практически незаменимая. Даже если вы языками особо не интересуетесь, всегда найдется что-то/где-то, требующее перевода: будь-то скачанная техническая документация, или сайт, на котором находится нужный материал.
Пользователи Mac имеют стандартный инструмент для перевода — Словарь. Но если дело доходит до перевода большого количества текста или отдельной веб-страницы, приходится искать альтернативу.
Многие пользователи (включая и меня) давно уже остановили свой выбор на TranslateIt! и пользуются им с удовольствием. Для постоянных пользователей есть хорошая новость: вышло обновление TranslateIt! for Mac Deluxe 12. Основные его преимущества уже давно не новость для постоянных пользователей, поэтому я коротко остановлюсь на нововведениях в последней версии.
ДалееMac Soft: плагин для просмотра исходного кода в Quick Look
![]() |
![]() |
| Нужен словарь? Скачать TranslateIt! for Mac бесплатно! |
Разные плагины для Quick Look в большинстве случаев предназначены для удобного просмотра мультимедийных файлов или документов. Но разработчики не забыли о таких же, как и они сами. Появился плагин для Quick Loock, который позволяет просматривать код с сохранением цвета текста.
Те, кто работает в этой сфере знают, что разный цвет кода отвечает за разные части кода: названия процедур, функций, зарезервированные слова, строки текста и числа и так далее.
ДалееMac Tip: Фокусы с виджетом Weather
![]() |
![]() |
| Нужен словарь? Скачать TranslateIt! for Mac бесплатно! |
Если вы время от времени пользуетесь Dashboard, то, наверняка, в перечне отображаемых виджетов присутствует Weather. Можно подумать: ну что тут такого? Настраивать виджет просто, нужно только ввести свой город и ждать, пока программа подберет подходящее совпадение. И можно еще свернуть/развернуть окно. Но, как оказалось, самое интересное не в этом.
ДалееMac Tip: Еще один способ сохранения документов
![]() |
![]() |
При сохранении нет ничего проще, чем прижать Command + S (лучше всего делать это периодически), выбрать нужную папку, и сохранение документа завершено. Я случайно нашел еще один способ сохранения документа, через то самое диалоговое окно. Этот метод нельзя назвать быстрым, хотя в некоторых ситуациях он может ускорить этот процесс.
Далее

