aboutsummaryrefslogtreecommitdiff
path: root/config.def.h
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2019-05-31 17:44:18 -0700
committerBruce Hill <bruce@bruce-hill.com>2019-05-31 17:44:18 -0700
commit05601c886baf39740b8a487ac9e78f656f12acd3 (patch)
treebb43d2e8941dac060edcb1113b42212a2c2c2ccc /config.def.h
parent7fd3e166ee1c12bdbc333c6c745d6b82a5e8d938 (diff)
Added "<selection>" virtual directory, added '-' mark for "last
non-virtual directory" and 's' for "selection virtual directory", cleaned up path normalization, added "N selected" visualization.
Diffstat (limited to 'config.def.h')
-rw-r--r--config.def.h91
1 files changed, 46 insertions, 45 deletions
diff --git a/config.def.h b/config.def.h
index fcf0838..6a26999 100644
--- a/config.def.h
+++ b/config.def.h
@@ -99,7 +99,7 @@ const char *startupcmds[] = {
//////////////////////////////////////////////
// Set some default marks:
"+mark:0", "+mark:~=~", "+mark:h=~", "+mark:/=/", "+mark:c=~/.config",
- "+mark:l=~/.local",
+ "+mark:l=~/.local", "+mark:s=<selection>",
// Default column and sorting options:
"+sort:+n", "+col:*smpn", "+..",
NULL, // NULL-terminated array
@@ -122,20 +122,19 @@ const int colwidths[128] = {
#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
#endif
extern binding_t bindings[];
+#define EM(s) "\033[33;4m" s "\033[0;34m"
binding_t bindings[] = {
//////////////////////////////////////////////////////////////////////////
// User-defined custom scripts can go here
// Please note that these are sh scripts, not bash scripts, so bash-isms
// won't work unless you make your script use `bash -c "<your script>"`
//////////////////////////////////////////////////////////////////////////
- {{'?', KEY_F1}, "bb -b | $PAGER -r", "Show the help menu", NORMAL_TERM},
- {{'q', 'Q'}, "+quit", "Quit"},
- {{'k', KEY_ARROW_UP}, "+move:-1", "Move up"},
- {{'j', KEY_ARROW_DOWN}, "+move:+1", "Move down"},
- {{'h', KEY_ARROW_LEFT}, "+cd:..", "Go up a folder"},
- {{'l', KEY_ARROW_RIGHT}, "test -d \"$BBCURSOR\" && bb \"+cd:$BBCURSOR\"", "Enter a folder"},
- {{' ','v','V'}, "+toggle", "Toggle selection"},
- {{'e'}, "$EDITOR \"$@\"", "Edit file in $EDITOR", NORMAL_TERM},
+ {{'?', KEY_F1}, "bb -b | $PAGER -r", EM("Help")" menu", NORMAL_TERM},
+ {{'q', 'Q'}, "+quit", EM("Quit")},
+ {{'j', KEY_ARROW_DOWN}, "+move:+1", EM("Next")" file"},
+ {{'k', KEY_ARROW_UP}, "+move:-1", EM("Previous")" file"},
+ {{'h', KEY_ARROW_LEFT}, "+cd:..", EM("Parent")" directory"},
+ {{'l', KEY_ARROW_RIGHT}, "test -d \"$BBCURSOR\" && bb \"+cd:$BBCURSOR\"", EM("Enter")" a directory"},
{{'\r', KEY_MOUSE_DOUBLE_LEFT},
#ifdef __APPLE__
QUOTE(
@@ -151,24 +150,27 @@ elif file -bi "$BBCURSOR" | grep '^\(text/\|inode/empty\)' >/dev/null; then $EDI
else xdg-open "$BBCURSOR"; fi
)/*ENDQUOTE*/,
#endif
- "Open file", NORMAL_TERM},
- {{'f'}, "bb \"+g:`fzf`\"", "Fuzzy search for file", NORMAL_TERM},
- {{'/'}, "bb \"+g:`ls -a|fzf`\"", "Fuzzy select file", NORMAL_TERM},
- {{'L'}, PIPE_SELECTION_TO "$PAGER", "List all selected files", NORMAL_TERM},
- {{'d', KEY_DELETE}, "rm -rfi \"$@\"; bb '+d:*' +r", "Delete files", AT_CURSOR},
- {{'D'}, "rm -rf \"$@\"; bb '+d:*' +r", "Delete files without confirmation"},
- {{'M'}, "mv -i \"$@\" .; bb '+d:*' +r", "Move files to current folder"},
- {{'c'}, "cp -i \"$@\" .; bb +r", "Copy files to current folder"},
- {{'C'}, "for f; do cp \"$f\" \"$f.copy\"; done; bb +r", "Clone files"},
- {{'n'}, "name=`bb '?New file: '` && touch \"$name\"; bb +r \"+goto:$name\"", "New file"},
- {{'N'}, "name=`bb '?New dir: '` && mkdir \"$name\"; bb +r \"+goto:$name\"", "New folder"},
+ EM("Open")" file/directory", NORMAL_TERM},
+ {{' ','v','V'}, "+toggle", EM("Toggle")" selection"},
+ {{KEY_ESC}, "+deselect:*", EM("Clear")" selection"},
+ {{'e'}, "$EDITOR \"$@\"", EM("Edit")" file in $EDITOR", NORMAL_TERM},
+ {{KEY_CTRL_F}, "bb \"+g:`fzf`\"", EM("Fuzzy search")" for file", NORMAL_TERM},
+ {{'/'}, "bb \"+g:`ls -a|fzf`\"", EM("Fuzzy select")" file", NORMAL_TERM},
+ {{'d', KEY_DELETE}, "rm -rfi \"$@\"; bb '+de:*' +r", EM("Delete")" files", AT_CURSOR},
+ {{'D'}, "rm -rf \"$@\"; bb '+de:*' +r", EM("Delete")" files (without confirmation)"},
+ {{'M'}, "mv -i \"$@\" .; bb '+de:*' +r; for f; do bb \"+sel:`pwd`/`basename \"$f\"`\"; done",
+ EM("Move")" files to current directory"},
+ {{'c'}, "cp -i \"$@\" .; bb +r", EM("Copy")" files to current directory"},
+ {{'C'}, "bb '+de:*'; for f; do cp \"$f\" \"$f.copy\" && bb \"+sel:$f.copy\"; done; bb +r", EM("Clone")" files"},
+ {{'n'}, "name=`bb '?New file: '` && touch \"$name\"; bb +r \"+goto:$name\"", EM("New file")},
+ {{'N'}, "name=`bb '?New dir: '` && mkdir \"$name\"; bb +r \"+goto:$name\"", EM("New directory")},
{{'|'}, "cmd=`bb '?|'` && " PIPE_SELECTION_TO "sh -c \"$cmd\" && " PAUSE "; bb +r",
- "Pipe selected files to a command"},
+ EM("Pipe")" selected files to a command"},
{{':'}, "$SHELL -c \"`bb '?:'`\" -- \"$@\"; " PAUSE "; bb +refresh",
- "Run a command"},
- {{'>'}, "$SHELL", "Open a shell", NORMAL_TERM},
- {{'m'}, "read -n1 -p 'Mark: ' m && bb \"+mark:$m;$PWD\"", "Set mark"},
- {{'\''}, "read -n1 -p 'Jump: ' j && bb \"+jump:$j\"", "Jump to mark"},
+ EM("Run")" a command"},
+ {{'>'}, "$SHELL", "Open a "EM("shell"), NORMAL_TERM},
+ {{'m'}, "read -n1 -p 'Mark: ' m && bb \"+mark:$m;$PWD\"", "Set "EM("mark")},
+ {{'\''}, "read -n1 -p 'Jump: ' j && bb \"+jump:$j\"", EM("Jump")" to mark"},
{{'r'}, QUOTE(
bb '+deselect:*' +refresh;
@@ -177,7 +179,7 @@ for f; do
test "$f" != "$renamed" && mv -i "$f" "$renamed"; then
test $BBSELECTED && bb "+select:$renamed";
elif test $BBSELECTED; then bb "+select:$f"; fi
-done)/*ENDQUOTE*/, "Rename files", AT_CURSOR},
+done)/*ENDQUOTE*/, EM("Rename")" files", AT_CURSOR},
{{'R'}, QUOTE(
if patt="`bb '?Rename pattern: ' 's/'`"; then true; else bb +r; exit; fi;
@@ -188,32 +190,31 @@ for f; do
if test "$f" != "$renamed" && mv -i "$f" "$renamed"; then
test $BBSELECTED && bb "+select:$renamed";
elif test $BBSELECTED; then bb "+select:$f"; fi
-done)/*ENDQUOTE*/, "Regex rename files", AT_CURSOR},
+done)/*ENDQUOTE*/, EM("Regex rename")" files", AT_CURSOR},
// TODO debug:
{{'P'}, "patt=`bb '?Select pattern: '` && "
"for f; do echo \"$f\" | grep \"$patt\" >/dev/null 2>/dev/null && bb \"+sel:$f\"; done",
- "Regex select files"},
- {{'J'}, "+spread:+1", "Spread selection down"},
- {{'K'}, "+spread:-1", "Spread selection up"},
- {{'b'}, "bb \"+`bb '?bb +'`\"", "Run a bb command"},
+ EM("Regex select")" files"},
+ {{'J'}, "+spread:+1", EM("Spread")" selection down"},
+ {{'K'}, "+spread:-1", EM("Spread")" selection up"},
+ {{'b'}, "bb \"+`bb '?bb +'`\"", "Run a "EM("bb command")},
{{'s'}, "read -n1 -p 'Sort \033[1m(a)\033[22mlphabetic "
"\033[1m(s)\033[22mize \033[1m(m)\033[22modification \033[1m(c)\033[22mcreation "
"\033[1m(a)\033[22maccess \033[1m(r)\033[22mandom \033[1m(p)\033[22mermissions:\033[0m ' sort "
- "&& bb \"+sort:+$sort\"", "Sort by..."},
- {{'#'}, "bb \"+col:`bb '?Set columns: '`\"", "Set columns"},
- {{'.'}, "bb +dotfiles", "Toggle dotfiles"},
- {{'g', KEY_HOME}, "+move:0", "Go to first file"},
- {{'G', KEY_END}, "+move:100%n", "Go to last file"},
- {{KEY_ESC}, "+deselect:*", "Clear selection"},
- {{KEY_F5, KEY_CTRL_R}, "+refresh", "Refresh"},
- {{KEY_CTRL_A}, "+select:*", "Select all files in current folder"},
- {{KEY_PGDN}, "+scroll:+100%", "Page down"},
- {{KEY_PGUP}, "+scroll:-100%", "Page up"},
- {{KEY_CTRL_D}, "+scroll:+50%", "Half page down"},
- {{KEY_CTRL_U}, "+scroll:-50%", "Half page up"},
- {{KEY_MOUSE_WHEEL_DOWN}, "+scroll:+3", "Scroll down"},
- {{KEY_MOUSE_WHEEL_UP}, "+scroll:-3", "Scroll up"},
+ "&& bb \"+sort:+$sort\"", EM("Sort")" by..."},
+ {{'#'}, "bb \"+col:`bb '?Set columns: '`\"", "Set "EM("columns")},
+ {{'.'}, "bb +dotfiles", "Toggle "EM("dotfiles")},
+ {{'g', KEY_HOME}, "+move:0", "Go to "EM("first")" file"},
+ {{'G', KEY_END}, "+move:100%n", "Go to "EM("last")" file"},
+ {{KEY_F5, KEY_CTRL_R}, "+refresh", EM("Refresh")},
+ {{KEY_CTRL_A}, "+select:*", EM("Select all")" files in current directory"},
+ {{KEY_PGDN}, "+scroll:+100%", EM("Page down")},
+ {{KEY_PGUP}, "+scroll:-100%", EM("Page up")},
+ {{KEY_CTRL_D}, "+scroll:+50%", EM("Half page down")},
+ {{KEY_CTRL_U}, "+scroll:-50%", EM("Half page up")},
+ {{KEY_MOUSE_WHEEL_DOWN}, "+scroll:+3", EM("Scroll down")},
+ {{KEY_MOUSE_WHEEL_UP}, "+scroll:-3", EM("Scroll up")},
{{0}}, // Array must be 0-terminated
};
#ifdef __APPLE__