From 50ebd6b2283f3cdf690c6320235ca0d9abd04b33 Mon Sep 17 00:00:00 2001 From: Corwin Marsh Date: Sat, 11 Oct 2025 20:00:47 -0700 Subject: [PATCH] feat: Add config to disable '_' keybind --- package.json | 7 ++++++- src/utils/settings.ts | 5 +++++ src/vim/oil.code.lua | 7 ++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fa240b6..3eaba1d 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ { "command": "oil-code.openCwd", "key": "shift+-", - "when": "editorTextFocus && editorLangId == oil && vim.mode == 'Normal'" + "when": "editorTextFocus && editorLangId == oil && vim.mode == 'Normal' && !config.oil-code.disableUnderscoreOpenCwd" }, { "command": "oil-code.preview", @@ -146,6 +146,11 @@ "default": false, "description": "Disable all Vim keymaps for oil.code. Default is false. Set this to true if you want to set your own keymaps. Reload after changing this setting." }, + "oil-code.disableUnderscoreOpenCwd": { + "type": "boolean", + "default": false, + "description": "Disable the '_' (underscore) keybind for opening the current working directory in oil buffers. When disabled, '_' will behave as normal Vim motion (first non-blank character of line). Default is false. Reload after changing this setting." + }, "oil-code.disableOpenCwdNothingOpen": { "type": "boolean", "default": false, diff --git a/src/utils/settings.ts b/src/utils/settings.ts index d9d4e75..17edb07 100644 --- a/src/utils/settings.ts +++ b/src/utils/settings.ts @@ -10,6 +10,11 @@ export function getDisableOpenCwdNothingOpenSetting(): boolean { return config.get("disableOpenCwdNothingOpen") || false; } +export function getdisableUnderscoreOpenCwdSetting(): boolean { + const config = vscode.workspace.getConfiguration("oil-code"); + return config.get("disableUnderscoreOpenCwd") || false; +} + export function getEnableWorkspaceEditSetting(): boolean { const config = vscode.workspace.getConfiguration("oil-code"); return config.get("enableWorkspaceEdit") || false; diff --git a/src/vim/oil.code.lua b/src/vim/oil.code.lua index 0d4f5ea..18b2ea8 100644 --- a/src/vim/oil.code.lua +++ b/src/vim/oil.code.lua @@ -12,7 +12,12 @@ vim.api.nvim_create_autocmd({'FileType'}, { pattern = {"oil"}, callback = function() map("n", "-", function() vscode.action('oil-code.openParent') end) - map("n", "_", function() vscode.action('oil-code.openCwd') end) + + local disableUnderscoreOpenCwd = vscode.get_config('oil-code.disableUnderscoreOpenCwd') + if not disableUnderscoreOpenCwd then + map("n", "_", function() vscode.action('oil-code.openCwd') end) + end + map("n", "", function() vscode.action('oil-code.select') end) map("n", "", function() vscode.action('oil-code.selectTab') end) map("n", "", function() vscode.action('oil-code.refresh') end)