使用 Backspace 键返回 Finder 中的上一个文件夹

使用 Backspace 键返回 Finder 中的上一个文件夹

有没有办法修改 OSX,使其行为更像 Windows 7。具体来说,我真的希望能够按 BACKSPACE 键并让 Finder 显示上一个文件夹...就像 Windows 和 Firefox 一样。

我希望这很清楚。

答案1

虽然巴巴兹是一个不错的选择,实际上有一个完美的选择:),它消除了不允许您在 Finder 中的文本字段中使用 Backspace 的限制(例如,重命名文件或在搜索字段中键入时)。

  1. 安装一个很棒的登山扣应用程序它允许你将几乎任何你不喜欢的东西重新映射到你喜欢的东西上
  2. 查找并编辑私有文件按照链接中的说明创建文件(并阅读如何更新 Karabiner 以在进入第 4 步时将 private.xml 包含在主列表中)
  3. 插入以下代码并保存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>

    这将执行以下操作:

    • 分配⌥ 选择 + ↑退格键。
      • 注意:在我的 OS X Yosemite 中,它是 Finder 中“Go Up”命令的快捷方式(例如,它总是转到您所在文件夹的上一级文件夹)。如果您不喜欢“Go Up”命令并希望转到上一个文件夹 - 请按照 babraz 的回答定义您自己的快捷方式,然后粘贴相应的组合键而不是CURSOR_UP, VK_COMMAND上面的代码
    • 将此命令限制为仅适用于 Finder
    • 将此命令限制为仅限非文本字段
  4. 打开 Karabiner 并点击“ReloadXML”按钮(有关如何添加自定义 private.xml 的详细信息,请参阅 2 中的链接)
  5. 选择“Finder 中的退格键向上移动”命令
  6. 享受 :)

答案2

您可以按 CMD-[(如“前往”菜单中所示)。使用常规方法(键盘首选项 -> 键盘快捷键并为“返回”条目分配新的快捷键)不起作用,因为“键盘快捷键”字段不接受退格符。但您可以:

  • 转到系统偏好设置、键盘、键盘快捷键
  • 为 Finder 创建一个新的键盘快捷键,菜单标题为“返回” 在此处输入图片描述
  • 使用任意键盘快捷键

然后编辑文件$HOME/Library/Preferences/com.apple.finder.plist并将键盘快捷键更改为“⌫”,例如使用 XCode:

在此处输入图片描述

现在,如果您重新启动 Finder(使用killall Finder或强制退出应用程序对话框),您将能够使用快捷方式:

在此处输入图片描述

但是,正如评论中指出的那样,退格键可能由于某种原因在键盘对话框中无法使用,因为当您将光标放在编辑框中时,使用它作为快捷方式会触发操作,而您希望使用退格键删除字符。

答案3

尽管获得最多投票的答案“uielementrole_not”在当时是完美的,但它在最新版本的 Karabiner 中不起作用,因为 uielementrole_not 不是一个可用的选项。

无法添加该特定条件会产生非常严重的副作用,就像原始海报和其他人所说的那样。

好吧,我在新版本中找到了避免这种情况的方法,即使用 Karabiner 变量。这个想法是检测您何时处于编辑模式。它远非完美(请参阅底部的注释),但总比没有好。

这是按键列表以及它们的工作方式:

  • F2 ----> 重命名文件
  • 输入 -> 打开文件
  • 退格键 --> 上一个文件夹

这是我的做法:

  • 当有人在 Finder 上按下 F2 键时,我会用 Enter 键(“重命名”的默认键)替换它,并将“onedit”变量设置为 1
  • 当有人在 Finder 上按下 Enter 或 Esc 键时,如果 onedit=1 那么我会保留相同的键码并将 onedit 设置为 0。
  • 当有人按下 Enter 键并且 onedit=0 时,我会发送“打开”的按键
  • 当有人按下退格键和 onedit=0 时,我会发送“文件夹向上”的按键
  • 当有人按下退格键并且 onedit=1 时,我会保留退格键

这些是执行该操作的所有规则:

{
    "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"
        }
    ]
}

笔记:

  • 在 Finder 上按下任何 F2 键都会使 Karabiner 进入重命名模式,因此如果您在任何非文件上按下 F2 键,退格键和其他类似 Windows 的快捷方式将停止工作,直到您按下 Esc 或 Enter 键。
  • 确保您没有针对 F2、Enter、Backspace 的任何其他规则,因为它们可能会在此规则之前触发并搞乱一切。

相关内容