fzf and broot
This commit is contained in:
parent
e91c2fd4a5
commit
048ee6badd
|
@ -0,0 +1,22 @@
|
|||
MBs Environment
|
||||
===============
|
||||
|
||||
|
||||
|
||||
Contents
|
||||
--------
|
||||
|
||||
- fish shell with ohmyfish plugin manager and bobthefish theme
|
||||
- neovim
|
||||
- bat
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
TODO:
|
||||
- tree
|
||||
- egrep
|
||||
- ultimate plumer
|
||||
|
37
buildenv.sh
37
buildenv.sh
|
@ -1,4 +1,4 @@
|
|||
#/bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
# Folder definitions
|
||||
BASE=$(pwd)
|
||||
|
@ -133,6 +133,41 @@ mkdir -p tmux/plugins
|
|||
git clone https://github.com/tmux-plugins/tpm tmux/plugins/tpm &> /dev/null
|
||||
./tmux/plugins/tpm/bin/install_plugins &> /dev/null
|
||||
|
||||
# -------------------------------------------- tmux ------------------------------------------------------------
|
||||
|
||||
printf "${Blue}--> fzf${Color_Off}\n"
|
||||
|
||||
cd ${MB_ENV_BASE}/bin
|
||||
curl -sL https://github.com/junegunn/fzf/releases/download/0.30.0/fzf-0.30.0-linux_amd64.tar.gz | tar xz
|
||||
curl -sL https://raw.githubusercontent.com/junegunn/fzf/master/bin/fzf-tmux > fzf-tmux
|
||||
curl -sL https://raw.githubusercontent.com/junegunn/fzf/master/shell/key-bindings.fish > ${XDG_CONFIG_HOME}/fish/functions/fzf_key_bindings.fish
|
||||
chmod u+x fzf-tmux
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------- fd ------------------------------------------------------------
|
||||
|
||||
printf "${Blue}--> fd${Color_Off}\n"
|
||||
cd ${INSTALL_TMP_DIR}
|
||||
curl -sL https://github.com/sharkdp/fd/releases/download/v8.4.0/fd-v8.4.0-i686-unknown-linux-gnu.tar.gz | tar xz
|
||||
cd fd-*
|
||||
cp autocomplete/fd.fish $XDG_CONFIG_HOME/fish/completions/fd.fish
|
||||
cp fd* ${MB_ENV_BASE}/bin
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------- broot ------------------------------------------------------------
|
||||
|
||||
printf "${Blue}--> broot${Color_Off}\n"
|
||||
cd ${INSTALL_TMP_DIR}
|
||||
mkdir broot && cd broot
|
||||
curl -sL https://github.com/Canop/broot/releases/download/v1.13.1/broot_1.13.1.zip > broot.zip
|
||||
unzip -q broot.zip
|
||||
cp ./x86_64-unknown-linux-musl/broot ${MB_ENV_BASE}/bin/
|
||||
cp completion/broot.fish $XDG_CONFIG_HOME/fish/completions/broot.fish
|
||||
${MB_ENV_BASE}/bin/broot --print-shell-function fish > $XDG_CONFIG_HOME/fish/functions/br.fish
|
||||
cp -r ${CONFIG_IN}/broot $XDG_CONFIG_HOME
|
||||
|
||||
# ------------------------------------------- configs -----------------------------------------------------------
|
||||
|
||||
cp ${CONFIG_IN}/activate.sh $MB_ENV_BASE # activation script
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
|
||||
|
||||
set runtimepath=~/.mbenv/config/vim
|
||||
|
||||
|
||||
"----------------------------------------------------------------------------------
|
||||
"--------------- DEBIAN CONFIG ------------------------------------------------
|
||||
"----------------------------------------------------------------------------------
|
||||
|
||||
" Normally we use vim-extensions. If you want true vi-compatibility
|
||||
" remove change the following statements
|
||||
set nocompatible " Use Vim defaults instead of 100% vi compatibility
|
||||
set backspace=indent,eol,start " more powerful backspacing
|
||||
|
||||
" Now we set some defaults for the editor
|
||||
set history=50 " keep 50 lines of command line history
|
||||
set ruler " show the cursor position all the time
|
||||
|
||||
" modelines have historically been a source of security/resource
|
||||
" vulnerabilities -- disable by default, even when 'nocompatible' is set
|
||||
set nomodeline
|
||||
|
||||
" Suffixes that get lower priority when doing tab completion for filenames.
|
||||
" These are files we are not likely to want to edit or read.
|
||||
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
|
||||
|
||||
" We know xterm-debian is a color terminal
|
||||
if &term =~ "xterm-debian" || &term =~ "xterm-xfree86"
|
||||
set t_Co=16
|
||||
set t_Sf=^[[3%dm
|
||||
set t_Sb=^[[4%dm
|
||||
endif
|
||||
|
||||
|
||||
"----------------------------------------------------------------------------------
|
||||
"----------------------------------------------------------------------------------
|
||||
"----------------------------------------------------------------------------------
|
||||
|
||||
set showcmd " Show (partial) command in status line.
|
||||
set showmatch " Show matching brackets.
|
||||
set ignorecase " Do case insensitive matching
|
||||
set smartcase " Do smart case matching
|
||||
set incsearch " Incremental search
|
||||
set autowrite " Automatically save before commands like :next and :make
|
||||
set hidden " Hide buffers when they are abandoned
|
||||
|
||||
|
||||
"----------------------------------------------------------------------------------
|
||||
"----------------------------------------------------------------------------------
|
||||
"----------------------------------------------------------------------------------
|
||||
|
||||
inoremap jk <ESC>
|
||||
syntax on
|
||||
set background=dark
|
||||
|
||||
"----------------------------------------------------------------------------------
|
||||
"----------------------------------------------------------------------------------
|
||||
"----------------------------------------------------------------------------------
|
||||
|
||||
call plug#begin()
|
||||
|
||||
" syntax highlighting for many languages
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
call plug#end()
|
|
@ -9,5 +9,10 @@ export TERM=xterm-256color
|
|||
export TERMINFO=${MB_ENV_BASE}/share/terminfo
|
||||
export SHELL=${MB_ENV_BASE}/bin/fish
|
||||
|
||||
export FZF_CTRL_T_COMMAND="fd --type f --color=never --hidden"
|
||||
export FZF_CTRL_T_OPTS="--preview 'bat --color=always --line-range :50 {}'"
|
||||
export FZF_ALT_C_COMMAND="fd --type d . --color=never --hidden"
|
||||
#export FZF_ALT_C_OPTS="--preview 'tree -C {} | head -50'"
|
||||
|
||||
|
||||
${MB_ENV_BASE}/bin/fish.sh
|
||||
|
|
|
@ -0,0 +1,359 @@
|
|||
###############################################################
|
||||
# This configuration file lets you
|
||||
# - define new commands
|
||||
# - change the shortcut or triggering keys of built-in verbs
|
||||
# - change the colors
|
||||
# - set default values for flags
|
||||
# - set special behaviors on specific paths
|
||||
# - and more...
|
||||
#
|
||||
# Configuration documentation is available at
|
||||
# https://dystroy.org/broot
|
||||
#
|
||||
# This file's format is Hjson ( https://hjson.github.io/ ). Some
|
||||
# properties are commented out. To enable them, remove the `#`.
|
||||
#
|
||||
###############################################################
|
||||
{
|
||||
|
||||
###############################################################
|
||||
# Default flags
|
||||
# You can set up flags you want broot to start with by
|
||||
# default, for example `default_flags="ihp"` if you usually want
|
||||
# to see hidden and gitignored files and the permissions (then
|
||||
# if you don't want the hidden files you can launch `br -H`)
|
||||
# A popular flag is the `g` one which displays git related info.
|
||||
#
|
||||
# default_flags:
|
||||
|
||||
###############################################################
|
||||
# Date/Time format
|
||||
# If you want to change the format for date/time, uncomment the
|
||||
# following line and change it according to
|
||||
# https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html
|
||||
#
|
||||
# date_time_format: %Y/%m/%d %R
|
||||
|
||||
###############################################################
|
||||
# uncomment to activate modal mode
|
||||
#
|
||||
# (you really should read https://dystroy.org/broot/modal/
|
||||
# before as it may not suit everybody even among vim users)
|
||||
#
|
||||
# modal: true
|
||||
|
||||
###############################################################
|
||||
# Whether to mark the selected line with a triangle
|
||||
#
|
||||
show_selection_mark: true
|
||||
|
||||
###############################################################
|
||||
# Column order
|
||||
# cols_order, if specified, must be a permutation of the following
|
||||
# array. You should keep the name at the end as it has a variable
|
||||
# length.
|
||||
#
|
||||
# cols_order: [
|
||||
# mark
|
||||
# git
|
||||
# size
|
||||
# permission
|
||||
# date
|
||||
# count
|
||||
# branch
|
||||
# name
|
||||
# ]
|
||||
|
||||
###############################################################
|
||||
# True Colors
|
||||
# If this parameter isn't set, broot tries to automatically
|
||||
# determine whether true colors (24 bits) are available.
|
||||
# As this process is unreliable, you may uncomment this setting
|
||||
# and set it to false or true if you notice the colors in
|
||||
# previewed images are too off.
|
||||
#
|
||||
# true_colors: false
|
||||
|
||||
###############################################################
|
||||
# Icons
|
||||
# If you want to display icons in broot, uncomment this line
|
||||
# (see https://dystroy.org/broot/icons for installation and
|
||||
# troubleshooting)
|
||||
#
|
||||
# icon_theme: vscode
|
||||
|
||||
###############################################################
|
||||
# Special paths
|
||||
# If some paths must be handled specially, uncomment (and change
|
||||
# this section as per the examples)
|
||||
#
|
||||
# special_paths: {
|
||||
# "/media/slow-backup-disk" : no-enter
|
||||
# "/home/dys/useless" : hide
|
||||
# "/home/dys/my-link-I-want-to-explore" : enter
|
||||
# }
|
||||
|
||||
###############################################################
|
||||
# Quit on last cancel
|
||||
# You can usually cancel the last state change on escape.
|
||||
# If you want the escape key to quit broot when there's nothing
|
||||
# to cancel (for example when you just opened broot), uncomment
|
||||
# this parameter
|
||||
#
|
||||
# quit_on_last_cancel: true
|
||||
|
||||
###############################################################
|
||||
# Search modes
|
||||
#
|
||||
# broot allows many search modes.
|
||||
# A search mode is defined by
|
||||
# - the way to search: 'fuzzy', 'exact', 'regex', or 'tokens'.
|
||||
# - where to search: file 'name', 'path', or file 'content'
|
||||
# A search pattern may for example be "fuzzy path" (default),
|
||||
# "regex content" or "exact path".
|
||||
#
|
||||
# The search mode is selected from its prefix. For example, if
|
||||
# you type "abc", the default mode is "fuzzy path". If you type
|
||||
# "/abc", the mode is "regex path". If you type "rn/abc", the mode
|
||||
# is "regex name".
|
||||
#
|
||||
# This mapping may be modified. You may want to dedicate the
|
||||
# empty prefix (the one which doesn't need a '/') to the
|
||||
# search mode you use most often. The example below makes it
|
||||
# easy to search on name rather than on the subpath.
|
||||
#
|
||||
# More information on
|
||||
# https://dystroy.org/broot/input/#the-filtering-pattern
|
||||
#
|
||||
# search_modes: {
|
||||
# <empty>: fuzzy name
|
||||
# /: regex name
|
||||
# }
|
||||
|
||||
###############################################################
|
||||
# Verbs and shortcuts
|
||||
# You can define your own commands which would be applied to
|
||||
# the selection.
|
||||
# You'll also find below verbs that you can customize or enable.
|
||||
verbs: [
|
||||
|
||||
# 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 standard recommended command for editing files, that you
|
||||
# can customize.
|
||||
# If $EDITOR isn't set on your computer, you should either set it using
|
||||
# something similar to
|
||||
# export EDITOR=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.
|
||||
# Example:
|
||||
# execution: nvim +{line} {file}
|
||||
{
|
||||
invocation: edit
|
||||
shortcut: e
|
||||
execution: "$EDITOR +{line} {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 not executed 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}"
|
||||
}
|
||||
|
||||
# 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 shortcut bringing you to your home directory
|
||||
# {
|
||||
# invocation: home
|
||||
# key: ctrl-home
|
||||
# execution: ":focus ~"
|
||||
# }
|
||||
|
||||
# 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: ctrl-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
|
||||
# }
|
||||
]
|
||||
|
||||
###############################################################
|
||||
# Skin
|
||||
# If you want to change the colors of broot,
|
||||
# uncomment the following bloc and start messing
|
||||
# with the various values.
|
||||
# A skin entry value is made of two parts separated with a '/':
|
||||
# The first one is the skin for the active panel.
|
||||
# The second one, optional, is the skin for non active panels.
|
||||
# You may find explanations and other skins on
|
||||
# https://dystroy.org/broot/skins
|
||||
###############################################################
|
||||
# If you only want to set the default color and a transparent
|
||||
# background, uncomment this simplified skin:
|
||||
# skin: {
|
||||
# default: none none / gray(20) none
|
||||
# }
|
||||
#
|
||||
# To experiment with a whole skin, uncomment this one:
|
||||
# skin: {
|
||||
# default: gray(23) none / gray(20) none
|
||||
# tree: ansi(94) None / gray(3) None
|
||||
# parent: gray(18) None / gray(13) None
|
||||
# file: gray(20) None / gray(15) None
|
||||
# directory: ansi(208) None Bold / ansi(172) None bold
|
||||
# exe: Cyan None
|
||||
# link: Magenta None
|
||||
# pruning: gray(12) None Italic
|
||||
# perm__: gray(5) None
|
||||
# perm_r: ansi(94) None
|
||||
# perm_w: ansi(132) None
|
||||
# perm_x: ansi(65) None
|
||||
# owner: ansi(138) None
|
||||
# group: ansi(131) None
|
||||
# count: ansi(136) gray(3)
|
||||
# dates: ansi(66) None
|
||||
# sparse: ansi(214) None
|
||||
# content_extract: ansi(29) None
|
||||
# content_match: ansi(34) None
|
||||
# git_branch: ansi(229) None
|
||||
# git_insertions: ansi(28) None
|
||||
# git_deletions: ansi(160) None
|
||||
# git_status_current: gray(5) None
|
||||
# git_status_modified: ansi(28) None
|
||||
# git_status_new: ansi(94) None Bold
|
||||
# git_status_ignored: gray(17) None
|
||||
# git_status_conflicted: ansi(88) None
|
||||
# git_status_other: ansi(88) None
|
||||
# selected_line: None gray(5) / None gray(4)
|
||||
# char_match: Yellow None
|
||||
# file_error: Red None
|
||||
# flag_label: gray(15) None
|
||||
# flag_value: ansi(208) None Bold
|
||||
# input: White None / gray(15) gray(2)
|
||||
# status_error: gray(22) ansi(124)
|
||||
# status_job: ansi(220) gray(5)
|
||||
# status_normal: gray(20) gray(3) / gray(2) gray(2)
|
||||
# status_italic: ansi(208) gray(3) / gray(2) gray(2)
|
||||
# status_bold: ansi(208) gray(3) Bold / gray(2) gray(2)
|
||||
# status_code: ansi(229) gray(3) / gray(2) gray(2)
|
||||
# status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
|
||||
# purpose_normal: gray(20) gray(2)
|
||||
# purpose_italic: ansi(178) gray(2)
|
||||
# purpose_bold: ansi(178) gray(2) Bold
|
||||
# purpose_ellipsis: gray(20) gray(2)
|
||||
# scrollbar_track: gray(7) None / gray(4) None
|
||||
# scrollbar_thumb: gray(22) None / gray(14) None
|
||||
# help_paragraph: gray(20) None
|
||||
# help_bold: ansi(208) None Bold
|
||||
# help_italic: ansi(166) None
|
||||
# help_code: gray(21) gray(3)
|
||||
# help_headers: ansi(208) None
|
||||
# help_table_border: ansi(239) None
|
||||
# preview: gray(20) gray(1) / gray(18) gray(2)
|
||||
# preview_line_number: gray(12) gray(3)
|
||||
# preview_match: None ansi(29)
|
||||
# hex_null: gray(11) None
|
||||
# hex_ascii_graphic: gray(18) None
|
||||
# hex_ascii_whitespace: ansi(143) None
|
||||
# hex_ascii_other: ansi(215) None
|
||||
# hex_non_ascii: ansi(167) None
|
||||
# }
|
||||
|
||||
|
||||
###############################################################
|
||||
# File Extension Colors
|
||||
#
|
||||
# uncomment and modify the next section if you want to color
|
||||
# file name depending on their extension
|
||||
#
|
||||
# ext_colors: {
|
||||
# png: rgb(255, 128, 75)
|
||||
# rs: yellow
|
||||
# }
|
||||
|
||||
|
||||
###############################################################
|
||||
# Max Panels Count
|
||||
#
|
||||
# Change this if you sometimes want to have more than 2 panels
|
||||
# open
|
||||
# max_panels_count: 2
|
||||
}
|
|
@ -16,4 +16,5 @@ set -x theme_nerd_fonts yes
|
|||
set -x fish_prompt_pwd_dir_length 0
|
||||
|
||||
fish_vi_key_bindings
|
||||
fish_user_key_bindings
|
||||
fish_user_key_bindings
|
||||
fzf_key_bindings
|
|
@ -9,7 +9,8 @@ set number " turn on line numbers
|
|||
" ----------------------------- Plugins ------------------------------
|
||||
|
||||
call plug#begin()
|
||||
Plug 'justinmk/vim-sneak'
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
Plug 'justinmk/vim-sneak' " s two character search
|
||||
Plug 'easymotion/vim-easymotion' " \\ w to jump around quickly
|
||||
Plug 'sheerun/vim-polyglot' " syntax highlighting for many langs
|
||||
Plug 'junegunn/fzf' " fuzzy finder
|
||||
call plug#end()
|
Loading…
Reference in New Issue