прикладное ПО

Mac OS X. Кто хранит данные в контейнерах?

Mac OS X. Кто хранит данные в контейнерах?

В качестве дополнения к предыдущей заметке приведу примеры программ, хранящих свои данные внутри контейнера (а не в подпапках папки Документы). Кстати, это ещё может помочь тем, кто хочет найти/скопировать/сохранить такие данные (например, электронные книги 😉 )

Как говорится, без комментариев — только название программы и каталог, где хранятся данные.

Amazon Kindle
~/Library/Containers/com.amazon.Kindle/Data/Library/Application Support/Kindle/My Kindle Content
iBooks
~/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks/Books

 

Заметьте: в контейнере ~/Library/Containers/com.apple.iBooksX/Data/Documents хранятся только служебные базы данных.

iMovie
~/Library/Containers/com.apple.iMovieApp/Data/Library/Application Support/Motion/Library
Keynote
~/Library/Containers/com.apple.iWork.Keynote/Data/Library/Application Support/User Templates
Numbers
~/Library/Containers/com.apple.iWork.Numbers/Data/Library/Application Support/User Templates
Pages
~/Library/Containers/com.apple.iWork.Pages/Data/Library/Application Support/User Templates
Mail (Почта)
~/Library/Containers/com.apple.mail/Data/Library/Mail Downloads
Evernote
~/Library/Containers/com.evernote.Evernote/Data/Library/Application Support/Evernote/accounts/Evernote
Pixelmator
~/Library/Containers/com.pixelmatorteam.pixelmator/Data/Library/Application Support/Pixelmator/Brushes
Опубликовано Михаил К в Советы, 0 комментариев
Mac OS X. «Лечение» приложений

Mac OS X. «Лечение» приложений

Бывает, что программа, которая еще вчера работала идеально, вдруг неожиданно начинает «глючить». Что делать?

Чаще всего проблема связана с вспомогательными файлами, которые приложение создает в процессе своей работы. Соответственно, для «ремонта» нужно, чтобы программа создала их заново. В Mac OS X это сделать очень просто.

Шаг 1. Кеш-файлы

  1. Переходим в папку «~/Library/Caches». Если пользовательская папка «Библиотеки» у вас скрыта, нужно выбрать команду «Переход → Переход к папке…» и указать этот адрес (без кавычек). (Либо зажать клавишу Option (Alt) — в меню «Переход» при этом волшебным образом появится пункт «Библиотека»)
  2. Находим кеш «больной» программы. Это просто — в большинстве случаев имя искомой папки либо совпадает с названием программы, либо включает доменное имя разработчика и, опять-таки, имя программы. Изредка кеши нескольких программ могут быть вложены в папку с именем разработчика (например, Adobe или Google).
  3. Выбрасываем найденный кеш в Корзину (программа при этом не должна быть запущена).
  4. При следующем запуске программы кеш будет создан заново (запуск, естественно, будет из-за этого дольше обычного).

Если проблема устранена, значит нам удалось справиться «малой кровью» (серьёзно: на всё тут нужно потратить не более пары минут).

Кстати, если лень выискивать конкретный кеш, можно, не мудрствуя лукаво, выкинуть всё содержимое папки Caches. Хуже точно не будет 😉

К сожалению, чистка кешей далеко не всегда спасает ситуацию. В этом случае придется прибегнуть к более радикальным действиям.

Шаг 2. Файлы настроек

Внимание! При удалении файла настроек все настройки будут потеряны!

  1. Переходим в папку «~/Library/Preferences». Здесь находятся файлы настроек многих программ. (До появления «песочницы» тут были настройки всех программ)
  2. Находим файл настроек нашей программы.
  3. Переносим этот файл, например, на Рабочий стол (программа при этом не должна быть запущена).
  4. Запускаем программу, при этом она создаст новый файл с настройками по умолчанию.

Если программа заработала нормально, восстанавливаем (к сожалению, ручками) свои настройки. Ну, а старый файл настроек — удаляем.

Шаг 2а. Контейнер

Внимание! При удалении Контейнера настройки, а также, возможно, некоторые данные программы будут потеряны!

В современных версиях Mac OS X появился механизм «песочницы» (Sandbox) — способ ограничить доступ программ как к системным ресурсам, так и к данным пользователя. Для этого каждой из «sandboxed» программ выделяют свой «контейнер». Там находятся рабочие файлы этой программы, ее настройки и т.п. Если «заболела» программа из «песочницы», действия будут наиболее сложными.

  1. Переходим в папку «~/Library/Containers».
  2. Находим папку-контейнер нашей программы.
  3. Переносим эту папку, например, на Рабочий стол (программа при этом не должна быть запущена).
  4. Запускаем программу, при этом она создаст новый контейнер с настройками по умолчанию.

Если программа заработала нормально, восстанавливаем свои настройки (вручную, т.к. чаще всего проблема кроется именно в файле настроек). Затем просматриваем папку Data, находящуюся в старом контейнере, и, если там есть нужные файлы данных (такое бывает, хоть и не очень часто), поочередно (каждый раз проверяя, не приведет или это к сбоям) пробуем вернуть их в новый контейнер. При замене файла программа не должна быть запущена.

После того как убедились, что работа программы полностью восстановлена, остатки старого контейнера удаляем.

Шаг 3. Если ничего не помогает…

…нет, мы не будем переустанавливать Mac OS X (во всяком случае, с необходимостью таких действий мне сталкиваться ни разу не приходилось).

Как самое радикальное средство — создаем нового пользователя. Пробуем зайти в систему от его имени. Если теперь всё работает нормально, остается перенести к нему все нужные файлы, после чего удалить старого пользователя.

Опубликовано Михаил К в Советы, 0 комментариев
«Ремонт» программы (Mac OS X)

«Ремонт» программы (Mac OS X)

TopazFusionExpressСегодня столкнулся с неприятностью: Topaz Fusion Express (это такая вспомогательная программулина, чтобы из Aperture и/или iPhoto можно было вызывать модули для фотообработки Topaz) оказалась нерабочей. Вместо нормальной иконки — серая перечеркнутая.

Быстрое обследование «больного» показало, что как-то странно выставились права доступа на папку Contents в пакете приложения. При попытке «Показать содержимое пакета» (команда контекстного меню, вызванного правым кликом на иконке программы) видна эта папка Contents. Но для нее показывается размер 0 байт (и 0 элементов). И открыть ее нельзя — нет прав.

Для «лечения» оказалось достаточно одной команды в Терминале:

sudo chmod 777 /Library/Application\ Support/Topaz\ Labs/FusionExp2/Topaz\ Fusion\ Express\ 2.app/Contents

Чтобы ее дать, удобно сделать следующее:

  1. В окне Терминала набираем sudo chmod 777 (с пробелом в конце);
  2. Мышкой «бросаем» в окно папку Contents — автоматически пропишется полный путь;
  3. Нажимаем Enter и по появившемуся запросу вводим пароль.

У меня после этого программа запустилась без проблем.

Чего и всем желаю.

PS Естественно, рецепт годится не для одной этой конкретной программы 😉

Опубликовано Михаил К в Mac OS X / macOS, Советы

Художественная студия GIMP

Рамон Миранда, художник из Испании, возглавляет проект по разработке комплекта инструментов и настроек графического редактора GIMP, призванный превратить эту программу в настоящий профессиональный инструмент. И, надо сказать, его работы дают уверенность в успехе этого славного начинания.
Вот небольшая видеопрезентация GIMP Paint Studio:

А загрузить входящие в GPS компоненты можно на сайте проекта, поддерживаемом Google: The Gimp + GPS (gimp paint studio).

Опубликовано Михаил К в Графика, 0 комментариев
Справка по редактору vi. Основные команды

Справка по редактору vi. Основные команды

Наиболее распространенные команды консольного текстового редактора vi.

Содержание


Совет: Перед любыми действиями с документом введите следующую команду:

:set showmode


Запуск и завершение VI

vi filenameОткрыть файл filename для редактирования
vi -r filenameОткрыть последнюю сохраненную версию filename после аварийного выхода
vi filename file2Открыть filename, затем file2 … Переход к следующему файлу — :n
ZZ или :wq или 😡Сохранить изменения и завершить VI
:wСохранить изменения в текущем файле
:w!Безусловно сохранить текущий файл
:w fileСохранить текущий файл под именем file
:q!Завершить VI без сохранения

К началу страницы

Режимы

VI работает в командном режиме и режиме ввода. Сразу после запуска редактор находится в командном режиме, в котором можно перемещаться по тексту, выполнять копирование и вставку текста из буфера. Режим ввода включается по командам вставки, дополнения, замены. Нажатие [ESC] возвращает редактор в командный режим. Большинство команд выполняется сразу после нажатия клавиши. Исключение — команды строчного редактора ex, начинающиеся с двоеточия, которые выполняются после нажатия [Return].

К началу страницы

Вставка текста

iВставка перед курсором
IВставка перед строкой
aДобавление за курсором
AДобавление после строки
:r fileВставить содержимое file после текущей строки
В режиме ввода:
CTRL-i или TABВставить смещение вправо на shift width
CTRL-dУменьшить смещение вправо на shift width
CTRL-h или BackspaceУдалить предыдущий символ
CTRL-wУдалить предыдущее слово
CTRL-uУдалить предыдущую строку

К началу страницы

Перемещение по тексту

hВлево
jВниз
kВверх
lВправо
«стрелки»Перемещение по тексту (в больших файлах работает медленно, в некоторых конфигурациях может работать некорректно).
wК следующему слову
bК началу слова
^К первому непробельному символу строки
+ или <cr>К первому символу следующей строки
К первому непробельному символу предыдущей строки
eК концу слова
(К началу предложения
)К концу предложения
{К началу абзаца
}К концу абзаца
Примечание: абзацы разделяются пустой строкой.
0 или |К началу строки
$В конец строки
1GК первой строке файла
GК последней строке файла
HК верхней строке экрана
LК нижней строке экрана
CTRL-dПрокрутка вниз на пол-экрана
CTRL-fПрокрутка вниз на экран
CTRL-uПрокрутка вверх на пол-экрана
CTRL-bПрокрутка вверх на экран
%К парной скобке: ( ), { }, [ ]

К началу страницы

Удаление текста

Большинство команд удаления образуются из символа d и команды перемещения. Например, dw удаляет слово. Другие команды удаления:

xУдалить текущий символ
nxУдалить n символов вправо, начиная с текущего
XУдалить символ слева от курсора
nXУдалить n символов влево от курсора
dd или :dУдалить текущую строку
«(a-z)ddВырезать текущую строку в именованный буфер (от a до z)

К началу страницы

Копирование в буфер

Подобно командам удаления, большинство команд копирования в буфер состоят из символа y и команды перемещения. Например, y$ помещает в буфер конец строки.

yy или :yКопировать текущую строку
«(a-z)yyКопировать текущую строку в именованный буфер (от a до z)

К началу страницы

Изменение текста

Команды изменения действуют как команды удаления с последующим переводом в режим ввода. Большинство из них состоит из символа c и команды перемещения. Например cw заменяет слово.

Вставка из буфера

pПоместить текст из буфера после курсора
PПоместить текст из буфера перед курсором
«(a-z)p или «(a-z)PПоместить текст из буфера (от a до z) после/перед текущей строкой

Буферы

Имя буфера может быть указано перед любой командой удаления, изменения, копирования или вставки. Префикс имеет вид «c, где c — любой символ нижнего регистра. Например, «adw удаляет слово и помещает его в буфер a. Затем его можно будет поместить в текст по команде «ap.

К началу страницы

Поиск/замена подстрок

/strПоиск str вперед от курсора
?strПоиск str назад от курсора
nПовторить поиск в том же направлении
:n,ms/str1/str2/optИскать строку str1 со строки n до m (n и m могут быть опущены); заменить str1 на str2; с опциями opt. Возможные опции: g — глобальный, c — подтверждать замены (y — заменить, <cr> — не заменять), p — печатать измененные строки
&Повторить последнюю команду :s
:g/str1/s/str2/str3/Найти строку, содержащую str1, заменить str2 на str3
;Повторить поиск
,Повторить поиск в обратном направлении

К началу страницы

Регулярные выражения

. (точка)Любой символ, кроме «новой строки»
*0 или более вхождений любого символа
[…]Любой из указанных символов
[^…]Любой из символов, кроме указанных
\<Строго в начале слова
\>Строго в конце слова
^В начале строки
$В конце строки
\(…\)Группа условий
\nЗначение n-ой группы
\Отмена значения спецсимвола (например, \$ позволяет искать символ $)
\\Отмена особого действия символа \

Счетчики

Практически перед любой командой можно указать количество ее повторений. Например, 5dw приведет к удалению 5 слов, а 3fe — к перемещению курсора вперед на 3-е вхождение символа «e». Подобным образом можно действовать и с командами вставки, например, вставить 100 одинаковых строк.

К началу страницы

Режимы VI

Заметьте: вводится :set option для включения режима и :set nooption для выключения. Чтобы установить настройки для каждого запуска VI, в домашнем каталоге создается файл .exrc, содержащий данные команды без двоеточия перед ними.

:set aiАвтоматический отступ (по предыдущей строке)
:set allВывести на экран все режимы
:set ebЗвуковой сигнал при ошибках
:set icИгнорировать регистр при поиске
:set listПоказывать символы табуляции (^l) и конца строки ($)
:set nu
:set number
Показывать номера строк
:set showmodeПоказывать текущий режим в нижней части экрана
:set showmatchПодсвечивать парную открывающую скобку при вводе закрывающей
:set waИсключить нормальную проверку перед записью
:set wm=nУстановить размер правого поля для автопереноса. Для отключения автопереноса n=0

К началу страницы

Макросы

Примечания:

  • Файл «.exrc» в домашнем каталоге может содержать набор макросов, используемый при каждом запуске VI (записываются аналогично командам определения макросов, но без двоеточия).
  • Чтобы включить в макрос управляющий символ, например, ESC, следует предварительно нажать CTRL-v.
  • Чтобы включить в макрос кавычки («), перед ними набирается \ (backslash).
  • Неиспользуемые в vi клавиши: K V Z g q v * = [ ] @ # и функциональные.

Пример (выделены команды VI, которые будут включены в макрос):

:map v /I CTRL-v ESC dwiYou CTRL-v ESC ESC

Действие макроса: При нажатии v найти «I» (/I ESC), удалить слово (dw) и вставить «You» (iYou ESC). CTRL-v нужно для вставки кода ESC

:map key cmd_seqНазначить клавише key исполнение макроса cmd_seq
:mapПоказать в строке состояния все имеющиеся макросы
:unmap keyУдалить макрос
:ab str stringПри вводе сокращения str заменить его на string
:abПоказать все сокращения
:una strОтменить сокращение str

К началу страницы

Прочее

~Смена регистра символа над курсором
JСлияние следующей строки с текущей
nJСлияние n строк
.Повторить последнюю команду, изменяющую текст
uОтменить последнее изменение
UОтменить все изменения в строке
CTRL-GПоказать имя файла, номер строки, общее число строк и положение в файле (%)

К началу страницы

Опубликовано Михаил К в FreeBSD, Linux