使 Backspace 键转到 Finder 中的上一个文件夹

Dja*_*rdt 11 finder macos

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

我希望这很清楚。

bar*_*baz 8

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

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

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

在此处输入图片说明

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

在此处输入图片说明

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

  • 或者`defaults write com.apple.finder NSUserKeyEquivalents -dict-add "Back" "\U232B"; killall Finder`。不过,这不是一个实用的解决方案,它覆盖了文本字段中 ⌫ (`deleteBackward:`) 的功能。 (2认同)

Evg*_*eny 6

虽然barbaz提供的解决方案是一个不错的解决方案,但实际上有一个完美的解决方案:),它消除了不允许您在 Finder 的文本字段中使用退格键的限制(例如,在重命名文件或在搜索字段中键入时) )。

  1. 安装一个很棒的Karabiner 应用程序,它允许您将几乎任何您不喜欢的东西重新映射到您喜欢的任何东西
  2. 根据链接中的说明查找和编辑private.xml文件(并阅读如何更新 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”命令并想转到上一个文件夹 - 根据 babraz 的答案定义您自己的快捷方式,然后粘贴相应的组合键而不是CURSOR_UP, VK_COMMAND上面的代码
    • 将此命令限制为仅 Finder
    • 将此命令仅限于非文本字段
  4. 打开 Karabiner 并单击“ReloadXML”按钮(有关如何添加自定义 private.xml 的详细信息,请参见 2. 中的链接)
  5. 选择“Finder 中的退格键向上移动”命令
  6. 享受 :)


小智 5

尽管投票最多的答案“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"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

笔记:

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