20250405.1743842637

This commit is contained in:
fz0x1 2025-04-05 10:43:57 +02:00
parent 9216ed84a5
commit 491c833040
6 changed files with 487 additions and 117 deletions

View file

@ -0,0 +1,2 @@
set preview_images true
set preview_images_method ueberzug

366
global/.config/ranger/scope.sh Executable file
View 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

View file

@ -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}

View file

@ -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.

View file

@ -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 &