commit d244a6559b664474533c734bb3494bb802f3786f from: Omar Polo date: Mon Dec 13 13:00:56 2021 UTC bind e to cmd_edit commit - 63fe4ed00638fdb4e44feeb16c33bb9b6263d7ed commit + d244a6559b664474533c734bb3494bb802f3786f blob - 0fc49eb5c21f32a52551a168d27dd6c81e93a2cd blob + f8155b46f303d0a2e54e6cef7182335800008725 --- fm.1 +++ fm.1 @@ -98,6 +98,8 @@ Refresh and redraw screen. 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 @@ -35,6 +35,10 @@ #define FM_PAGER "/usr/bin/less" #endif +#ifndef FM_ED +#define FM_ED "/bin/ed" +#endif + #include "config.h" struct option opts[] = { @@ -1352,6 +1356,21 @@ cmd_view(void) 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 @@ -1380,6 +1399,7 @@ loop(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},