dotfiles/dot_config/broot/verbs.hjson

162 lines
4.7 KiB
Plaintext
Raw Normal View History

2024-12-25 07:45:16 +01:00
###############################################################
# This file contains the verb definitions for broot
#
# Some verbs here are examples and not enabled by default: you
# need to uncomment them if you want to use them.
#
# Documentation at https://dystroy.org/broot/verbs/
###############################################################
verbs: [
# You should customize this standard opening of text files.
# If you edit text files in your terminal (vi, emacs, helix, eg.), then
# you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'.
#
# If $EDITOR isn't set on your computer, you should either set it using
# something similar to
# export EDITOR=/usr/local/bin/nvim
# or just replace it with your editor of choice in the 'execution'
# pattern.
# If your editor is able to open a file on a specific line, use {line}
# so that you may jump directly at the right line from a preview or
# a content search.
# Examples depending on your favourite editor:
# execution: "nvim +{line} {file}"
# execution: "helix {file}:{line}"
{
invocation: edit
shortcut: e
key: ctrl-e
apply_to: text_file
execution: "$EDITOR {file}"
leave_broot: false
}
# Example 1: launching `tail -n` on the selected file (leaving broot)
# {
# name: tail_lines
# invocation: tl {lines_count}
# execution: "tail -f -n {lines_count} {file}"
# }
# Example 2: creating a new file without leaving broot
# {
# name: touch
# invocation: touch {new_file}
# execution: "touch {directory}/{new_file}"
# leave_broot: false
# }
# A convenient shortcut to create new text files in
# the current directory or below
{
invocation: create {subpath}
execution: "$EDITOR {directory}/{subpath}"
leave_broot: false
}
{
invocation: git_diff
shortcut: gd
leave_broot: false
execution: "git difftool -y {file}"
}
# On ctrl-b, propose the creation of a copy of the selection.
# While this might occasionally be useful, this verb is mostly here
# as an example to demonstrate rare standard groups like {file-stem}
# and {file-dot-extension} and the auto_exec verb property which
# allows verbs to stay unexecuted until you hit enter
{
invocation: "backup {version}"
key: ctrl-b
leave_broot: false
auto_exec: false
execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}"
}
# By default, `rm` does the system rm, and completely removes
# the file. If you prefer to have the file moved to the system
# trash, you may use the ':trash' internal with the verb below:
# {
# invocation: "rm"
# internal: "trash"
# leave_broot: false
# }
# This verb lets you launch a terminal on ctrl-T
# (on exit you'll be back in broot)
{
invocation: terminal
key: ctrl-t
execution: "$SHELL"
set_working_dir: true
leave_broot: false
}
# Here's an example of a verb needing the shell capabilities.
# It copies all children of the currently selected directory
# to a destination you type.
# It uses a star, which needs the shell for expansion. That's
# why such verb must have the `from_shell: true` parameter.
# {
# invocation: "cpa {dest}"
# external: "cp -r {directory}/* {dest}"
# from_shell: true
# }
# Here's an example of a shortcut bringing you to your home directory
# {
# invocation: home
# key: ctrl-home
# execution: ":focus ~"
# }
# Here's going to the work-dir root of the current git repository
# {
# invocation: gtr
# execution: ":focus {git-root}"
# }
# A popular set of shortcuts for going up and down:
#
# {
# key: ctrl-k
# execution: ":line_up"
# }
# {
# key: ctrl-j
# execution: ":line_down"
# }
# {
# key: ctrl-u
# execution: ":page_up"
# }
# {
# key: ctrl-d
# execution: ":page_down"
# }
# If you develop using git, you might like to often switch
# to the git status filter:
# {
# key: alt-g
# execution: ":toggle_git_status"
# }
# You can reproduce the bindings of Norton Commander
# on copying or moving to the other panel:
# {
# key: F5
# external: "cp -r {file} {other-panel-directory}"
# leave_broot: false
# }
# {
# key: F6
# external: "mv {file} {other-panel-directory}"
# leave_broot: false
# }
]