commit - 63fe4ed00638fdb4e44feeb16c33bb9b6263d7ed
commit + d244a6559b664474533c734bb3494bb802f3786f
blob - 0fc49eb5c21f32a52551a168d27dd6c81e93a2cd
blob + f8155b46f303d0a2e54e6cef7182335800008725
--- fm.1
+++ fm.1
Spawn a shell
.It v
View file with a pager.
+.It e
+Edit file with an editor.
.It q
Quit
.Nm .
blob - d4d03e8f16cedffd10d9404047118384e0be364e
blob + 5713113a00b60eaaffc9d119ae286f6c3831ae46
--- fm.c
+++ fm.c
#define FM_PAGER "/usr/bin/less"
#endif
+#ifndef FM_ED
+#define FM_ED "/bin/ed"
+#endif
+
#include "config.h"
struct option opts[] = {
if ((pager = getenv("PAGER")) == NULL)
pager = FM_PAGER;
spawn(pager, ENAME(ESEL), NULL);
+}
+
+static void
+cmd_edit(void)
+{
+ const char *editor;
+
+ if (!fm.nfiles || S_ISDIR(EMODE(ESEL)))
+ return;
+
+ if ((editor = getenv("VISUAL")) == NULL ||
+ (editor = getenv("EDITOR")) == NULL)
+ editor = FM_ED;
+
+ spawn(editor, ENAME(ESEL), NULL);
}
static void
{'Y', 0, cmd_copy_path, X_UPDV},
{'^', 0, cmd_cd_up, X_UPDV},
{'b', 0, cmd_cd_up, X_UPDV},
+ {'e', 0, cmd_edit, X_UPDV},
{'f', 0, cmd_cd_down, X_UPDV},
{'g', 0, cmd_jump_top, X_UPDV},
{'g', K_CTRL, NULL, X_UPDV},