Заставить клавишу Backspace перейти в предыдущую папку в Finder
Есть ли способ изменить OSX так, чтобы он немного больше походил на Windows 7. В частности, я действительно хочу иметь возможность нажать BACKSPACE и Finder, чтобы показать предыдущую папку... точно так же, как Windows и Firefox.
Надеюсь, это понятно.
3 ответа
Хотя решение, предлагаемое barbaz, является приличным, на самом деле есть идеальное:), которое снимает ограничение, которое не позволяет использовать Backspace в текстовых полях в Finder (например, при переименовании файлов или вводе в поле поиска).).
- Установите потрясающее приложение Karabiner, которое позволит вам переназначить практически все, что вам не нравится, на что угодно
- Найдите и отредактируйте файл private.xml в соответствии с инструкциями в ссылке (и прочитайте, как обновить Karabiner для включения private.xml в основной список при переходе к шагу 4)
Вставьте следующий код и сохраните файл private.xml:
<item> <name>Backspace in Finder moves Up</name>⌥ <appendix> (except when editing text fields)</appendix> <identifier>private.Backspace_MoveUp</identifier> <only>FINDER</only> <uielementrole_not>AXTextArea, AXTextField</uielementrole_not> <autogen>__KeyToKey__ KeyCode::DELETE, ModifierFlag::NONE, KeyCode::CURSOR_UP, VK_COMMAND</autogen> </item>
Это делает следующее:
- Назначает ⌥ Opt + ↑ для клавиши Backspace.
- Примечание: в моем OS X Yosemite это ярлык для команды "Перейти вверх" в Finder (например, она всегда переходит в папку на один уровень выше той, в которой вы находитесь). Если вам не нравится команда "Перейти вверх" и вы хотите перейти в предыдущую папку - определите свой собственный ярлык в соответствии с ответом "babraz", затем вставьте соответствующую комбинацию клавиш вместо
CURSOR_UP, VK_COMMAND
код выше
- Примечание: в моем OS X Yosemite это ярлык для команды "Перейти вверх" в Finder (например, она всегда переходит в папку на один уровень выше той, в которой вы находитесь). Если вам не нравится команда "Перейти вверх" и вы хотите перейти в предыдущую папку - определите свой собственный ярлык в соответствии с ответом "babraz", затем вставьте соответствующую комбинацию клавиш вместо
- Ограничивает эту команду только Finder
- Ограничивает эту команду только нетекстовыми полями
- Назначает ⌥ Opt + ↑ для клавиши Backspace.
- Откройте Karabiner и нажмите кнопку "ReloadXML" (см. Ссылку в 2. для получения подробной информации о том, как добавить собственный файл private.xml).
- Выберите команду "Backspace в Finder движется вверх"
- Наслаждаться:)
Вы можете нажать CMD-[ (как показано в меню "Go"). Использование обычного способа оттуда (Настройки клавиатуры -> Сочетания клавиш и назначение нового сочетания клавиш для записи "Назад") не работает, так как поле "Сочетание клавиш" не принимает символ возврата. Но вы можете:
- Перейдите в Системные настройки, Клавиатура, Сочетания клавиш
- Создайте новую комбинацию клавиш для Finder с заголовком меню "Назад"
- Используйте любое произвольное сочетание клавиш
Затем отредактируйте файл $HOME/Library/Preferences/com.apple.finder.plist
и измените сочетание клавиш на "⌫", например, используя XCode:
Теперь, если вы перезапустите Finder (используя killall Finder
или диалоговое окно принудительного выхода из приложений) вы сможете использовать ярлык:
Однако, как отмечено в комментариях, клавиша возврата, вероятно, не используется в диалоговом окне клавиатуры по той или иной причине, поскольку ее использование в качестве ярлыка вызовет действие, когда у вас есть курсор в поле редактирования, где вы хотите клавишу возврата. удалить персонажей.
Хотя ответ с наибольшим количеством голосов с «uielementrole_not» в свое время был идеальным, он не работает в последних версиях Karabiner, поскольку опция uielementrole_not недоступна.
Отсутствие возможности добавить это конкретное состояние имело очень серьезные побочные эффекты, подобные тем, которые указаны в оригинальном плакате, и другим.
Что ж, я нашел способ избежать этого в новых версиях, используя переменные Карабинера. Идея заключается в том, чтобы определить, когда вы находитесь в режиме редактирования. Это далеко не идеально (см. примечания внизу), но это намного лучше, чем ничего.
Вот список нажатий клавиш и то, как они должны работать:
- F2 ----> Переименовать файл
- Ввод -> Открыть файл
- Backspace -> Верхняя папка
Вот что я делаю:
- Когда кто-то нажимает F2 в Finder, я заменяю его на Enter (клавиша по умолчанию для «переименования») и устанавливаю для переменной «onedit» значение 1.
- Когда кто-то нажимает Enter или Esc в Finder, если onedit=1, я сохраняю тот же код ключа и устанавливаю onedit равным 0.
- Когда кто-то нажимает Enter и onedit=0, я отправляю нажатия клавиш «открыть».
- Когда кто-то нажимает Backspace и onedit=0, я отправляю нажатия клавиш «папка вверх».
- Когда кто-то нажимает клавишу Backspace и onedit=1, я сохраняю клавишу Backspace.
Вот все правила для выполнения этого:
{
"description": "Use F2 as Rename and enter edit mode",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com.apple.finder"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "f2"
},
"to": [
{"key_code": "return_or_enter"},
{"set_variable":
{
"name": "onedit",
"value": 1
}
}
],
"type": "basic"
}
]
}
,
{
"description": "Use Backspace as Go to Previous Folder in Finder if not editing",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com.apple.finder"
],
"type": "frontmost_application_if"
}
,
{
"type": "variable_unless",
"name": "onedit",
"value": 1
}
],
"from": {
"key_code": "delete_or_backspace"
},
"to": [
{
"key_code": "open_bracket",
"modifiers": [
"left_command",
"left_option"
]
}
],
"type": "basic"
}
]
},
{
"description": "Use Return as Open if not renaming file",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com.apple.finder"
],
"type": "frontmost_application_if"
}
,
{
"type": "variable_unless",
"name": "onedit",
"value": 1
}
],
"from": {
"key_code": "return_or_enter",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "o",
"modifiers": [
"right_command"
]
}
],
"type": "basic"
}
]
},
{
"description": "Use Return to finish renaming when onedit=1",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com.apple.finder"
],
"type": "frontmost_application_if"
},
{
"name": "onedit",
"type": "variable_if",
"value": 1
}
],
"from": {
"key_code": "return_or_enter",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{"key_code": "return_or_enter"},
{"set_variable":
{
"name": "onedit",
"value": 0
}
}
],
"type": "basic"
}
]
},
{
"description": "Use Esc to finish renaming when onedit=1",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com.apple.finder"
],
"type": "frontmost_application_if"
},
{
"name": "onedit",
"type": "variable_if",
"value": 1
}
],
"from": {
"key_code": "escape",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{"key_code": "escape"},
{"set_variable":
{
"name": "onedit",
"value": 0
}
}
],
"type": "basic"
}
]
}
Примечания:
- Любое нажатие F2 в Finder приведет к тому, что Карабинер перейдет в режим переименования, поэтому, если вы нажмете F2 на чем-либо, кроме файла, клавиша Backspace и другие ярлыки, подобные Windows, перестанут работать, пока вы не нажмете Esc или Enter.
- Убедитесь, что у вас нет других правил для F2, Enter, Backspace, поскольку они могут сработать раньше этих правил и все испортить.