commit 63fe4ed00638fdb4e44feeb16c33bb9b6263d7ed from: Omar Polo date: Mon Dec 13 12:57:44 2021 UTC bind v to cmd_view commit - e03d121935fa33b6f6b81bc71cdf9e27aa8f9c22 commit + 63fe4ed00638fdb4e44feeb16c33bb9b6263d7ed blob - dddd04b2e566fe3f0e11435b41a61e393b89aeb2 blob + 0fc49eb5c21f32a52551a168d27dd6c81e93a2cd --- fm.1 +++ fm.1 @@ -96,6 +96,8 @@ Paste path Refresh and redraw screen. .It ^M Spawn a shell +.It v +View file with a pager. .It q Quit .Nm . blob - 48d3e05d6ca1293c889cbac15fcf6f1efc96e0d7 blob + d4d03e8f16cedffd10d9404047118384e0be364e --- fm.c +++ fm.c @@ -29,6 +29,10 @@ #ifndef FM_SHELL #define FM_SHELL "/bin/sh" +#endif + +#ifndef FM_PAGER +#define FM_PAGER "/usr/bin/less" #endif #include "config.h" @@ -1335,6 +1339,19 @@ cmd_shell(void) if ((shell = getenv("SHELL")) == NULL) shell = FM_SHELL; spawn(shell, NULL); +} + +static void +cmd_view(void) +{ + const char *pager; + + if (!fm.nfiles || S_ISDIR(EMODE(ESEL))) + return; + + if ((pager = getenv("PAGER")) == NULL) + pager = FM_PAGER; + spawn(pager, ENAME(ESEL), NULL); } static void @@ -1377,6 +1394,7 @@ loop(void) {'p', 0, cmd_up, X_UPDV}, {'p', K_CTRL, cmd_up, X_UPDV}, {'q', 0, NULL, X_QUIT}, + {'v', 0, cmd_view, X_UPDV}, {'v', K_META, cmd_scroll_up, X_UPDV}, {KEY_DOWN, 0, cmd_scroll_down, X_UPDV}, {KEY_NPAGE, 0, cmd_scroll_down, X_UPDV},