From 4a3197f2ad7ef54047264c08f77c8b4f26cac4ed Mon Sep 17 00:00:00 2001 From: Nathan Zeng Date: Tue, 11 Aug 2026 01:08:33 -0700 Subject: [PATCH] refactor(defaults): edit global cwd on "1-" #41254 Problem: `1-` does nothing from a directory buffer, because we are already in the buffer-local CWD. It's also unintuitive that this mapping behaves differently based on the resolved CWD. Solution: Have `1-` open the global CWD. --- runtime/doc/plugins.txt | 2 +- runtime/plugin/dir.lua | 3 ++- test/functional/plugin/dir_spec.lua | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/runtime/doc/plugins.txt b/runtime/doc/plugins.txt index 054b71e8d3..c40705cd07 100644 --- a/runtime/doc/plugins.txt +++ b/runtime/doc/plugins.txt @@ -64,7 +64,7 @@ To disable the built-in directory browser, set this before startup: >lua GLOBAL MAPPINGS *dir-mappings* • - opens the parent directory of the current file or directory. -• {count}- is like -, but a count of 1 opens the current working directory, +• {count}- is like -, but a count of 1 opens the global working directory, and a higher count goes up that many levels. BUFFER-LOCAL MAPPINGS *dir-buffer-mappings* diff --git a/runtime/plugin/dir.lua b/runtime/plugin/dir.lua index 37ce560398..53f7fcff17 100644 --- a/runtime/plugin/dir.lua +++ b/runtime/plugin/dir.lua @@ -12,9 +12,10 @@ end, { silent = true, desc = 'Open directory entry' }) vim.keymap.set('n', '(nvim-dir-up)', function() if vim.v.count == 1 then + -- Edits global CWD api.nvim_cmd({ cmd = 'edit', - args = { '.' }, + args = { vim.fn.getcwd(-1, -1, -1) }, mods = { keepalt = vim.b.nvim_dir ~= nil }, magic = { file = false, bar = false }, }, {}) diff --git a/test/functional/plugin/dir_spec.lua b/test/functional/plugin/dir_spec.lua index bf2787ce78..e7028bb914 100644 --- a/test/functional/plugin/dir_spec.lua +++ b/test/functional/plugin/dir_spec.lua @@ -433,6 +433,13 @@ describe('nvim.dir', function() assert_directory(cwd) + edit(file) + feed('-') + poke_eventloop() + feed('1-') + poke_eventloop() + assert_directory(cwd) + edit(file) feed('2-') poke_eventloop()