diff --git a/README.md b/README.md index 4135873..53eb926 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,9 @@ keymap("x", "x", genghis.moveSelectionToNewFile) and moves the current selection to that new file. (Note that this is a Visual Line Mode command; the selection is moved linewise.) - `.renameFile` or `:Rename`: Rename the current file. -- `.moveAndRenameFile` or `:Move`: Move and Rename the current file. Works like -the UNIX `mv` command. Best used with [autocompletion of -directories](#autocompletion-of-directories). +- `.moveAndRenameFile` or `:Move`: Move and Rename the current file. Keep the +old name if the new path ends with `/`. Works like the UNIX `mv` command. Best +used with [autocompletion of directories](#autocompletion-of-directories). The following applies to all commands above: - If no extension has been provided, uses the extension of the original file. diff --git a/lua/genghis.lua b/lua/genghis.lua index 20350b4..376158b 100644 --- a/lua/genghis.lua +++ b/lua/genghis.lua @@ -130,9 +130,12 @@ local function fileOp(op) -- VALIDATION OF FILENAME if not newName then return end -- input has been canceled + if newName:find("/$") then + newName = newName .. oldName -- use the new directory with the old name + end + local invalidName = newName:find("^%s+$") or newName:find("[\\:]") - or newName:find("/$") or (newName:find("^/") and not op == "move-rename") local sameName = newName == oldName local emptyInput = newName == ""