Функция “вырезать” в Finder на Mac OS
Странно что Apple не реализовала в своем файловом менеджере Finder функцию “Cut” (“Вырезать”) для файлов в привычном для нее смысле. Хотя если раскрыть ниспадающее меню “Edit” при выделенных файлах, то там красуется неактивный пункт “Cut (Cmd+X)” – зачем он там? Правильно! Вырезать кусочки текста при редактировании имен файлов! Но никак не для перемещения файлов. Получается некоторая дискриминация для тех кто предпочитает использовать клавиатуру для работы с файловыми массивами по средством Finder’а, так как Apple пропагандирует повсеместное использование Drag&Drop для перемещения файлов.
Далее я хочу рассказать о простом решении данной проблемы несколькими способами…
Если немного по-Google-ть, то обнаруживаются старые посты про то, что “нехитрой” командой в терминале
1 | defaults write com.apple.finder AllowCutForItems 1 |
можно включить “Cut” для файлов, но в комментариях пишут что “вырезание” файла перемещает его в корзину или что-то в этом роде (проверить не удалось так как, судя по словам негодующих на эту тему, работает это только в 10.3).
Так же в некоторых постах пишут предположения (факты?) почему Apple так поступила с “Cut”:
Почему же Apple считает, что вырезание файлов – опасная штука? Объяснений тут два:
- вы можете вырезать файл, забыть о нём и перезагрузить систему, потеряв его навсегда,
- вы можете случайно несколько раз вырезать разные файлы, безвозвратно затерев предыдущие.
Зачем вырезая файл куда-то его перемещать? Ведь в том же терминале приспокойно работает команда
1 | mv source_path destination_path |
и в функции “Cut” можно было бы как минимум использовать простое копирование в буфер обмена полного пути (source_path) файла со специальным маркером обозначающим что при выполнении вставки будет происходить фактически выполнение команды mv в директорию назначения (destination_path) в которой мы выполняем “Paste” (“Вставить”).
Ну что же, мысль не плохая, но нужно будет поколдовать чуть больше (что как раз возможно породит еще один пост на эту тему с другим готовым решением), а сейчас пока что более простое решение…
Идея проста, мы создаем сервис в Automator’е, которому назначаем сочетание горячих клавиш и который в свою очередь принимает выделенные в Finder’е файлы или директории как входной параметр, открывает диалог выбора директории назначения после чего перемещает выбранные файлы/директории в выбранное место.
Итак, открываем в Automator’е диалог создания нового Service’а и добавляем первое действие “Get Selected Finder Items”, это позволит нам получить все выделенные файлы и директории в активном окне Finder’а. Далее добавляем действие “Run AppleScript” со следующим содержанием:
1 2 3 4 5 6 7 | on run {input, parameters} activate set theFolder to choose folder with prompt "Select destination folder" without invisibles tell application "Finder" to move input to theFolder activate application "Finder" return input end run |
Все. Сохраняем сервис например под именем “Smart Move”, назначаем ему сочетание горячих клавиш и проверяем его работу в Finder’е!
Данное решение немного доработано по сравнению с подобными, которые можно найти на других блогах, в плане перевода фокуса вначале на открывающийся диалог выбора директории назначения, а потом обратно на окно Finder’а.
P.S. В конце концов, когда идея написания этого поста уже была записана где-то в блокноте, я нашел-таки аналог функции “вырезать” в Finder для Mac OS Lion – сначала копируем файл (Cmd+C), а затем вставляем, удалив оригинал (Cmd+Opt+V). Wow! Разработчики сподобились добавить хотя бы такой “костыль”!

Спасибо за Cmd+Opt+V !

Поскольку на тот момент не знал, то пришлось эксперементировать
Буквально час назад методом тыка нашёл, что мышью можно перенести (по умолчанию – копировать) нужные файлы с прижатым Cmd.
Пожалуйста!
На самом деле если мышкой перетаскивать без нажатия дополнительных клавиш в пределах одного диска, то это как раз и будет перемещение, а вот если с одного диска на другой перетаскивать, то по умолчанию будет как раз копирование, и вот тут уже нужно зажимать Cmd для перемещения. В любом случае, для меня, да и для других любителей быстрых манипуляций “горячими клавишами”, перетаскавание совсем не то что нужно, а вот Cmd+Opt+V это именно то что нужно!
Hello Melnaron,
I just wanted to thank you or MEL.CHAT you have provided. It’s a very simple but yet powerful script. I’m sure you have alot to do but i just have a question about it. Is there a way that I can give people the option of choosing their text color. I mean either before they login or after they login, if so how can I do that?
greatly appreciated.
Hello Ed, and thank You for you question.
If you want to add ability of choosing text color you must to do some programming both on the client and the server side. Of course you must to add new column to database table where messages stored. And you must write some code on client-side to send color code chosen by the user to the server-side and store this code with other message data in your db. Then, when other client will be getting new messages you must provide rendering message color with adding (wrapping) message text in html-element like or something else…
Good luck in adapting of my work
Further questions are welcome!
Thanks for this quick reply.
I’m not a programmer/ web designer. So I don’t know how to do any of those
Do you have any plans for MEL.CHAT update in the future with more options?
Thanks again for your answer.
-Ed
Ah, i see.
Sorry, but my answer for this time is “no” because i have a lot of work on my own projects and with other commercially supported projects.