20250405.1743842637
This commit is contained in:
parent
9216ed84a5
commit
491c833040
6 changed files with 487 additions and 117 deletions
2
global/.config/ranger/rc.conf
Normal file
2
global/.config/ranger/rc.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
set preview_images true
|
||||
set preview_images_method ueberzug
|
366
global/.config/ranger/scope.sh
Executable file
366
global/.config/ranger/scope.sh
Executable file
|
@ -0,0 +1,366 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -o noclobber -o noglob -o nounset -o pipefail
|
||||
IFS=$'\n'
|
||||
|
||||
## If the option `use_preview_script` is set to `true`,
|
||||
## then this script will be called and its output will be displayed in ranger.
|
||||
## ANSI color codes are supported.
|
||||
## STDIN is disabled, so interactive scripts won't work properly
|
||||
|
||||
## This script is considered a configuration file and must be updated manually.
|
||||
## It will be left untouched if you upgrade ranger.
|
||||
|
||||
## Because of some automated testing we do on the script #'s for comments need
|
||||
## to be doubled up. Code that is commented out, because it's an alternative for
|
||||
## example, gets only one #.
|
||||
|
||||
## Meanings of exit codes:
|
||||
## code | meaning | action of ranger
|
||||
## -----+------------+-------------------------------------------
|
||||
## 0 | success | Display stdout as preview
|
||||
## 1 | no preview | Display no preview at all
|
||||
## 2 | plain text | Display the plain content of the file
|
||||
## 3 | fix width | Don't reload when width changes
|
||||
## 4 | fix height | Don't reload when height changes
|
||||
## 5 | fix both | Don't ever reload
|
||||
## 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
|
||||
## 7 | image | Display the file directly as an image
|
||||
|
||||
## Script arguments
|
||||
FILE_PATH="${1}" # Full path of the highlighted file
|
||||
PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
|
||||
## shellcheck disable=SC2034 # PV_HEIGHT is provided for convenience and unused
|
||||
PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
|
||||
IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
|
||||
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
|
||||
|
||||
FILE_EXTENSION="${FILE_PATH##*.}"
|
||||
FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
## Settings
|
||||
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
||||
HIGHLIGHT_TABWIDTH=${HIGHLIGHT_TABWIDTH:-8}
|
||||
HIGHLIGHT_STYLE=${HIGHLIGHT_STYLE:-pablo}
|
||||
HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
|
||||
PYGMENTIZE_STYLE=${PYGMENTIZE_STYLE:-autumn}
|
||||
OPENSCAD_IMGSIZE=${RNGR_OPENSCAD_IMGSIZE:-1000,1000}
|
||||
OPENSCAD_COLORSCHEME=${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night}
|
||||
|
||||
handle_extension() {
|
||||
case "${FILE_EXTENSION_LOWER}" in
|
||||
## Archive
|
||||
a | ace | alz | arc | arj | bz | bz2 | cab | cpio | deb | gz | jar | lha | lz | lzh | lzma | lzo | \
|
||||
rpm | rz | t7z | tar | tbz | tbz2 | tgz | tlz | txz | tZ | tzo | war | xpi | xz | Z | zip)
|
||||
atool --list -- "${FILE_PATH}" && exit 5
|
||||
bsdtar --list --file "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
rar)
|
||||
## Avoid password prompt by providing empty password
|
||||
unrar lt -p- -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
7z)
|
||||
## Avoid password prompt by providing empty password
|
||||
7z l -p -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## PDF
|
||||
pdf)
|
||||
## Preview as text conversion
|
||||
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - |
|
||||
fmt -w "${PV_WIDTH}" && exit 5
|
||||
mutool draw -F txt -i -- "${FILE_PATH}" 1-10 |
|
||||
fmt -w "${PV_WIDTH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## BitTorrent
|
||||
torrent)
|
||||
transmission-show -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## OpenDocument
|
||||
odt | ods | odp | sxw)
|
||||
## Preview as text conversion
|
||||
odt2txt "${FILE_PATH}" && exit 5
|
||||
## Preview as markdown conversion
|
||||
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## XLSX
|
||||
xlsx)
|
||||
## Preview as csv conversion
|
||||
## Uses: https://github.com/dilshod/xlsx2csv
|
||||
xlsx2csv -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## HTML
|
||||
htm | html | xhtml)
|
||||
## Preview as text conversion
|
||||
w3m -dump "${FILE_PATH}" && exit 5
|
||||
lynx -dump -- "${FILE_PATH}" && exit 5
|
||||
elinks -dump "${FILE_PATH}" && exit 5
|
||||
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
|
||||
;;
|
||||
|
||||
## JSON
|
||||
json)
|
||||
if [ -f "${FILE_PATH}" ] && [ "$(stat -c%s "${FILE_PATH}")" -gt 100000 ]; then
|
||||
echo "File too large for preview"
|
||||
exit 0
|
||||
fi
|
||||
jq --color-output . "${FILE_PATH}" && exit 5
|
||||
python -m json.tool -- "${FILE_PATH}" && exit 5
|
||||
;;
|
||||
|
||||
## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
|
||||
## by file(1).
|
||||
dff | dsf | wv | wvc)
|
||||
mediainfo "${FILE_PATH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
;; # Continue with next handler on failure
|
||||
esac
|
||||
}
|
||||
|
||||
handle_image() {
|
||||
## Size of the preview if there are multiple options or it has to be
|
||||
## rendered from vector graphics. If the conversion program allows
|
||||
## specifying only one dimension while keeping the aspect ratio, the width
|
||||
## will be used.
|
||||
local DEFAULT_SIZE="1920x1080"
|
||||
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
## SVG
|
||||
# image/svg+xml|image/svg)
|
||||
# convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# exit 1;;
|
||||
|
||||
## DjVu
|
||||
# image/vnd.djvu)
|
||||
# ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \
|
||||
# - "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \
|
||||
# && exit 6 || exit 1;;
|
||||
|
||||
## Image
|
||||
image/*)
|
||||
local orientation
|
||||
orientation="$(identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}")"
|
||||
## If orientation data is present and the image actually
|
||||
## needs rotating ("1" means no rotation)...
|
||||
if [[ -n "$orientation" && "$orientation" != 1 ]]; then
|
||||
## ...auto-rotate the image according to the EXIF data.
|
||||
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
|
||||
fi
|
||||
|
||||
## `w3mimgdisplay` will be called for all images (unless overriden
|
||||
## as above), but might fail for unsupported types.
|
||||
exit 7
|
||||
;;
|
||||
|
||||
## Video
|
||||
# video/*)
|
||||
# # Thumbnail
|
||||
# ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
|
||||
# exit 1;;
|
||||
|
||||
## PDF
|
||||
# application/pdf)
|
||||
# pdftoppm -f 1 -l 1 \
|
||||
# -scale-to-x "${DEFAULT_SIZE%x*}" \
|
||||
# -scale-to-y -1 \
|
||||
# -singlefile \
|
||||
# -jpeg -tiffcompression jpeg \
|
||||
# -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
|
||||
# && exit 6 || exit 1;;
|
||||
|
||||
## ePub, MOBI, FB2 (using Calibre)
|
||||
# application/epub+zip|application/x-mobipocket-ebook|\
|
||||
# application/x-fictionbook+xml)
|
||||
# # ePub (using https://github.com/marianosimone/epub-thumbnailer)
|
||||
# epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \
|
||||
# "${DEFAULT_SIZE%x*}" && exit 6
|
||||
# ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \
|
||||
# >/dev/null && exit 6
|
||||
# exit 1;;
|
||||
|
||||
## Font
|
||||
application/font* | application/*opentype)
|
||||
preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png"
|
||||
if fontimage -o "${preview_png}" \
|
||||
--pixelsize "120" \
|
||||
--fontname \
|
||||
--pixelsize "80" \
|
||||
--text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \
|
||||
--text " abcdefghijklmnopqrstuvwxyz " \
|
||||
--text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \
|
||||
--text " The quick brown fox jumps over the lazy dog. " \
|
||||
"${FILE_PATH}"; then
|
||||
convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" &&
|
||||
rm "${preview_png}" &&
|
||||
exit 6
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
## Preview archives using the first image inside.
|
||||
## (Very useful for comic book collections for example.)
|
||||
# application/zip|application/x-rar|application/x-7z-compressed|\
|
||||
# application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
|
||||
# local fn=""; local fe=""
|
||||
# local zip=""; local rar=""; local tar=""; local bsd=""
|
||||
# case "${mimetype}" in
|
||||
# application/zip) zip=1 ;;
|
||||
# application/x-rar) rar=1 ;;
|
||||
# application/x-7z-compressed) ;;
|
||||
# *) tar=1 ;;
|
||||
# esac
|
||||
# { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \
|
||||
# { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \
|
||||
# { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \
|
||||
# { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return
|
||||
#
|
||||
# fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \
|
||||
# [ print(l, end='') for l in sys.stdin if \
|
||||
# (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\
|
||||
# sort -V | head -n 1)
|
||||
# [ "$fn" = "" ] && return
|
||||
# [ "$bsd" ] && fn=$(printf '%b' "$fn")
|
||||
#
|
||||
# [ "$tar" ] && tar --extract --to-stdout \
|
||||
# --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g')
|
||||
# [ "$bsd" ] && bsdtar --extract --to-stdout \
|
||||
# --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}"
|
||||
# [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \
|
||||
# "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \
|
||||
# "${IMAGE_CACHE_PATH}" && exit 6
|
||||
# [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
|
||||
# ;;
|
||||
esac
|
||||
|
||||
# openscad_image() {
|
||||
# TMPPNG="$(mktemp -t XXXXXX.png)"
|
||||
# openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \
|
||||
# --imgsize="${OPENSCAD_IMGSIZE/x/,}" \
|
||||
# -o "${TMPPNG}" "${1}"
|
||||
# mv "${TMPPNG}" "${IMAGE_CACHE_PATH}"
|
||||
# }
|
||||
|
||||
# case "${FILE_EXTENSION_LOWER}" in
|
||||
# ## 3D models
|
||||
# ## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH}
|
||||
# ## is hardcoded as jpeg. So we make a tempfile.png and just
|
||||
# ## move/rename it to jpg. This works because image libraries are
|
||||
# ## smart enough to handle it.
|
||||
# csg|scad)
|
||||
# openscad_image "${FILE_PATH}" && exit 6
|
||||
# ;;
|
||||
# 3mf|amf|dxf|off|stl)
|
||||
# openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6
|
||||
# ;;
|
||||
# esac
|
||||
}
|
||||
|
||||
handle_mime() {
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
## RTF and DOC
|
||||
text/rtf | *msword)
|
||||
## Preview as text conversion
|
||||
## note: catdoc does not always work for .doc files
|
||||
## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
|
||||
catdoc -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## DOCX, ePub, FB2 (using markdown)
|
||||
## You might want to remove "|epub" and/or "|fb2" below if you have
|
||||
## uncommented other methods to preview those formats
|
||||
*wordprocessingml.document | */epub+zip | */x-fictionbook+xml)
|
||||
## Preview as markdown conversion
|
||||
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## XLS
|
||||
*ms-excel)
|
||||
## Preview as csv conversion
|
||||
## xls2csv comes with catdoc:
|
||||
## http://www.wagner.pp.ru/~vitus/software/catdoc/
|
||||
xls2csv -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## Text
|
||||
text/* | */xml)
|
||||
## Syntax highlight
|
||||
if [[ "$(stat --printf='%s' -- "${FILE_PATH}")" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
|
||||
exit 2
|
||||
fi
|
||||
if [[ "$(tput colors)" -ge 256 ]]; then
|
||||
local pygmentize_format='terminal256'
|
||||
local highlight_format='xterm256'
|
||||
else
|
||||
local pygmentize_format='terminal'
|
||||
local highlight_format='ansi'
|
||||
fi
|
||||
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
|
||||
--out-format="${highlight_format}" \
|
||||
--force -- "${FILE_PATH}" && exit 5
|
||||
env COLORTERM=8bit bat --color=always --style="plain" \
|
||||
-- "${FILE_PATH}" && exit 5
|
||||
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" \
|
||||
-- "${FILE_PATH}" && exit 5
|
||||
exit 2
|
||||
;;
|
||||
|
||||
## DjVu
|
||||
image/vnd.djvu)
|
||||
## Preview as text conversion (requires djvulibre)
|
||||
djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## Image
|
||||
image/*)
|
||||
## Preview as text conversion
|
||||
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
|
||||
## Video and audio
|
||||
video/* | audio/*)
|
||||
mediainfo "${FILE_PATH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
handle_fallback() {
|
||||
echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
}
|
||||
|
||||
MIMETYPE="$(file --dereference --brief --mime-type -- "${FILE_PATH}")"
|
||||
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
|
||||
handle_image "${MIMETYPE}"
|
||||
fi
|
||||
handle_extension
|
||||
handle_mime "${MIMETYPE}"
|
||||
handle_fallback
|
||||
|
||||
exit 1
|
|
@ -1 +1 @@
|
|||
{"gtabs":[{"panes":[{"ptabs":[{"history":[{"dir":"/home/cr33per/Downloads/Screenshots","file":"..","relpos":0,"ts":1742162618},{"dir":"/home/cr33per/Downloads","file":"Screenshots","relpos":1,"ts":1742163505},{"dir":"/home","file":"fz0x1","relpos":1,"ts":1742419561},{"dir":"/home/fz0x1","file":"Desktop","relpos":3,"ts":1742419561}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home/fz0x1","sorting":[2],"preview":false}]},{"ptabs":[{"history":[{"dir":"/home/cr33per/Downloads/Screenshots","file":"..","relpos":0,"ts":1742162618},{"dir":"/home","file":"..","relpos":0,"ts":1742419561}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home","sorting":[2],"preview":false}]}],"active-pane":0,"preview":false,"splitter":{"pos":-1,"ratio":0.5,"orientation":"v","expanded":false}}],"active-gtab":0,"marks":{"H":{"dir":"/home/cr33per/","file":"..","ts":1742162560},"b":{"dir":"/home/fz0x1/bin/","file":"..","ts":1742419555},"h":{"dir":"/home/fz0x1/","file":"..","ts":1742419555},"z":{"dir":"/home/cr33per/.config/vifm","file":"..","ts":1742162560}},"bmarks":{},"cmd-hist":[{"text":"h","ts":1742163342},{"text":"q","ts":1742163342}],"regs":{},"dir-stack":[],"use-term-multiplexer":false}
|
||||
{"gtabs":[{"panes":[{"ptabs":[{"history":[{"dir":"/home/cr33per/Downloads/Screenshots","file":"..","relpos":0,"ts":1742162618},{"dir":"/home/cr33per/Downloads","file":"Screenshots","relpos":1,"ts":1742163505},{"dir":"/home","file":"fz0x1","relpos":1,"ts":1742419561},{"dir":"/home/fz0x1","file":"Downloads","relpos":4,"ts":1742419561},{"dir":"/home/fz0x1/Downloads","file":"plugins.zip","relpos":15,"ts":1743764709}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home/fz0x1/Downloads","sorting":[2],"preview":false}]},{"ptabs":[{"history":[{"dir":"/home/cr33per/Downloads/Screenshots","file":"..","relpos":0,"ts":1742162618},{"dir":"/home","file":"..","relpos":0,"ts":1742419561}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home","sorting":[2],"preview":false}]}],"active-pane":0,"preview":false,"splitter":{"pos":-1,"ratio":0.5,"orientation":"v","expanded":false}}],"active-gtab":0,"marks":{"H":{"dir":"/home/cr33per/","file":"..","ts":1742162560},"b":{"dir":"/home/fz0x1/bin/","file":"..","ts":1742419555},"h":{"dir":"/home/fz0x1/","file":"..","ts":1742419555},"z":{"dir":"/home/cr33per/.config/vifm","file":"..","ts":1742162560}},"bmarks":{},"cmd-hist":[{"text":"?","ts":1743764709},{"text":"h","ts":1743764709},{"text":"!ex %f","ts":1743764709},{"text":"!zsh -c \"ex %f\"","ts":1743764709},{"text":"!unzip %f","ts":1743764709},{"text":"q","ts":1743764709}],"regs":{},"dir-stack":[],"use-term-multiplexer":false}
|
232
global/.vimrc
232
global/.vimrc
|
@ -71,40 +71,40 @@ autocmd FileType css setlocal tabstop=2 shiftwidth=2 softtabstop=2
|
|||
autocmd FileType javascript setlocal tabstop=2 shiftwidth=2 softtabstop=2
|
||||
|
||||
" plugings
|
||||
call plug#begin()
|
||||
|
||||
Plug 'machakann/vim-highlightedyank'
|
||||
Plug 'tpope/vim-commentary'
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
Plug 'preservim/nerdtree'
|
||||
" Plug 'tpope/vim-surround'
|
||||
Plug 'terryma/vim-multiple-cursors'
|
||||
" Plug 'tommcdo/vim-exchange'
|
||||
" Plug 'michaeljsmith/vim-indent-object'
|
||||
Plug 'vimwiki/vimwiki'
|
||||
Plug 'mattn/calendar-vim'
|
||||
Plug 'jamessan/vim-gnupg'
|
||||
Plug 'ryanoasis/vim-devicons'
|
||||
" https://github.com/LunarWatcher/auto-pairs/blob/master/doc/AutoPairs.txt
|
||||
Plug 'LunarWatcher/auto-pairs'
|
||||
" Plug 'vim-airline/vim-airline'
|
||||
" Plug 'vim-airline/vim-airline-themes'
|
||||
Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
|
||||
Plug 'morhetz/gruvbox'
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
" Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
" Plug 'junegunn/fzf.vim'
|
||||
Plug 'mhinz/vim-startify'
|
||||
" Plug 'tpope/vim-fugitive'
|
||||
Plug 'tpope/vim-obsession'
|
||||
Plug 'ycm-core/YouCompleteMe'
|
||||
Plug 'dense-analysis/ale'
|
||||
Plug 'SirVer/ultisnips'
|
||||
Plug 'honza/vim-snippets'
|
||||
" Plug 'majutsushi/tagbar'
|
||||
|
||||
call plug#end()
|
||||
" call plug#begin()
|
||||
"
|
||||
" Plug 'machakann/vim-highlightedyank'
|
||||
" Plug 'tpope/vim-commentary'
|
||||
" Plug 'easymotion/vim-easymotion'
|
||||
" Plug 'preservim/nerdtree'
|
||||
" " Plug 'tpope/vim-surround'
|
||||
" Plug 'terryma/vim-multiple-cursors'
|
||||
" " Plug 'tommcdo/vim-exchange'
|
||||
" " Plug 'michaeljsmith/vim-indent-object'
|
||||
" Plug 'vimwiki/vimwiki'
|
||||
" Plug 'mattn/calendar-vim'
|
||||
" Plug 'jamessan/vim-gnupg'
|
||||
" Plug 'ryanoasis/vim-devicons'
|
||||
" " https://github.com/LunarWatcher/auto-pairs/blob/master/doc/AutoPairs.txt
|
||||
" Plug 'LunarWatcher/auto-pairs'
|
||||
" " Plug 'vim-airline/vim-airline'
|
||||
" " Plug 'vim-airline/vim-airline-themes'
|
||||
" Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
|
||||
" Plug 'morhetz/gruvbox'
|
||||
" Plug 'christoomey/vim-tmux-navigator'
|
||||
" Plug 'sheerun/vim-polyglot'
|
||||
" " Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
" " Plug 'junegunn/fzf.vim'
|
||||
" Plug 'mhinz/vim-startify'
|
||||
" " Plug 'tpope/vim-fugitive'
|
||||
" Plug 'tpope/vim-obsession'
|
||||
" Plug 'ycm-core/YouCompleteMe'
|
||||
" Plug 'dense-analysis/ale'
|
||||
" Plug 'SirVer/ultisnips'
|
||||
" Plug 'honza/vim-snippets'
|
||||
" " Plug 'majutsushi/tagbar'
|
||||
"
|
||||
" call plug#end()
|
||||
|
||||
filetype on
|
||||
filetype plugin on
|
||||
|
@ -116,18 +116,18 @@ filetype plugin indent on
|
|||
" autocmd BufEnter *.py :call tagbar#autoopen(0)
|
||||
|
||||
" ultisnips
|
||||
let g:UltiSnipsExpandTrigger = '<C-j>'
|
||||
let g:UltiSnipsJumpForwardTrigger = '<C-j>'
|
||||
let g:UltiSnipsJumpBackwardTrigger = '<C-k>'
|
||||
" let g:UltiSnipsExpandTrigger = '<C-j>'
|
||||
" let g:UltiSnipsJumpForwardTrigger = '<C-j>'
|
||||
" let g:UltiSnipsJumpBackwardTrigger = '<C-k>'
|
||||
|
||||
" easymotion
|
||||
map <leader>F <Plug>(easymotion-s)
|
||||
map <leader>f <Plug>(easymotion-f)
|
||||
" map <leader>F <Plug>(easymotion-s)
|
||||
" map <leader>f <Plug>(easymotion-f)
|
||||
" nerdtree
|
||||
map <c-t> :NERDTree<CR>
|
||||
nmap " :NERDTreeToggle<CR>
|
||||
let NERDTreeIgnore=['\.pyc$', '\.pyo$', '__pycache__$'] " Ignore files in NERDTree
|
||||
let NERDTreeWinSize=40
|
||||
" map <c-t> :NERDTree<CR>
|
||||
" nmap " :NERDTreeToggle<CR>
|
||||
" let NERDTreeIgnore=['\.pyc$', '\.pyo$', '__pycache__$'] " Ignore files in NERDTree
|
||||
" let NERDTreeWinSize=40
|
||||
" autocmd VimEnter * if !argc() | NERDTree | endif " Load NERDTree only if vim is run without arguments
|
||||
|
||||
" fzf
|
||||
|
@ -135,8 +135,8 @@ let NERDTreeWinSize=40
|
|||
" nmap <leader>bb :Buffers<CR>
|
||||
|
||||
" auto-pairs
|
||||
let g:AutoPairsMapBS = 1
|
||||
let g:AutoPairsBSAfter = 0
|
||||
" let g:AutoPairsMapBS = 1
|
||||
" let g:AutoPairsBSAfter = 0
|
||||
|
||||
" airline
|
||||
" let g:airline#extensions#obsession#enable = 1
|
||||
|
@ -153,96 +153,96 @@ let g:AutoPairsBSAfter = 0
|
|||
" let g:airline_symbols.maxlinenr = ''
|
||||
|
||||
" theme
|
||||
autocmd vimenter * ++nested colorscheme gruvbox
|
||||
set background=dark
|
||||
let g:gruvbox_contrast_dark='soft'
|
||||
" autocmd vimenter * ++nested colorscheme gruvbox
|
||||
" set background=dark
|
||||
" let g:gruvbox_contrast_dark='soft'
|
||||
|
||||
" vim wiki
|
||||
let g:GPGFilePattern = '*.\(gpg\|asc\|pgp\)\(.wiki\|.md\)\='
|
||||
" let g:GPGFilePattern = '*.\(gpg\|asc\|pgp\)\(.wiki\|.md\)\='
|
||||
" toogle checklists
|
||||
nnoremap <leader>cl :VimwikiToggleListItem<CR>
|
||||
" nnoremap <leader>cl :VimwikiToggleListItem<CR>
|
||||
" reset gpg-agent password cache after close or save the buffer (vimwiki diary)
|
||||
autocmd BufWritePost *.asc.md !gpgconf --reload gpg-agent
|
||||
" autocmd BufWritePost *.asc.md !gpgconf --reload gpg-agent
|
||||
" https://github.com/WnP/vimwiki_markdown
|
||||
" ~/vimwiki/personal - private content
|
||||
" ~/vimwiki/public_wiki - public wiki content
|
||||
" ~/vimwiki/diary - private diary
|
||||
let default_wiki = '~/Productivity/vimwiki/personal'
|
||||
let public_wiki = '~/Productivity/vimwiki/public_wiki'
|
||||
let g:diary = '~/Productivity/vimwiki/diary'
|
||||
let g:diary_index_name = 'diary'
|
||||
let g:diary_ext = '.asc.md'
|
||||
let g:vimwiki_list = [{
|
||||
\ 'path': default_wiki,
|
||||
\ 'diary_rel_path': '../diary',
|
||||
\ 'auto_diary_index': 1,
|
||||
\ 'auto_export': 0},
|
||||
\ {'path': public_wiki,
|
||||
\ 'auto_export': 0,
|
||||
\ 'diary_rel_path': '../diary',
|
||||
\ 'template_path': public_wiki . '/templates/',
|
||||
\ 'template_default': 'default',
|
||||
\ 'syntax': 'markdown',
|
||||
\ 'ext': '.md',
|
||||
\ 'path_html': public_wiki . '/site_html/',
|
||||
\ 'custom_wiki2html': 'vimwiki_markdown',
|
||||
\ 'template_ext': '.tpl'},
|
||||
\ {'path': diary,
|
||||
\ 'index': diary_index_name,
|
||||
\ 'ext': diary_ext,
|
||||
\ 'diary_rel_path': './',
|
||||
\ 'auto_diary_index': 1,
|
||||
\ 'auto_export': 0}]
|
||||
" let default_wiki = '~/Productivity/vimwiki/personal'
|
||||
" let public_wiki = '~/Productivity/vimwiki/public_wiki'
|
||||
" let g:diary = '~/Productivity/vimwiki/diary'
|
||||
" let g:diary_index_name = 'diary'
|
||||
" let g:diary_ext = '.asc.md'
|
||||
" let g:vimwiki_list = [{
|
||||
" \ 'path': default_wiki,
|
||||
" \ 'diary_rel_path': '../diary',
|
||||
" \ 'auto_diary_index': 1,
|
||||
" \ 'auto_export': 0},
|
||||
" \ {'path': public_wiki,
|
||||
" \ 'auto_export': 0,
|
||||
" \ 'diary_rel_path': '../diary',
|
||||
" \ 'template_path': public_wiki . '/templates/',
|
||||
" \ 'template_default': 'default',
|
||||
" \ 'syntax': 'markdown',
|
||||
" \ 'ext': '.md',
|
||||
" \ 'path_html': public_wiki . '/site_html/',
|
||||
" \ 'custom_wiki2html': 'vimwiki_markdown',
|
||||
" \ 'template_ext': '.tpl'},
|
||||
" \ {'path': diary,
|
||||
" \ 'index': diary_index_name,
|
||||
" \ 'ext': diary_ext,
|
||||
" \ 'diary_rel_path': './',
|
||||
" \ 'auto_diary_index': 1,
|
||||
" \ 'auto_export': 0}]
|
||||
" fix - https://github.com/vimwiki/vimwiki/issues/1055
|
||||
exe 'autocmd BufEnter ' . diary_index_name . diary_ext . ' :VimwikiDiaryGenerateLinks'
|
||||
" exe 'autocmd BufEnter ' . diary_index_name . diary_ext . ' :VimwikiDiaryGenerateLinks'
|
||||
" inserting default diary template
|
||||
function! AppendDiaryTemplate()
|
||||
" function! AppendDiaryTemplate()
|
||||
" detecting path of current buffer
|
||||
let current_dir = substitute(expand('%:p:h'), '^' . $HOME, '~', '')
|
||||
if current_dir == g:diary
|
||||
r! ~/scripts/vimwiki_diary_template
|
||||
execute '1,2d'
|
||||
normal G
|
||||
normal o
|
||||
endif
|
||||
endfunction
|
||||
command! InsertDiaryTemplate call AppendDiaryTemplate()
|
||||
nnoremap <leader>idr :InsertDiaryTemplate<CR>
|
||||
" let current_dir = substitute(expand('%:p:h'), '^' . $HOME, '~', '')
|
||||
" if current_dir == g:diary
|
||||
" r! ~/scripts/vimwiki_diary_template
|
||||
" execute '1,2d'
|
||||
" normal G
|
||||
" normal o
|
||||
" endif
|
||||
" endfunction
|
||||
" command! InsertDiaryTemplate call AppendDiaryTemplate()
|
||||
" nnoremap <leader>idr :InsertDiaryTemplate<CR>
|
||||
" inserting default GPG fingerprint for the diary
|
||||
let g:diaryGPG = 'CE7EB8727486553012A04E284EE708165AA10C48'
|
||||
command! InsertGPGAndExit call AppendGPGAndExit()
|
||||
function! AppendGPGAndExit()
|
||||
" let g:diaryGPG = 'CE7EB8727486553012A04E284EE708165AA10C48'
|
||||
" command! InsertGPGAndExit call AppendGPGAndExit()
|
||||
" function! AppendGPGAndExit()
|
||||
" detecting vim-gnupg dialog
|
||||
if match(getline(2), '^GPG:') == 0
|
||||
call append(line('.'), g:diaryGPG)
|
||||
wq
|
||||
endif
|
||||
endfunction
|
||||
nnoremap <leader>igg :InsertGPGAndExit<CR>
|
||||
" if match(getline(2), '^GPG:') == 0
|
||||
" call append(line('.'), g:diaryGPG)
|
||||
" wq
|
||||
" endif
|
||||
" endfunction
|
||||
" nnoremap <leader>igg :InsertGPGAndExit<CR>
|
||||
|
||||
" prettier
|
||||
nmap <leader>mm <Plug>(PrettierAsync)
|
||||
" nmap <leader>mm <Plug>(PrettierAsync)
|
||||
|
||||
" ALE
|
||||
let g:ale_linters = {
|
||||
\ 'python': ['ruff', 'mypy', 'pyright'],
|
||||
\}
|
||||
let g:ale_fixers = {
|
||||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'python': ['ruff', 'ruff_format'],
|
||||
\ 'javascript': ['prettier', 'eslint'],
|
||||
\}
|
||||
let g:ale_fix_on_save = 1
|
||||
map <C-e> <Plug>(ale_next_wrap)
|
||||
map <C-r> <Plug>(ale_previous_wrap)
|
||||
nmap <leader>go :ALEGoToDefinition<CR>
|
||||
nmap <leader>qf :ALEFix<CR>
|
||||
nmap <leader>k :ALEHover<CR>
|
||||
let g:ale_python_auto_virtualenv = 1
|
||||
let g:ale_fix_on_save = 1
|
||||
" let g:ale_linters = {
|
||||
" \ 'python': ['ruff', 'mypy', 'pyright'],
|
||||
" \}
|
||||
" let g:ale_fixers = {
|
||||
" \ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||
" \ 'python': ['ruff', 'ruff_format'],
|
||||
" \ 'javascript': ['prettier', 'eslint'],
|
||||
" \}
|
||||
" let g:ale_fix_on_save = 1
|
||||
" map <C-e> <Plug>(ale_next_wrap)
|
||||
" map <C-r> <Plug>(ale_previous_wrap)
|
||||
" nmap <leader>go :ALEGoToDefinition<CR>
|
||||
" nmap <leader>qf :ALEFix<CR>
|
||||
" nmap <leader>k :ALEHover<CR>
|
||||
" let g:ale_python_auto_virtualenv = 1
|
||||
" let g:ale_fix_on_save = 1
|
||||
|
||||
" YCM
|
||||
set completeopt-=preview
|
||||
" set completeopt-=preview
|
||||
" autocmd CompleteDone * if pumvisible() == 0 | pclose | endif
|
||||
|
||||
set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,ж\\;,э',ё\\,яz,чx,сc,мv,иb,тn,ьm,б\\,,ю.,ЙQ,ЦW,УE,КR,ЕT,НY,ГU,ШI,ЩO,ЗP,Х{,Ъ},ФA,ЫS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж:,Э\\",ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б<,Ю>,Ё/|
|
||||
|
|
Binary file not shown.
|
@ -88,6 +88,8 @@ nextcloud &
|
|||
|
||||
udiskie &
|
||||
|
||||
x11vnc -display :0 -rfbauth ~/.vnc/passwd -forever -shared &
|
||||
|
||||
# mega cloud
|
||||
# I do not use it anymore since 2025-02-10
|
||||
# megasync &
|
||||
|
|
Loading…
Add table
Reference in a new issue