src/nnn.c | 18 ++++++++++++------ diff --git a/src/nnn.c b/src/nnn.c index f59a453b47a4fbbf1a80d456b4ac86723bfca7db..f2cb9c9807b51559a33d8c1f3fed9884d04f08da 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -2650,6 +2650,18 @@ setdirwatch(); goto begin; case S_IFREG: { + /* If opened as vim plugin and Enter/^M pressed, pick */ + if (cfg.picker && sel == SEL_GOIN) { + r = mkpath(path, dents[cur].name, newpath, PATH_MAX); + /* NOTE: This overrides any previous selection */ + copybufpos = 0; + appendfpath(newpath, r); + writecp(newpath, r - 1); + + dentfree(dents); + return; + } + /* If open file is disabled on right arrow or `l`, return */ if (cfg.nonavopen && sel == SEL_NAV_IN) continue; @@ -3424,12 +3436,6 @@ } ++iter; } - } - - if (cfg.picker && copybufpos == 0 && ndents) { - r = mkpath(path, dents[cur].name, newpath, PATH_MAX); - appendfpath(newpath, r); - writecp(newpath, r - 1); } dentfree(dents);