Есть ли горячие клавиши для перемещения папок вверх или вниз по родительским папкам и подпапкам в MacOS?
например, в этом простом примере я хочу переместить файл 1234.pdf в папку A, что оставит подпапку A пустой. В идеале я смогу сделать это, используя только клавиатуру. Бонусные баллы: горячая клавиша для повторного выбора последней выбранной подпапки (чтобы я мог удалить, переименовать и т. д.).
- Folder A
- Subfolder A
-File 1234.pdf
- Folder B
решение1
Я извиняюсь за задержку с ответом. Это оказалось сложнее, чем я предполагал.
Но можно достичь желаемого, создавуслугавАвтоматизатор, который затем станет доступен с помощью сочетания клавиш (горячей клавиши).
Вам нужно будет следоватьэто руководство по созданию общесистемной службы.
Начните с создания новой услуги вАвтоматизатор. Он должен будет получитьфайлы или папкив качестве входных данных и быть доступным вИскатель.
ДобавитьЗапустить AppleScriptдействие в рабочий процесс. В текстовой области этого действия можно скопировать и вставить следующий AppleScript:
use Finder : application "Finder"
property F_ : missing value -- The previous folder
property f : missing value -- The files that we moved
property home : Finder's home as alias
on run {f, _}
get its ParentFolderOf:(some item in f)
set there to the result -- The destination folder, one level up
-- We won't navigate any higher up the folder tree than
-- the home folder
if (its ParentFolderOf:home) is in there then return
-- Also don't apply this service to other folders that aren't
-- in the same branch of the folder tree as the home folder
if (there as text) does not begin with (home as text) then return
-- The folder we're currently at
tell Finder to set F_ to ¬
(the container of some item in f) as alias
-- Check to ensure there are no files in the destination folder
-- that risk being overwritten. If there are, we won't move
-- the files who share the same name, i.e. only move those that
-- are safe to move.
tell Finder to ¬
repeat with _g in f
get name of _g
set g to [there as text, result] as text
if not (g exists) then set end of f to _g
set f to the rest of f
end repeat
-- Move the files
tell Finder ¬
to set f ¬
to (move f to there) ¬
as list as alias list
-- Reveal them
reveal f
activate Finder
end run
to ParentFolderOf:(f as alias)
local f
set F_ to [f, "::"] as text as alias
if (f as text) ends with ":" then return F_
return its ParentFolderOf:F_
end ParentFolderOf:
Сохраните услугу под любым именем по вашему желанию. Автоматизаторавтоматически сохраняет его в нужном месте (~/Библиотека/Услуги). Я сохранил свой как«Подняться в Finder».
Далее вам нужно создать сочетание клавиш. Это делается черезСистемные настройки:
Под списком услуг вам нужно будет прокрутить вниз до раздела, обозначенного какФайлы и папки, под которым должно появиться имя вашей службы. Вы можете видеть мое выделенным. Я создал ярлык ⌃▲для своего (Ctrl+Вверх).
Теперь, каждый раз, когда я выбираю файлы и/или папки вИскательи нажмите ⌃▲, эти файлы и папки поднимутся на один уровень вверх по иерархии в родительскую папку. Если я хочу переместить их обратно, я могу нажать , ⌘Zчтобы отменить перемещение.
Я установил защиту, чтобы файлы и папки не перемещались выше по дереву папок, чем ваша домашняя папка. В любом случае, вряд ли вам это понадобится.
решение2
Если вы работаете в режиме просмотра столбцов, вы можете перемещаться только с помощью клавиш со стрелками.
Для вашего примера предположим, что вы начинаете с выбранного файла...
Cmd ⌘ C копировать
Стрелка влево [выберет подпапку A], поэтому для получения бонусных очков...
- Enter ⌅ позволит вам переименовать его или Cmd ⌘ Backspace ⌫ удалить
[Это не приведет к потере файла, находящегося в буфере копирования]
- Enter ⌅ позволит вам переименовать его или Cmd ⌘ Backspace ⌫ удалить
Стрелка влево [выберет папку A]*
Cmd ⌘ Opt ⌥ V двигаться
Вот как выглядит структура в начале.
и еще раз в конце [после удаления подпапки A по пути]
*Поскольку об этом нигде не упоминается в ответе, на данном этапе стрелка вниз выберет папку B.