- SSHFS mounts (needs sshfs)
- Cross-directory file selection, all/range selection
- Batch rename selection or dir entries
- - Copy, move, delete, archive, link selection
+ - Copy (as), move (as), delete, archive, link selection
- Create, rename, duplicate files and directories
- Spawn a shell, run apps, run commands, execute file
- Lock terminal (needs a locker)
NAVIGATION
↑ k Up PgUp ^U Scroll up
↓ j Down PgDn ^D Scroll down
- ← h Parent dir ~ ` @ - HOME, /, start, last
- ↵ → l Open file/dir . Toggle show hidden
+ ← h Parent ~ ` @ - HOME, /, start, last
+ ↵ → l Open . Toggle show hidden
g ^A First entry G ^E Last entry
b Pin current dir ^B Go to pinned dir
(Sh)Tab Cycle context d Toggle detail view
a Select all K Edit selection
P Copy selection w Copy selection as
V Move selection W Move selection as
- X Delete selection ^X Delete entry
+ X Del selection ^X Del entry
f Create archive T Mount archive
^F Extract archive F List archive
e Edit in EDITOR p Open in PAGER
writesel(NULL, 0);
}
-static bool seledit(void)
+static bool editselection(void)
{
bool ret = FALSE;
int fd, lines = 0;
lines = lines_in_file(fd, buf, sizeof(buf));
DPRINTF_U(count);
DPRINTF_U(lines);
- if (!lines)
- goto finish;
-
- if (2 * count != lines) {
- DPRINTF_S("cannot delete files");
+ if (!lines || (2 * count != lines)) {
+ DPRINTF_S("num mismatch");
goto finish;
}
lines = lines_in_file(fd2, buf, sizeof(buf));
DPRINTF_U(count);
DPRINTF_U(lines);
- if (!lines)
- goto finish;
-
- if (count != lines) {
+ if (!lines || (count != lines)) {
DPRINTF_S("cannot delete files");
goto finish;
}
"1NAVIGATION\n"
"a↑ k Up PgUp ^U Scroll up\n"
"a↓ j Down PgDn ^D Scroll down\n"
- "a← h Parent dir ~ ` @ - HOME, /, start, last\n"
- "8↵ → l Open file/dir . Toggle show hidden\n"
+ "a← h Parent ~ ` @ - HOME, /, start, last\n"
+ "8↵ → l Open . Toggle show hidden\n"
"9g ^A First entry G ^E Last entry\n"
"cb Pin current dir ^B Go to pinned dir\n"
"6(Sh)Tab Cycle context d Toggle detail view\n"
"9⎵ ^J Select entry r Batch rename\n"
"9m ^K Sel range, clear M List selection\n"
"ca Select all K Edit selection\n"
- "cP Copy selection w Copy selection as\n"
- "cV Move selection W Move selection as\n"
- "cX Delete selection ^X Delete entry\n"
+ "cP Copy selection w Copy selection as\n"
+ "cV Move selection W Move selection as\n"
+ "cX Del selection ^X Del entry\n"
"cf Create archive T Mount archive\n"
"b^F Extract archive F List archive\n"
"ce Edit in EDITOR p Open in PAGER\n"
printwait(messages[NONE_SELECTED], &presel);
goto nochange;
case SEL_SELEDIT:
- if (!seledit()){
+ if (!editselection()){
printwait(messages[OPERATION_FAILED], &presel);
goto nochange;
}