urxvt clipboard/vselect/xdg-open, rewrite color red in terminal, added dunst, added ranger config
parent
352b894ce2
commit
92001234c6
|
@ -1,12 +1,12 @@
|
|||
! urxvt
|
||||
! Fonts
|
||||
urxvt*font: xft:Hack Nerd Font Mono:style=Regular:size=11:hinting=full, xft:DejaVu Sans Mono for Powerline:size=11
|
||||
urxvt*font: xft:Hack Nerd Font Mono:style=Regular:size=11:hinting=full, xft:DejaVu Sans Mono for Powerline:size=11, xtf:Noto Color Emoji:style=Regular:size=11
|
||||
|
||||
! Behavior
|
||||
urxvt*scrollBar: false
|
||||
|
||||
! Plugins
|
||||
URxvt.perl-ext: default,matcher,resize-font,tabbed
|
||||
URxvt.perl-ext: default,matcher,resize-font,tabbed,keyboard-select
|
||||
|
||||
! Matcher
|
||||
URxvt.url-launcher: /usr/bin/xdg-open
|
||||
|
@ -14,3 +14,7 @@ URxvt.matcher.button: 1
|
|||
|
||||
! Tabs
|
||||
URxvt.tabbed.new-button: false
|
||||
|
||||
! Keyboard-select
|
||||
URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
||||
URxvt.keyboard-select.clipboard: true
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
! red
|
||||
*.color1: #8b8b8b
|
||||
*.color9: #8b8b8b
|
||||
*.color9: #e91e63
|
||||
|
||||
! green
|
||||
*.color2: #237885
|
||||
|
@ -34,3 +34,4 @@
|
|||
! white
|
||||
*.color7: #98abb2
|
||||
*.color15: #c0bfbc
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc
|
|||
exec --no-startup-id urxvtd
|
||||
exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800
|
||||
exec --no-startup-id dunst
|
||||
exec --no-startup-id ~/.scripts/language_switch.sh
|
||||
exec --no-startup-id ~/.scripts/startup.sh
|
||||
exec --no-startup-id /home/tuan/workspace/go/monthlyLedger/main /home/tuan/Templates/ledger/*
|
||||
|
||||
###############################################################################
|
||||
|
@ -133,9 +133,9 @@ bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up
|
|||
bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
|
||||
|
||||
# Pulse Audio controls
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id "pactl set-sink-volume 0 +5%; notify-send 'sound up'"
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id "pactl set-sink-volume 0 -5%; notify-send 'sound down'"
|
||||
bindsym XF86AudioMute exec --no-startup-id "pactl set-sink-mute 0 toggle; notify-end 'sound muted'"
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id "pactl set-sink-volume $(pactl info | grep 'Default Sink' | cut -d' ' -f3) +5%; notify-send 'sound up'"
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id "pactl set-sink-volume $(pactl info | grep 'Default Sink' | cut -d' ' -f3) -5%; notify-send 'sound down'"
|
||||
bindsym XF86AudioMute exec --no-startup-id "pactl set-sink-mute $(pactl info | grep 'Default Sink' | cut -d' ' -f3) toggle; notify-end 'sound muted'"
|
||||
bindsym XF86AudioPlay exec "playerctl play-pause; cmus-remote -u"
|
||||
bindsym XF86AudioStop exec "playerctl stop; cmus-remote -s"
|
||||
bindsym XF86AudioNext exec "playerctl next; cmus-remote -n"
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
from __future__ import (absolute_import, division, print_function)
|
||||
|
||||
import os
|
||||
|
||||
from ranger.api.commands import Command
|
||||
|
||||
class my_edit(Command):
|
||||
# The so-called doc-string of the class will be visible in the built-in
|
||||
# help that is accessible by typing "?c" inside ranger.
|
||||
""":my_edit <filename>
|
||||
|
||||
A sample command for demonstration purposes that opens a file in an editor.
|
||||
"""
|
||||
|
||||
# The execute method is called when you run this command in ranger.
|
||||
def execute(self):
|
||||
# self.arg(1) is the first (space-separated) argument to the function.
|
||||
# This way you can write ":my_edit somefilename<ENTER>".
|
||||
if self.arg(1):
|
||||
# self.rest(1) contains self.arg(1) and everything that follows
|
||||
target_filename = self.rest(1)
|
||||
else:
|
||||
# self.fm is a ranger.core.filemanager.FileManager object and gives
|
||||
# you access to internals of ranger.
|
||||
# self.fm.thisfile is a ranger.container.file.File object and is a
|
||||
# reference to the currently selected file.
|
||||
target_filename = self.fm.thisfile.path
|
||||
|
||||
# This is a generic function to print text in ranger.
|
||||
self.fm.notify("Let's edit the file " + target_filename + "!")
|
||||
|
||||
# Using bad=True in fm.notify allows you to print error messages:
|
||||
if not os.path.exists(target_filename):
|
||||
self.fm.notify("The given file does not exist!", bad=True)
|
||||
return
|
||||
|
||||
# This executes a function from ranger.core.acitons, a module with a
|
||||
# variety of subroutines that can help you construct commands.
|
||||
# Check out the source, or run "pydoc ranger.core.actions" for a list.
|
||||
self.fm.edit_file(target_filename)
|
||||
|
||||
# The tab method is called when you press tab, and should return a list of
|
||||
# suggestions that the user will tab through.
|
||||
# tabnum is 1 for <TAB> and -1 for <S-TAB> by default
|
||||
def tab(self, tabnum):
|
||||
# This is a generic tab-completion function that iterates through the
|
||||
# content of the current directory.
|
||||
return self._tab_directory_content()
|
File diff suppressed because it is too large
Load Diff
|
@ -9,3 +9,4 @@ map nrg shell cp ~/Templates/LaTeX/Invoice/elektro_invoice.tex Gefeba_Elektr
|
|||
map nrb shell cp ~/Templates/LaTeX/Invoice/engineering_invoice.tex Gefeba_Engineering_-_Rechnung_$(date +%g-%m)_-Engineering.tex; ~/Templates/LaTeX/Invoice/InvNum.sh
|
||||
map nu shell touch L_$(basename %f .pdf)\.md
|
||||
map ntu shell cp ~/Templates/LaTeX/UniversityAssignmets/assignment.tex .
|
||||
map nw shell sed "s/# $/# $(pwd | rev | cut -d/ -f1 | rev)/" ~/Templates/writeup.md > ./writeup.md
|
||||
|
|
|
@ -0,0 +1,207 @@
|
|||
#-------------------------------------------
|
||||
# Websites
|
||||
#-------------------------------------------
|
||||
# Rarely installed browsers get higher priority; It is assumed that if you
|
||||
# install a rare browser, you probably use it. Firefox/konqueror/w3m on the
|
||||
# other hand are often only installed as fallback browsers.
|
||||
ext x?html?, has surf, X, flag f = surf -- file://"$1"
|
||||
ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@"
|
||||
ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@"
|
||||
ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@"
|
||||
ext x?html?, has dwb, X, flag f = dwb -- "$@"
|
||||
ext x?html?, has jumanji, X, flag f = jumanji -- "$@"
|
||||
ext x?html?, has luakit, X, flag f = luakit -- "$@"
|
||||
ext x?html?, has uzbl, X, flag f = uzbl -- "$@"
|
||||
ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@"
|
||||
ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@"
|
||||
ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@"
|
||||
ext x?html?, has midori, X, flag f = midori -- "$@"
|
||||
ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
|
||||
ext x?html?, has chromium, X, flag f = chromium -- "$@"
|
||||
ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
|
||||
ext x?html?, has opera, X, flag f = opera -- "$@"
|
||||
ext x?html?, has firefox, X, flag f = firefox -- "$@"
|
||||
ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@"
|
||||
ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@"
|
||||
ext x?html?, has epiphany, X, flag f = epiphany -- "$@"
|
||||
ext x?html?, has konqueror, X, flag f = konqueror -- "$@"
|
||||
ext x?html?, has elinks, terminal = elinks "$@"
|
||||
ext x?html?, has links2, terminal = links2 "$@"
|
||||
ext x?html?, has links, terminal = links "$@"
|
||||
ext x?html?, has lynx, terminal = lynx -- "$@"
|
||||
ext x?html?, has w3m, terminal = w3m "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Misc
|
||||
#-------------------------------------------
|
||||
# Define the "editor" for text files as first action
|
||||
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
|
||||
mime ^text, label pager = "$PAGER" -- "$@"
|
||||
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php|rs = ${VISUAL:-$EDITOR} -- "$@"
|
||||
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php|rs = "$PAGER" -- "$@"
|
||||
|
||||
ext 1 = man "$1"
|
||||
ext s[wmf]c, has zsnes, X = zsnes "$1"
|
||||
ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1"
|
||||
ext nes, has fceux, X = fceux "$1"
|
||||
ext exe = wine "$1"
|
||||
name ^[mM]akefile$ = make
|
||||
|
||||
#--------------------------------------------
|
||||
# Code
|
||||
#-------------------------------------------
|
||||
ext py = python -- "$1"
|
||||
ext pl = perl -- "$1"
|
||||
ext rb = ruby -- "$1"
|
||||
ext js = node -- "$1"
|
||||
ext sh = sh -- "$1"
|
||||
ext php = php -- "$1"
|
||||
ext rs = rs -- "$1"
|
||||
|
||||
#--------------------------------------------
|
||||
# Audio without X
|
||||
#-------------------------------------------
|
||||
mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
|
||||
mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@"
|
||||
mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@"
|
||||
ext midi?, terminal, has wildmidi = wildmidi -- "$@"
|
||||
|
||||
#--------------------------------------------
|
||||
# Video/Audio with a GUI
|
||||
#-------------------------------------------
|
||||
mime ^video|audio, has gmplayer, X, flag f = gmplayer -- "$@"
|
||||
mime ^video|audio, has smplayer, X, flag f = smplayer "$@"
|
||||
mime ^video, has mpv, X, flag f = mpv -- "$@"
|
||||
mime ^video, has mpv, X, flag f = mpv --fs -- "$@"
|
||||
mime ^video, has mplayer2, X, flag f = mplayer2 -- "$@"
|
||||
mime ^video, has mplayer2, X, flag f = mplayer2 -fs -- "$@"
|
||||
mime ^video, has mplayer, X, flag f = mplayer -- "$@"
|
||||
mime ^video, has mplayer, X, flag f = mplayer -fs -- "$@"
|
||||
mime ^video|audio, has vlc, X, flag f = vlc -- "$@"
|
||||
mime ^video|audio, has totem, X, flag f = totem -- "$@"
|
||||
mime ^video|audio, has totem, X, flag f = totem --fullscreen -- "$@"
|
||||
|
||||
#--------------------------------------------
|
||||
# Video without X:
|
||||
#-------------------------------------------
|
||||
mime ^video, terminal, !X, has mpv = mpv -- "$@"
|
||||
mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@"
|
||||
mime ^video, terminal, !X, has mplayer = mplayer -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Documents
|
||||
#-------------------------------------------
|
||||
ext pdf, has llpp, X, flag f = llpp "$@"
|
||||
ext pdf, has zathura, X, flag f = zathura -- "$@"
|
||||
ext pdf, has mupdf, X, flag f = mupdf "$@"
|
||||
ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@"
|
||||
ext pdf, has apvlv, X, flag f = apvlv -- "$@"
|
||||
ext pdf, has xpdf, X, flag f = xpdf -- "$@"
|
||||
ext pdf, has evince, X, flag f = evince -- "$@"
|
||||
ext pdf, has atril, X, flag f = atril -- "$@"
|
||||
ext pdf, has okular, X, flag f = okular -- "$@"
|
||||
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
|
||||
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
|
||||
ext pdf, has open, X, flag f = open "$@"
|
||||
|
||||
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
|
||||
|
||||
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@"
|
||||
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
|
||||
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
|
||||
|
||||
ext djvu, has zathura,X, flag f = zathura -- "$@"
|
||||
ext djvu, has evince, X, flag f = evince -- "$@"
|
||||
ext djvu, has atril, X, flag f = atril -- "$@"
|
||||
ext djvu, has djview, X, flag f = djview -- "$@"
|
||||
|
||||
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Image Viewing:
|
||||
#-------------------------------------------
|
||||
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
||||
mime ^image/svg, has display, X, flag f = display -- "$@"
|
||||
|
||||
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
||||
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
|
||||
mime ^image, has feh, X, flag f = feh -- "$@"
|
||||
mime ^image, has mirage, X, flag f = mirage -- "$@"
|
||||
mime ^image, has ristretto, X, flag f = ristretto "$@"
|
||||
mime ^image, has eog, X, flag f = eog -- "$@"
|
||||
mime ^image, has eom, X, flag f = eom -- "$@"
|
||||
mime ^image, has nomacs, X, flag f = nomacs -- "$@"
|
||||
mime ^image, has geeqie, X, flag f = geeqie -- "$@"
|
||||
mime ^image, has gwenview, X, flag f = gwenview -- "$@"
|
||||
mime ^image, has gimp, X, flag f = gimp -- "$@"
|
||||
ext xcf, X, flag f = gimp -- "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Archives
|
||||
#-------------------------------------------
|
||||
|
||||
# avoid password prompt by providing empty password
|
||||
ext 7z, has 7z = 7z -p l "$@" | "$PAGER"
|
||||
# This requires atool
|
||||
ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | "$PAGER"
|
||||
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | "$PAGER"
|
||||
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@"
|
||||
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@"
|
||||
|
||||
# Listing and extracting archives without atool:
|
||||
ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | "$PAGER"
|
||||
ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done
|
||||
ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done
|
||||
ext zip, has unzip = unzip -l "$1" | less
|
||||
ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done
|
||||
ext ace, has unace = unace l "$1" | less
|
||||
ext ace, has unace = for file in "$@"; do unace e "$file"; done
|
||||
ext rar, has unrar = unrar l "$1" | less
|
||||
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
|
||||
|
||||
#-------------------------------------------
|
||||
# Flag t fallback terminals
|
||||
#-------------------------------------------
|
||||
# Rarely installed terminal emulators get higher priority; It is assumed that
|
||||
# if you install a rare terminal emulator, you probably use it.
|
||||
# gnome-terminal/konsole/xterm on the other hand are often installed as part of
|
||||
# a desktop environment or as fallback terminal emulators.
|
||||
mime ^ranger/x-terminal-emulator, has terminology = terminology -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has kitty = kitty -- "$@"
|
||||
mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has sakura = sakura -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has lilyterm = lilyterm -e "$@"
|
||||
#mime ^ranger/x-terminal-emulator, has cool-retro-term = cool-retro-term -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has termite = termite -x '"$@"'
|
||||
#mime ^ranger/x-terminal-emulator, has yakuake = yakuake -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has guake = guake -ne "$@"
|
||||
mime ^ranger/x-terminal-emulator, has tilda = tilda -c "$@"
|
||||
mime ^ranger/x-terminal-emulator, has st = st -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has terminator = terminator -x "$@"
|
||||
mime ^ranger/x-terminal-emulator, has urxvt = urxvt -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has pantheon-terminal = pantheon-terminal -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has lxterminal = lxterminal -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has mate-terminal = mate-terminal -x "$@"
|
||||
mime ^ranger/x-terminal-emulator, has xfce4-terminal = xfce4-terminal -x "$@"
|
||||
mime ^ranger/x-terminal-emulator, has konsole = konsole -e "$@"
|
||||
mime ^ranger/x-terminal-emulator, has gnome-terminal = gnome-terminal -- "$@"
|
||||
mime ^ranger/x-terminal-emulator, has xterm = xterm -e "$@"
|
||||
|
||||
#-------------------------------------------
|
||||
# Misc
|
||||
#-------------------------------------------
|
||||
label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1"
|
||||
label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
|
||||
label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
|
||||
label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
|
||||
|
||||
# Define the editor for non-text files + pager as last action
|
||||
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php|rs = ask
|
||||
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php|rs = ${VISUAL:-$EDITOR} -- "$@"
|
||||
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php|rs = "$PAGER" -- "$@"
|
||||
|
||||
# The very last action, so that it's never triggered accidentally, is to execute a program:
|
||||
mime application/x-executable = "$1"
|
|
@ -0,0 +1,216 @@
|
|||
#!/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.
|
||||
|
||||
# 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)
|
||||
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=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# Settings
|
||||
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
||||
HIGHLIGHT_TABWIDTH=8
|
||||
HIGHLIGHT_STYLE='pablo'
|
||||
PYGMENTIZE_STYLE='autumn'
|
||||
|
||||
|
||||
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
|
||||
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
|
||||
;; # Continue with next handler on failure
|
||||
esac
|
||||
}
|
||||
|
||||
handle_image() {
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
# SVG
|
||||
# image/svg+xml)
|
||||
# convert "${FILE_PATH}" "${IMAGE_CACHE_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 1920 \
|
||||
# -scale-to-y -1 \
|
||||
# -singlefile \
|
||||
# -jpeg -tiffcompression jpeg \
|
||||
# -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
|
||||
# && exit 6 || exit 1;;
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
handle_mime() {
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
# 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
|
||||
highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \
|
||||
--style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" && exit 5
|
||||
# pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5
|
||||
exit 2;;
|
||||
|
||||
# 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
|
|
@ -4,7 +4,8 @@ o:/home/tuan/.dotfiles/config
|
|||
m:/run/media/tuan
|
||||
a:/home/tuan/Documents/Arbeit
|
||||
l:/home/tuan/Local
|
||||
c:/home/tuan/workspace_l/Projects/Angular/favorites
|
||||
':/run/media/tuan/UWU
|
||||
c:/home/tuan/Documents/CTF/picoCTF
|
||||
':/home/tuan/.dotfiles/config
|
||||
t:/home/tuan/Templates
|
||||
w:/home/tuan/workspace_l/Projects
|
||||
k:/home/tuan/Documents/Fachschaft/Berufungskomission
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
#!/bin/bash
|
||||
KBD="";
|
||||
oldKBD="";
|
||||
while :
|
||||
do
|
||||
|
||||
function kb_routine {
|
||||
oldKBD="$KBD";
|
||||
case "$(xset -q | grep -A 0 'LED' | cut -c59-67)" in
|
||||
"00000000")
|
||||
|
@ -15,5 +13,22 @@ do
|
|||
if [ "$KBD" != "$oldKBD" ]; then
|
||||
notify-send "$KBD";
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function battery_routine {
|
||||
capacity=$(< /sys/class/power_supply/BAT0/capacity)
|
||||
if [[ $capacity -lt 5 ]]; then
|
||||
echo $capacity
|
||||
fi
|
||||
}
|
||||
|
||||
KBD="";
|
||||
oldKBD="";
|
||||
|
||||
while :
|
||||
do
|
||||
kb_routine
|
||||
battery_routine
|
||||
sleep 1;
|
||||
done
|
|
@ -45,3 +45,9 @@ Host goldi
|
|||
Port 22
|
||||
User goldi
|
||||
IdentityFile /mnt/veracrypt1/goldi
|
||||
|
||||
Host picoCTF
|
||||
HostName 2018shell4.picoctf.com
|
||||
Port 22
|
||||
User mos4
|
||||
IdentityFile "/home/tuan/Documents/CTF/picoCTF/2018/30 - ssh-keyz/picoCTF"
|
||||
|
|
|
@ -0,0 +1,606 @@
|
|||
#! perl -w
|
||||
# Author: Bert Muennich
|
||||
# Website: http://www.github.com/muennich/urxvt-perls
|
||||
# License: GPLv2
|
||||
|
||||
# Use keyboard shortcuts to select and copy text.
|
||||
|
||||
# Usage: put the following lines in your .Xdefaults/.Xresources:
|
||||
# URxvt.perl-ext-common: ...,keyboard-select
|
||||
# URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
||||
# The following line overwrites the default Meta-s binding and allows to
|
||||
# activate keyboard-select directly in backward search mode:
|
||||
# URxvt.keysym.M-s: perl:keyboard-select:search
|
||||
|
||||
# Use Meta-Escape to activate selection mode, then use the following keys:
|
||||
# h/j/k/l: Move cursor left/down/up/right (also with arrow keys)
|
||||
# g/G/0/^/$/H/M/L/f/F/;/,/w/W/b/B/e/E: More vi-like cursor movement keys
|
||||
# '/'/?: Start forward/backward search
|
||||
# n/N: Repeat last search, N: in reverse direction
|
||||
# Ctrl-f/b: Scroll down/up one screen
|
||||
# Ctrl-d/u: Scroll down/up half a screen
|
||||
# v/V/Ctrl-v: Toggle normal/linewise/blockwise selection
|
||||
# y/Return: Copy selection to primary buffer, Return: quit afterwards
|
||||
# Y: Copy selected lines to primary buffer or cursor line and quit
|
||||
# q/Escape: Quit keyboard selection mode
|
||||
|
||||
# Options:
|
||||
# URxvt.keyboard-select.clipboard: If true, copy to clipboard too
|
||||
|
||||
|
||||
use strict;
|
||||
|
||||
sub on_start{
|
||||
my ($self) = @_;
|
||||
|
||||
$self->{clipboard} = $self->x_resource_boolean('keyboard-select.clipboard');
|
||||
|
||||
$self->{patterns}{'w'} = qr/\w[^\w\s]|\W\w|\s\S/;
|
||||
$self->{patterns}{'W'} = qr/\s\S/;
|
||||
$self->{patterns}{'b'} = qr/.*(?:\w[^\w\s]|\W\w|\s\S)/;
|
||||
$self->{patterns}{'B'} = qr/.*\s\S/;
|
||||
$self->{patterns}{'e'} = qr/[^\w\s](?=\w)|\w(?=\W)|\S(?=\s|$)/;
|
||||
$self->{patterns}{'E'} = qr/\S(?=\s|$)/;
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub on_action {
|
||||
my ($self, $action) = @_;
|
||||
|
||||
on_user_command($self, "keyboard-select:" . $action);
|
||||
}
|
||||
|
||||
|
||||
sub on_user_command {
|
||||
my ($self, $cmd) = @_;
|
||||
|
||||
if (not $self->{active}) {
|
||||
if ($cmd eq 'keyboard-select:activate') {
|
||||
activate($self);
|
||||
} elsif ($cmd eq 'keyboard-select:search') {
|
||||
activate($self, 1);
|
||||
}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub key_press {
|
||||
my ($self, $event, $keysym, $char) = @_;
|
||||
my $key = chr($keysym);
|
||||
|
||||
if (lc($key) eq 'c' && $event->{state} & urxvt::ControlMask) {
|
||||
deactivate($self);
|
||||
} elsif ($self->{search}) {
|
||||
if ($keysym == 0xff1b) {
|
||||
if ($self->{search_mode}) {
|
||||
deactivate($self);
|
||||
} else {
|
||||
$self->{search} = '';
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($keysym == 0xff08) {
|
||||
$self->{search} = substr($self->{search}, 0, -1);
|
||||
if (not $self->{search} and $self->{search_mode}) {
|
||||
deactivate($self);
|
||||
} else {
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($keysym == 0xff0d ||
|
||||
(lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) {
|
||||
my $txt = substr($self->{search}, 1);
|
||||
if ($txt) {
|
||||
$self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ :
|
||||
qr/\Q$txt\E/i;
|
||||
} elsif ($self->{pattern}) {
|
||||
delete $self->{pattern};
|
||||
}
|
||||
$self->{search} = '';
|
||||
$self->screen_cur($self->{srhcr}, $self->{srhcc});
|
||||
if (not find_next($self)) {
|
||||
if ($self->{search_mode}) {
|
||||
deactivate($self);
|
||||
} else {
|
||||
status_area($self);
|
||||
}
|
||||
}
|
||||
} elsif (length($char) > 0) {
|
||||
$self->{search} .= $self->locale_decode($char);
|
||||
my $txt = substr($self->{search}, 1);
|
||||
if ($txt) {
|
||||
$self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ :
|
||||
qr/\Q$txt\E/i;
|
||||
} elsif ($self->{pattern}) {
|
||||
delete $self->{pattern};
|
||||
}
|
||||
$self->screen_cur($self->{srhcr}, $self->{srhcc});
|
||||
find_next($self);
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($self->{move_to}) {
|
||||
if ($keysym == 0xff1b) {
|
||||
$self->{move_to} = 0;
|
||||
status_area($self);
|
||||
} elsif (length($char) > 0) {
|
||||
$self->{move_to} = 0;
|
||||
$self->{patterns}{'f-1'} = qr/^.*\Q$key\E/;
|
||||
$self->{patterns}{'f+1'} = qr/^.+?\Q$key\E/;
|
||||
move_to($self, ';');
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($keysym == 0xff1b || lc($key) eq 'q') {
|
||||
deactivate($self);
|
||||
} elsif (lc($key) eq 'y' || $keysym == 0xff0d ||
|
||||
(lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) {
|
||||
my $quit = 0;
|
||||
if ($key eq 'Y' && $self->{select} ne 'l') {
|
||||
$quit = !$self->{select};
|
||||
toggle_select($self, 'l');
|
||||
}
|
||||
if ($self->{select}) {
|
||||
my ($br, $bc, $er, $ec) = calc_span($self);
|
||||
$ec = $self->line($er)->l if $self->{select} eq 'l';
|
||||
$self->selection_beg($br, $bc);
|
||||
$self->selection_end($er, $ec);
|
||||
$self->selection_make($event->{time}, $self->{select} eq 'b');
|
||||
if ($self->{clipboard}) {
|
||||
$self->selection($self->selection(), 1);
|
||||
$self->selection_grab($event->{time}, 1);
|
||||
}
|
||||
if (lc($key) eq 'y') {
|
||||
$self->selection_beg(1, 0);
|
||||
$self->selection_end(1, 0);
|
||||
$self->{select} = '';
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
} else {
|
||||
$quit = 1;
|
||||
}
|
||||
}
|
||||
if ($quit) {
|
||||
deactivate($self);
|
||||
}
|
||||
} elsif ($key eq 'V') {
|
||||
toggle_select($self, 'l');
|
||||
} elsif ($key eq 'v') {
|
||||
if ($event->{state} & urxvt::ControlMask) {
|
||||
toggle_select($self, 'b');
|
||||
} else {
|
||||
toggle_select($self, 'n');
|
||||
}
|
||||
} elsif ($key eq 'k' || $keysym == 0xff52) {
|
||||
move_cursor($self, 'k');
|
||||
} elsif ($key eq 'j' || $keysym == 0xff54) {
|
||||
move_cursor($self, 'j');
|
||||
} elsif ($key eq 'h' || $keysym == 0xff51) {
|
||||
move_cursor($self, 'h');
|
||||
} elsif ($key eq 'l' || $keysym == 0xff53) {
|
||||
move_cursor($self, 'l');
|
||||
} elsif ($keysym == 0xff57) {
|
||||
move_cursor($self, '$');
|
||||
} elsif ($keysym == 0xff50) {
|
||||
move_cursor($self, '^');
|
||||
} elsif ('gG0^$HML' =~ m/\Q$key\E/ ||
|
||||
('fbdu' =~ m/\Q$key\E/ && $event->{state} & urxvt::ControlMask)) {
|
||||
move_cursor($self, $key);
|
||||
} elsif (lc($key) eq 'f') {
|
||||
$self->{move_to} = 1;
|
||||
$self->{move_dir} = $key eq 'F' ? -1 : 1;
|
||||
status_area($self, $key);
|
||||
} elsif (';,wWbBeE' =~ m/\Q$key\E/) {
|
||||
move_to($self, $key);
|
||||
} elsif ($key eq '/' || $key eq '?') {
|
||||
$self->{search} = $key;
|
||||
$self->{search_dir} = $key eq '?' ? -1 : 1;
|
||||
($self->{srhcr}, $self->{srhcc}) = $self->screen_cur();
|
||||
status_area($self);
|
||||
} elsif (lc($key) eq 'n') {
|
||||
find_next($self, $self->{search_dir} * ($key eq 'N' ? -1 : 1));
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
sub move_cursor {
|
||||
my ($self, $key) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my $line = $self->line($cr);
|
||||
|
||||
if ($key eq 'k' && $line->beg > $self->top_row) {
|
||||
$cr = $line->beg - 1;
|
||||
} elsif ($key eq 'j' && $line->end < $self->nrow - 1) {
|
||||
$cr = $line->end + 1;
|
||||
} elsif ($key eq 'h' && $self->{offset} > 0) {
|
||||
$self->{offset} = $line->offset_of($cr, $cc) - 1;
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq 'l' && $self->{offset} < $line->l - 1) {
|
||||
++$self->{offset};
|
||||
} elsif ($key eq 'f' || $key eq 'd') {
|
||||
my $vs = $self->view_start() +
|
||||
($key eq 'd' ? $self->nrow / 2 : $self->nrow - 1);
|
||||
$vs = 0 if $vs > 0;
|
||||
$cr += $vs - $self->view_start($vs);
|
||||
} elsif ($key eq 'b' || $key eq 'u') {
|
||||
my $vs = $self->view_start() -
|
||||
($key eq 'u' ? $self->nrow / 2 : $self->nrow - 1);
|
||||
$vs = $self->top_row if $vs < $self->top_row;
|
||||
$cr += $vs - $self->view_start($vs);
|
||||
} elsif ($key eq 'g') {
|
||||
($cr, $self->{offset}) = ($self->top_row, 0);
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq 'G') {
|
||||
($cr, $self->{offset}) = ($self->nrow - 1, 0);
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq '0') {
|
||||
$self->{offset} = 0;
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq '^') {
|
||||
my $ltxt = $self->special_decode($line->t);
|
||||
while ($ltxt =~ s/^( *)\t/$1 . " " x (8 - length($1) % 8)/e) {}
|
||||
$self->{offset} = $ltxt =~ m/^ +/ ? $+[0] : 0;
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq '$') {
|
||||
my $co = $line->offset_of($cr, $cc);
|
||||
$self->{dollar} = $co + 1;
|
||||
$self->{offset} = $line->l - 1;
|
||||
} elsif ($key eq 'H') {
|
||||
$cr = $self->view_start();
|
||||
} elsif ($key eq 'M') {
|
||||
$cr = $self->view_start() + $self->nrow / 2;
|
||||
} elsif ($key eq 'L') {
|
||||
$cr = $self->view_start() + $self->nrow - 1;
|
||||
}
|
||||
|
||||
$line = $self->line($cr);
|
||||
$cc = $self->{dollar} || $self->{offset} >= $line->l ? $line->l - 1 :
|
||||
$self->{offset};
|
||||
$self->screen_cur($line->coord_of($cc));
|
||||
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub move_to {
|
||||
my ($self, $key) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my $line = $self->line($cr);
|
||||
my $offset = $self->{offset};
|
||||
my ($dir, $pattern);
|
||||
my ($wrap, $found) = (0, 0);
|
||||
|
||||
if ($key eq ';' || $key eq ',') {
|
||||
$dir = $self->{move_dir} * ($key eq ',' ? -1 : 1);
|
||||
$pattern = $self->{patterns}{sprintf('f%+d', $dir)};
|
||||
return if not $pattern;
|
||||
} else {
|
||||
if (lc($key) eq 'b') {
|
||||
$dir = -1;
|
||||
} else {
|
||||
$dir = 1;
|
||||
++$offset if lc($key) eq 'e';
|
||||
}
|
||||
$pattern = $self->{patterns}{$key};
|
||||
$wrap = 1;
|
||||
}
|
||||
|
||||
if ($dir > 0) {
|
||||
NEXTDOWN: my $text = substr($line->t, $offset);
|
||||
if ($text =~ m/$pattern/) {
|
||||
$offset += $+[0] - 1;
|
||||
$found = 1;
|
||||
} elsif ($wrap && $line->end + 1 < $self->nrow) {
|
||||
$cr = $line->end + 1;
|
||||
$line = $self->line($cr);
|
||||
$offset = 0;
|
||||
if (lc($key) eq 'e') {
|
||||
goto NEXTDOWN;
|
||||
} else {
|
||||
$found = 1;
|
||||
}
|
||||
}
|
||||
} elsif ($dir < 0) {
|
||||
NEXTUP: my $text = substr($line->t, 0, $offset);
|
||||
if ($text =~ m/$pattern/) {
|
||||
$offset += $+[0] - length($text) - 1;
|
||||
$found = 1;
|
||||
} elsif ($wrap) {
|
||||
if ($offset > 0) {
|
||||
$offset = 0;
|
||||
$found = 1;
|
||||
} elsif ($line->beg > $self->top_row) {
|
||||
$cr = $line->beg - 1;
|
||||
$line = $self->line($cr);
|
||||
$offset = $line->l;
|
||||
goto NEXTUP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($found) {
|
||||
$self->{dollar} = 0;
|
||||
$self->{offset} = $offset;
|
||||
$self->screen_cur($line->coord_of($offset));
|
||||
$self->want_refresh();
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub find_next {
|
||||
my ($self, $dir) = @_;
|
||||
|
||||
return if not $self->{pattern};
|
||||
$dir = $self->{search_dir} if not $dir;
|
||||
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my $line = $self->line($cr);
|
||||
my $offset = $line->offset_of($cr, $cc);
|
||||
my $text;
|
||||
my $found = 0;
|
||||
|
||||
++$offset if $dir > 0;
|
||||
|
||||
while (not $found) {
|
||||
if ($dir > 0) {
|
||||
$text = substr($line->t, $offset);
|
||||
if ($text =~ m/$self->{pattern}/) {
|
||||
$found = 1;
|
||||
$offset += $-[0];
|
||||
} else {
|
||||
last if $line->end >= $self->nrow;
|
||||
$line = $self->line($line->end + 1);
|
||||
$offset = 0;
|
||||
}
|
||||
} else {
|
||||
$text = substr($line->t, 0, $offset);
|
||||
if ($text =~ m/$self->{pattern}/) {
|
||||
$found = 1;
|
||||
$offset = $-[0] while $text =~ m/$self->{pattern}/g;
|
||||
} else {
|
||||
last if $line->beg <= $self->top_row;
|
||||
$line = $self->line($line->beg - 1);
|
||||
$offset = $line->l;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($found) {
|
||||
$self->{dollar} = 0;
|
||||
$self->{offset} = $offset;
|
||||
$self->screen_cur($line->coord_of($offset));
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
}
|
||||
|
||||
return $found;
|
||||
}
|
||||
|
||||
|
||||
sub tt_write {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
sub refresh {
|
||||
my ($self) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
|
||||
# scroll the current cursor position into visible area
|
||||
if ($cr < $self->view_start()) {
|
||||
$self->view_start($cr);
|
||||
} elsif ($cr >= $self->view_start() + $self->nrow) {
|
||||
$self->view_start($cr - $self->nrow + 1);
|
||||
}
|
||||
|
||||
if ($self->{select}) {
|
||||
my ($hl, $reverse_cursor);
|
||||
my ($br, $bc, $er, $ec) = calc_span($self);
|
||||
|
||||
if ($self->x_resource('highlightColor')) {
|
||||
$hl = urxvt::RS_Sel;
|
||||
$reverse_cursor = 0;
|
||||
} else {
|
||||
$hl = urxvt::RS_RVid;
|
||||
$reverse_cursor = $self->{select} ne 'l';
|
||||
}
|
||||
if ($self->{select} eq 'b') {
|
||||
my $co = $self->line($cr)->offset_of($cr, $cc);
|
||||
my $dollar = $self->{dollar} && $co >= $self->{dollar} - 1;
|
||||
|
||||
my $r = $br;
|
||||
while ($r <= $er) {
|
||||
my $line = $self->line($r);
|
||||
if ($bc < $line->l) {
|
||||
$ec = $line->l if $dollar;
|
||||
my ($br, $bc) = $line->coord_of($bc);
|
||||
my ($er, $ec) = $line->coord_of($ec <= $line->l ? $ec : $line->l);
|
||||
$self->scr_xor_span($br, $bc, $er, $ec, $hl);
|
||||
} elsif ($r == $cr) {
|
||||
$reverse_cursor = 0;
|
||||
}
|
||||
$r = $line->end + 1;
|
||||
}
|
||||
} else {
|
||||
$self->scr_xor_span($br, $bc, $er, $ec, $hl);
|
||||
}
|
||||
|
||||
if ($reverse_cursor) {
|
||||
# make the cursor visible again
|
||||
$self->scr_xor_span($cr, $cc, $cr, $cc + 1, $hl);
|
||||
}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub activate {
|
||||
my ($self, $search) = @_;
|
||||
|
||||
$self->{active} = 1;
|
||||
|
||||
$self->{select} = '';
|
||||
$self->{dollar} = 0;
|
||||
$self->{move_to} = 0;
|
||||
|
||||
if ($search) {
|
||||
$self->{search} = '?';
|
||||
$self->{search_dir} = -1;
|
||||
$self->{search_mode} = 1;
|
||||
} else {
|
||||
$self->{search} = '';
|
||||
$self->{search_mode} = 0;
|
||||
}
|
||||
|
||||
($self->{oldcr}, $self->{oldcc}) = $self->screen_cur();
|
||||
($self->{srhcr}, $self->{srhcc}) = $self->screen_cur();
|
||||
$self->{old_view_start} = $self->view_start();
|
||||
$self->{old_pty_ev_events} = $self->pty_ev_events(urxvt::EV_NONE);
|
||||
|
||||
my $line = $self->line($self->{oldcr});
|
||||
$self->{offset} = $line->offset_of($self->{oldcr}, $self->{oldcc});
|
||||
|
||||
$self->selection_beg(1, 0);
|
||||
$self->selection_end(1, 0);
|
||||
|
||||
$self->enable(
|
||||
key_press => \&key_press,
|
||||
refresh_begin => \&refresh,
|
||||
refresh_end => \&refresh,
|
||||
tt_write => \&tt_write,
|
||||
);
|
||||
|
||||
if ($self->{offset} >= $line->l) {
|
||||
$self->{offset} = $line->l > 0 ? $line->l - 1 : 0;
|
||||
$self->screen_cur($line->coord_of($self->{offset}));
|
||||
$self->want_refresh();
|
||||
}
|
||||
|
||||
$self->{overlay_len} = 0;
|
||||
status_area($self);
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub deactivate {
|
||||
my ($self) = @_;
|
||||
|
||||
$self->selection_beg(1, 0);
|
||||
$self->selection_end(1, 0);
|
||||
|
||||
delete $self->{overlay} if $self->{overlay};
|
||||
|
||||
$self->disable("key_press", "refresh_begin", "refresh_end", "tt_write");
|
||||
$self->screen_cur($self->{oldcr}, $self->{oldcc});
|
||||
$self->view_start($self->{old_view_start});
|
||||
$self->pty_ev_events($self->{old_pty_ev_events});
|
||||
|
||||
$self->want_refresh();
|
||||
|
||||
$self->{active} = 0;
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub status_area {
|
||||
my ($self, $extra) = @_;
|
||||
my ($stat, $stat_len);
|
||||
|
||||
if ($self->{search}) {
|
||||
$stat_len = $self->ncol;
|
||||
$stat = $self->{search} . ' ' x ($stat_len - length($self->{search}));
|
||||
} else {
|
||||
if ($self->{select}) {
|
||||
$stat = "-V" . ($self->{select} ne 'n' ? uc($self->{select}) : "") . "- ";
|
||||
}
|
||||
|
||||
if ($self->top_row == 0) {
|
||||
$stat .= "All";
|
||||
} elsif ($self->view_start() == $self->top_row) {
|
||||
$stat .= "Top";
|
||||
} elsif ($self->view_start() == 0) {
|
||||
$stat .= "Bot";
|
||||
} else {
|
||||
$stat .= sprintf("%2d%%",
|
||||
($self->top_row - $self->view_start) * 100 / $self->top_row);
|
||||
}
|
||||
|
||||
$stat = "$extra $stat" if $extra;
|
||||
$stat_len = length($stat);
|
||||
}
|
||||
|
||||
if (!$self->{overlay} || $self->{overlay_len} != $stat_len) {
|
||||
delete $self->{overlay} if $self->{overlay};
|
||||
$self->{overlay} = $self->overlay(-1, -1, $stat_len, 1,
|
||||
urxvt::OVERLAY_RSTYLE, 0);
|
||||
$self->{overlay_len} = $stat_len;
|
||||
}
|
||||
|
||||
$self->{overlay}->set(0, 0, $self->special_encode($stat));
|
||||
$self->{overlay}->show();
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub toggle_select {
|
||||
my ($self, $mode) = @_;
|
||||
|
||||
if ($self->{select} eq $mode) {
|
||||
$self->{select} = '';
|
||||
} else {
|
||||
if (not $self->{select}) {
|
||||
($self->{ar}, $self->{ac}) = $self->screen_cur();
|
||||
}
|
||||
$self->{select} = $mode;
|
||||
}
|
||||
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub calc_span {
|
||||
my ($self) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my ($br, $bc, $er, $ec);
|
||||
|
||||
if ($self->{select} eq 'b') {
|
||||
$br = $self->line($cr)->beg;
|
||||
$bc = $self->line($cr)->offset_of($cr, $cc);
|
||||
$er = $self->line($self->{ar})->beg;
|
||||
$ec = $self->line($self->{ar})->offset_of($self->{ar}, $self->{ac});
|
||||
($br, $er) = ($er, $br) if $br > $er;
|
||||
($bc, $ec) = ($ec, $bc) if $bc > $ec;
|
||||
} else {
|
||||
if ($cr < $self->{ar}) {
|
||||
($br, $bc, $er, $ec) = ($cr, $cc, $self->{ar}, $self->{ac});
|
||||
} elsif ($cr > $self->{ar}) {
|
||||
($br, $bc, $er, $ec) = ($self->{ar}, $self->{ac}, $cr, $cc);
|
||||
} else {
|
||||
($br, $er) = ($cr, $cr);
|
||||
($bc, $ec) = $cc < $self->{ac} ? ($cc, $self->{ac}) : ($self->{ac}, $cc);
|
||||
}
|
||||
}
|
||||
|
||||
if ($self->{select} eq 'l') {
|
||||
($br, $er) = ($self->line($br)->beg, $self->line($er)->end);
|
||||
($bc, $ec) = (0, $self->ncol);
|
||||
} else {
|
||||
++$ec;
|
||||
}
|
||||
|
||||
return ($br, $bc, $er, $ec);
|
||||
}
|
|
@ -1 +1 @@
|
|||
Pillow==5.0.0
|
||||
Pillow==6.2.1
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Colorizer.vmb: call delete('/home/tuan/.vim/plugin/ColorizerPlugin.vim')|call delete('/home/tuan/.vim/doc/Colorizer.txt')|call delete('/home/tuan/.vim/autoload/Colorizer.vim')
|
File diff suppressed because it is too large
Load Diff
395
vim/.vim/cursess
395
vim/.vim/cursess
|
@ -1,395 +0,0 @@
|
|||
let SessionLoad = 1
|
||||
if &cp | set nocp | endif
|
||||
map :!clear; python %
|
||||
noremap :tabedit
|
||||
nnoremap
|
||||
let s:cpo_save=&cpo
|
||||
set cpo&vim
|
||||
nnoremap <NL> <NL>
|
||||
nnoremap
|
||||
nnoremap
|
||||
nnoremap :later
|
||||
omap <silent> % <Plug>(MatchitOperationForward)
|
||||
xmap <silent> % <Plug>(MatchitVisualForward)
|
||||
nmap <silent> % <Plug>(MatchitNormalForward)
|
||||
nmap 0 ^
|
||||
nnoremap J :bn
|
||||
nnoremap K :bp
|
||||
map Q gq
|
||||
noremap Y "+y
|
||||
omap <silent> [% <Plug>(MatchitOperationMultiBackward)
|
||||
xmap <silent> [% <Plug>(MatchitVisualMultiBackward)
|
||||
nmap <silent> [% <Plug>(MatchitNormalMultiBackward)
|
||||
nnoremap \ctf :-read $HOME/.vim/skeleton/writeup.md
A
|
||||
omap <silent> ]% <Plug>(MatchitOperationMultiForward)
|
||||
xmap <silent> ]% <Plug>(MatchitVisualMultiForward)
|
||||
nmap <silent> ]% <Plug>(MatchitNormalMultiForward)
|
||||
xmap a% <Plug>(MatchitVisualTextObject)
|
||||
vmap gx <Plug>NetrwBrowseXVis
|
||||
nmap gx <Plug>NetrwBrowseX
|
||||
omap <silent> g% <Plug>(MatchitOperationBackward)
|
||||
xmap <silent> g% <Plug>(MatchitVisualBackward)
|
||||
nmap <silent> g% <Plug>(MatchitNormalBackward)
|
||||
vnoremap <silent> <Plug>NetrwBrowseXVis :call netrw#BrowseXVis()
|
||||
nnoremap <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netrw_gx : '<cfile>')),netrw#CheckIfRemote())
|
||||
noremap <F1> :ter
|
||||
vmap <silent> <Plug>(MatchitVisualTextObject) <Plug>(MatchitVisualMultiBackward)o<Plug>(MatchitVisualMultiForward)
|
||||
onoremap <silent> <Plug>(MatchitOperationMultiForward) :call matchit#MultiMatch("W", "o")
|
||||
onoremap <silent> <Plug>(MatchitOperationMultiBackward) :call matchit#MultiMatch("bW", "o")
|
||||
vnoremap <silent> <Plug>(MatchitVisualMultiForward) :call matchit#MultiMatch("W", "n")
m'gv``
|
||||
vnoremap <silent> <Plug>(MatchitVisualMultiBackward) :call matchit#MultiMatch("bW", "n")
m'gv``
|
||||
nnoremap <silent> <Plug>(MatchitNormalMultiForward) :call matchit#MultiMatch("W", "n")
|
||||
nnoremap <silent> <Plug>(MatchitNormalMultiBackward) :call matchit#MultiMatch("bW", "n")
|
||||
onoremap <silent> <Plug>(MatchitOperationBackward) :call matchit#Match_wrapper('',0,'o')
|
||||
onoremap <silent> <Plug>(MatchitOperationForward) :call matchit#Match_wrapper('',1,'o')
|
||||
vnoremap <silent> <Plug>(MatchitVisualBackward) :call matchit#Match_wrapper('',0,'v')
m'gv``
|
||||
vnoremap <silent> <Plug>(MatchitVisualForward) :call matchit#Match_wrapper('',1,'v')
m'gv``
|
||||
nnoremap <silent> <Plug>(MatchitNormalBackward) :call matchit#Match_wrapper('',0,'n')
|
||||
nnoremap <silent> <Plug>(MatchitNormalForward) :call matchit#Match_wrapper('',1,'n')
|
||||
inoremap u
|
||||
inoremap A" Ä
|
||||
inoremap O" Ö
|
||||
inoremap U" Ü
|
||||
imap \ifm if __name__ == '__main__':
|
||||
inoremap \e €
|
||||
inoremap \s ß
|
||||
inoremap a" ä
|
||||
inoremap o" ö
|
||||
inoremap u" ü
|
||||
let &cpo=s:cpo_save
|
||||
unlet s:cpo_save
|
||||
set autowrite
|
||||
set backspace=indent,eol,start
|
||||
set backupdir=~/.cache/vim/backup//
|
||||
set directory=~/.cache/vim/swap//
|
||||
set display=truncate
|
||||
set expandtab
|
||||
set fileencodings=ucs-bom,utf-8,default,latin1
|
||||
set helplang=en
|
||||
set history=200
|
||||
set hlsearch
|
||||
set incsearch
|
||||
set langnoremap
|
||||
set nolangremap
|
||||
set mouse=a
|
||||
set nrformats=bin,hex
|
||||
set ruler
|
||||
set runtimepath=~/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim81,/usr/share/vim/vim81/pack/dist/opt/matchit,/usr/share/vim/vimfiles/after,~/.vim/after
|
||||
set scrolloff=5
|
||||
set shiftwidth=4
|
||||
set showcmd
|
||||
set smartcase
|
||||
set softtabstop=4
|
||||
set splitbelow
|
||||
set splitright
|
||||
set statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v]
|
||||
set suffixes=.bak,~,.o,.info,.swp,.aux,.bbl,.blg,.brf,.cb,.dvi,.idx,.ilg,.ind,.inx,.jpg,.log,.out,.png,.toc
|
||||
set tabstop=4
|
||||
set ttimeout
|
||||
set ttimeoutlen=100
|
||||
set undodir=~/.cache/vim/undo//
|
||||
set wildignore=*.pyc
|
||||
set wildmenu
|
||||
let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0
|
||||
let v:this_session=expand("<sfile>:p")
|
||||
silent only
|
||||
silent tabonly
|
||||
cd ~/workspace_l/discordbot
|
||||
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
|
||||
let s:wipebuf = bufnr('%')
|
||||
endif
|
||||
set shortmess=aoO
|
||||
argglobal
|
||||
%argdel
|
||||
$argadd main.py
|
||||
set stal=2
|
||||
tabnew
|
||||
tabrewind
|
||||
edit main.py
|
||||
set splitbelow splitright
|
||||
wincmd t
|
||||
set winminheight=0
|
||||
set winheight=1
|
||||
set winminwidth=0
|
||||
set winwidth=1
|
||||
argglobal
|
||||
setlocal keymap=
|
||||
setlocal noarabic
|
||||
setlocal autoindent
|
||||
setlocal backupcopy=
|
||||
setlocal balloonexpr=
|
||||
setlocal nobinary
|
||||
setlocal nobreakindent
|
||||
setlocal breakindentopt=
|
||||
setlocal bufhidden=
|
||||
setlocal buflisted
|
||||
setlocal buftype=
|
||||
setlocal nocindent
|
||||
setlocal cinkeys=0{,0},0),0],:,!^F,o,O,e
|
||||
setlocal cinoptions=
|
||||
setlocal cinwords=if,else,while,do,for,switch
|
||||
setlocal colorcolumn=
|
||||
setlocal comments=b:#,fb:-
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal complete=.,w,b,u,t,i
|
||||
setlocal concealcursor=
|
||||
setlocal conceallevel=0
|
||||
setlocal completefunc=
|
||||
setlocal nocopyindent
|
||||
setlocal cryptmethod=
|
||||
setlocal nocursorbind
|
||||
setlocal nocursorcolumn
|
||||
setlocal nocursorline
|
||||
setlocal define=
|
||||
setlocal dictionary=
|
||||
setlocal nodiff
|
||||
setlocal equalprg=
|
||||
setlocal errorformat=
|
||||
setlocal expandtab
|
||||
if &filetype != 'python'
|
||||
setlocal filetype=python
|
||||
endif
|
||||
setlocal fixendofline
|
||||
setlocal foldcolumn=0
|
||||
setlocal foldenable
|
||||
setlocal foldexpr=0
|
||||
setlocal foldignore=#
|
||||
setlocal foldlevel=0
|
||||
setlocal foldmarker={{{,}}}
|
||||
setlocal foldmethod=manual
|
||||
setlocal foldminlines=1
|
||||
setlocal foldnestmax=20
|
||||
setlocal foldtext=foldtext()
|
||||
setlocal formatexpr=
|
||||
setlocal formatoptions=tcq
|
||||
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
||||
setlocal formatprg=
|
||||
setlocal grepprg=
|
||||
setlocal iminsert=0
|
||||
setlocal imsearch=-1
|
||||
setlocal include=^\\s*\\(from\\|import\\)
|
||||
setlocal includeexpr=substitute(substitute(substitute(v:fname,b:grandparent_match,b:grandparent_sub,''),b:parent_match,b:parent_sub,''),b:child_match,b:child_sub,'g')
|
||||
setlocal indentexpr=GetPythonIndent(v:lnum)
|
||||
setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,<:>,=elif,=except
|
||||
setlocal noinfercase
|
||||
setlocal iskeyword=@,48-57,_,192-255
|
||||
setlocal keywordprg=pydoc
|
||||
setlocal nolinebreak
|
||||
setlocal nolisp
|
||||
setlocal lispwords=
|
||||
setlocal nolist
|
||||
setlocal makeencoding=
|
||||
setlocal makeprg=
|
||||
setlocal matchpairs=(:),{:},[:]
|
||||
setlocal modeline
|
||||
setlocal modifiable
|
||||
setlocal nrformats=bin,hex
|
||||
setlocal nonumber
|
||||
setlocal numberwidth=4
|
||||
setlocal omnifunc=python3complete#Complete
|
||||
setlocal path=
|
||||
setlocal nopreserveindent
|
||||
setlocal nopreviewwindow
|
||||
setlocal quoteescape=\\
|
||||
setlocal noreadonly
|
||||
setlocal norelativenumber
|
||||
setlocal norightleft
|
||||
setlocal rightleftcmd=search
|
||||
setlocal noscrollbind
|
||||
setlocal scrolloff=-1
|
||||
setlocal shiftwidth=4
|
||||
setlocal noshortname
|
||||
setlocal sidescrolloff=-1
|
||||
setlocal signcolumn=auto
|
||||
setlocal nosmartindent
|
||||
setlocal softtabstop=4
|
||||
setlocal nospell
|
||||
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
||||
setlocal spellfile=
|
||||
setlocal spelllang=en
|
||||
setlocal statusline=
|
||||
setlocal suffixesadd=.py
|
||||
setlocal swapfile
|
||||
setlocal synmaxcol=3000
|
||||
if &syntax != 'python'
|
||||
setlocal syntax=python
|
||||
endif
|
||||
setlocal tabstop=8
|
||||
setlocal tagcase=
|
||||
setlocal tagfunc=
|
||||
setlocal tags=
|
||||
setlocal termwinkey=
|
||||
setlocal termwinscroll=10000
|
||||
setlocal termwinsize=
|
||||
setlocal textwidth=0
|
||||
setlocal thesaurus=
|
||||
setlocal noundofile
|
||||
setlocal undolevels=-123456
|
||||
setlocal varsofttabstop=
|
||||
setlocal vartabstop=
|
||||
setlocal wincolor=
|
||||
setlocal nowinfixheight
|
||||
setlocal nowinfixwidth
|
||||
setlocal wrap
|
||||
setlocal wrapmargin=0
|
||||
silent! normal! zE
|
||||
let s:l = 10 - ((9 * winheight(0) + 28) / 57)
|
||||
if s:l < 1 | let s:l = 1 | endif
|
||||
exe s:l
|
||||
normal! zt
|
||||
10
|
||||
normal! 0
|
||||
tabnext
|
||||
edit requirements.txt
|
||||
set splitbelow splitright
|
||||
wincmd t
|
||||
set winminheight=0
|
||||
set winheight=1
|
||||
set winminwidth=0
|
||||
set winwidth=1
|
||||
argglobal
|
||||
setlocal keymap=
|
||||
setlocal noarabic
|
||||
setlocal noautoindent
|
||||
setlocal backupcopy=
|
||||
setlocal balloonexpr=
|
||||
setlocal nobinary
|
||||
setlocal nobreakindent
|
||||
setlocal breakindentopt=
|
||||
setlocal bufhidden=
|
||||
setlocal buflisted
|
||||
setlocal buftype=
|
||||
setlocal nocindent
|
||||
setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
||||
setlocal cinoptions=
|
||||
setlocal cinwords=if,else,while,do,for,switch
|
||||
setlocal colorcolumn=
|
||||
setlocal comments=fb:-,fb:*,n:>
|
||||
setlocal commentstring=
|
||||
setlocal complete=.,w,b,u,t,i
|
||||
setlocal concealcursor=
|
||||
setlocal conceallevel=0
|
||||
setlocal completefunc=
|
||||
setlocal nocopyindent
|
||||
setlocal cryptmethod=
|
||||
setlocal nocursorbind
|
||||
setlocal nocursorcolumn
|
||||
setlocal nocursorline
|
||||
setlocal define=
|
||||
setlocal dictionary=
|
||||
setlocal nodiff
|
||||
setlocal equalprg=
|
||||
setlocal errorformat=
|
||||
setlocal expandtab
|
||||
if &filetype != 'text'
|
||||
setlocal filetype=text
|
||||
endif
|
||||
setlocal fixendofline
|
||||
setlocal foldcolumn=0
|
||||
setlocal foldenable
|
||||
setlocal foldexpr=0
|
||||
setlocal foldignore=#
|
||||
setlocal foldlevel=0
|
||||
setlocal foldmarker={{{,}}}
|
||||
setlocal foldmethod=manual
|
||||
setlocal foldminlines=1
|
||||
setlocal foldnestmax=20
|
||||
setlocal foldtext=foldtext()
|
||||
setlocal formatexpr=
|
||||
setlocal formatoptions=tcq
|
||||
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
||||
setlocal formatprg=
|
||||
setlocal grepprg=
|
||||
setlocal iminsert=0
|
||||
setlocal imsearch=-1
|
||||
setlocal include=
|
||||
setlocal includeexpr=
|
||||
setlocal indentexpr=
|
||||
setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
||||
setlocal noinfercase
|
||||
setlocal iskeyword=@,48-57,_,192-255
|
||||
setlocal keywordprg=
|
||||
setlocal nolinebreak
|
||||
setlocal nolisp
|
||||
setlocal lispwords=
|
||||
setlocal nolist
|
||||
setlocal makeencoding=
|
||||
setlocal makeprg=
|
||||
setlocal matchpairs=(:),{:},[:]
|
||||
setlocal modeline
|
||||
setlocal modifiable
|
||||
setlocal nrformats=bin,hex
|
||||
setlocal nonumber
|
||||
setlocal numberwidth=4
|
||||
setlocal omnifunc=
|
||||
setlocal path=
|
||||
setlocal nopreserveindent
|
||||
setlocal nopreviewwindow
|
||||
setlocal quoteescape=\\
|
||||
setlocal noreadonly
|
||||
setlocal norelativenumber
|
||||
setlocal norightleft
|
||||
setlocal rightleftcmd=search
|
||||
setlocal noscrollbind
|
||||
setlocal scrolloff=-1
|
||||
setlocal shiftwidth=4
|
||||
setlocal noshortname
|
||||
setlocal sidescrolloff=-1
|
||||
setlocal signcolumn=auto
|
||||
setlocal nosmartindent
|
||||
setlocal softtabstop=4
|
||||
setlocal nospell
|
||||
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
||||
setlocal spellfile=
|
||||
setlocal spelllang=en
|
||||
setlocal statusline=
|
||||
setlocal suffixesadd=
|
||||
setlocal swapfile
|
||||
setlocal synmaxcol=3000
|
||||
if &syntax != 'text'
|
||||
setlocal syntax=text
|
||||
endif
|
||||
setlocal tabstop=4
|
||||
setlocal tagcase=
|
||||
setlocal tagfunc=
|
||||
setlocal tags=
|
||||
setlocal termwinkey=
|
||||
setlocal termwinscroll=10000
|
||||
setlocal termwinsize=
|
||||
setlocal textwidth=0
|
||||
setlocal thesaurus=
|
||||
setlocal noundofile
|
||||
setlocal undolevels=-123456
|
||||
setlocal varsofttabstop=
|
||||
setlocal vartabstop=
|
||||
setlocal wincolor=
|
||||
setlocal nowinfixheight
|
||||
setlocal nowinfixwidth
|
||||
setlocal wrap
|
||||
setlocal wrapmargin=0
|
||||
silent! normal! zE
|
||||
let s:l = 2 - ((1 * winheight(0) + 28) / 57)
|
||||
if s:l < 1 | let s:l = 1 | endif
|
||||
exe s:l
|
||||
normal! zt
|
||||
2
|
||||
normal! 011|
|
||||
tabnext 2
|
||||
set stal=1
|
||||
badd +0 main.py
|
||||
badd +0 requirements.txt
|
||||
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0
|
||||
silent exe 'bwipe ' . s:wipebuf
|
||||
endif
|
||||
unlet! s:wipebuf
|
||||
set winheight=1 winwidth=20 shortmess=filnxtToOS
|
||||
set winminheight=1 winminwidth=1
|
||||
let s:sx = expand("<sfile>:p:r")."x.vim"
|
||||
if file_readable(s:sx)
|
||||
exe "source " . fnameescape(s:sx)
|
||||
endif
|
||||
let &so = s:so_save | let &siso = s:siso_save
|
||||
nohlsearch
|
||||
doautoall SessionLoadPost
|
||||
unlet SessionLoad
|
||||
" vim: set ft=vim :
|
|
@ -0,0 +1,520 @@
|
|||
*Colorizer.txt* A plugin to color colornames and codes
|
||||
|
||||
Author: Christian Brabandt <cb@256bit.org>
|
||||
Version: 0.11 Thu, 15 Jan 2015 21:49:17 +0100
|
||||
Copyright: (c) 2009-2013 by Christian Brabandt
|
||||
The VIM LICENSE applies to Colorizer.txt
|
||||
(see |copyright|) except use ColorizerPlugin instead of "Vim".
|
||||
NO WARRANTY, EXPRESS OR IMPLIED. USE AT-YOUR-OWN-RISK.
|
||||
|
||||
==============================================================================
|
||||
Contents *Colorizer*
|
||||
==============================================================================
|
||||
|
||||
1. Colorizer Manual.............................|Colorizer-manual|
|
||||
1.1 :ColorHighlight......................|:ColorHighlight|
|
||||
1.2 :ColorClear..........................|:ColorClear|
|
||||
1.3 :RGB2Term............................|:RGB2Term|
|
||||
1.4 :HSL2RGB.............................|:HSL2RGB|
|
||||
1.5 :Term2RGB............................|:Term2RGB|
|
||||
1.6 :ColorContrast.......................|:ColorContrast|
|
||||
1.7 :ColorSwapFgBg.......................|:ColorSwapFgBg|
|
||||
1.8 :ColorToggle.........................|:ColorToggle|
|
||||
2. Configuration................................|Colorizer-config|
|
||||
2.1 Automatic loading...................|Colorizer-auto|
|
||||
2.2 Automatically highlight filetypes...|Colorizer-hl-ft|
|
||||
2.3 Skip coloring comments..............|Colorizer-comments|
|
||||
2.4 Adjust the contrast.................|Colorizer-contrast|
|
||||
2.5 Highlight colornames................|Colorizer-hl-names|
|
||||
2.6 Use X11 colornames..................|Colorizer-names|
|
||||
2.7 Use syntax highlighting.............|Colorizer-syntax|
|
||||
2.8 Specify patterns to highlight.......|Colorizer-pattern|
|
||||
2.9 Colorizing Taskwarrior files........|Colorizer-taskwarrior-files|
|
||||
2.10 Colorizing vim syntax files.........|Colorizer-vim-files|
|
||||
2.11 Use custom colornames...............|Colorizer-custom-colornames|
|
||||
2.12 Colorizing :hi statements...........|Colorizer-vim-hi|
|
||||
3. Colorizer Mappings...........................|Colorizer-maps|
|
||||
4. Colorizer Tips...............................|Colorizer-tips|
|
||||
5. Colorizer Feedback...........................|Colorizer-feedback|
|
||||
6. Colorizer History............................|Colorizer-history|
|
||||
|
||||
==============================================================================
|
||||
1. Colorizer Manual *Colorizer-manual*
|
||||
==============================================================================
|
||||
|
||||
Functionality
|
||||
|
||||
This plugin is based on the css_color plugin by Nikolaus Hofer. The idea is to
|
||||
highlight color names and codes in the same color that they represent.
|
||||
|
||||
The plugin understands the W3C colors (used for CSS files for example), the
|
||||
color names from the X11 Window System and also codes in hex notation, like
|
||||
#FF0000 (which represents Red in the RGB color system). Additionally, it
|
||||
supports the CSS color specifications, e.g. rgb(RR,GG,BB) color representation
|
||||
in either absolute or percentage values and also the HVL color
|
||||
representation like hvl(H,V,L)
|
||||
|
||||
It works best in the gui version of Vim, but the plugin also supports 256 and
|
||||
88 color terminals and translates the colors to those supported by the
|
||||
terminal. 16 and 8 color terminals should work theoretically too, but have not
|
||||
been widely tested. Note that translating the colors to the terminal might
|
||||
impose a performance penalty, depending on the terminal type and the number of
|
||||
matches in the file.
|
||||
|
||||
This plugin defines the following commands:
|
||||
|
||||
*:ColorHighlight*
|
||||
:[range]ColorHighlight[!] [args]
|
||||
|
||||
Scan the lines given by [range] for color code names and highlight those. If
|
||||
[range] is omitted, the whole file will be scanned. If the ! is used, the
|
||||
plugin will redefine all highlighting groups. If ! is not used, it will
|
||||
skip patterns, that would take too long and make Vim unresponsive.
|
||||
|
||||
[args] can by any of "syntax" or "match". "syntax" means to convert the
|
||||
highlighting to syntax highlighting. This is useful, so a plugin like
|
||||
|2html.vim| can convert the colors correctly to HTML. The default is
|
||||
"match", which uses the |matchadd()| function. (Prepending "no" is
|
||||
supported and will disable that setting and use the opposite).
|
||||
|
||||
*:ColorClear*
|
||||
:ColorClear Turn off color highlighting.
|
||||
|
||||
*:RGB2Term*
|
||||
:RGB2Term <color> Translate the color code given as argument to
|
||||
the closest color that can be displayed in the
|
||||
terminal. The color must be given in the
|
||||
format #RRGGBB (the hex format of the colors red,
|
||||
green and blue (the '#' is optional), or
|
||||
alternatively like rgb(X,X,X)
|
||||
|
||||
Uses the number of colors your terminal is capable
|
||||
of (or 256 colors for gVim).
|
||||
|
||||
*:HSL2RGB*
|
||||
:HSL2RGB hsl(h,v,l) Translate the HVL color defined by the string
|
||||
'hsl(h,v%,l%)' into a color that the current
|
||||
terminal can display. Note that the color must be
|
||||
given in the format 'hsl(HH, V, L)' where HH
|
||||
defines the Hue as absolute value between 0 and
|
||||
255 and V and L represent a percentage for value
|
||||
and Lightness.
|
||||
|
||||
*:Term2RGB*
|
||||
:Term2RGB number Translate terminal color <number> to an RGB color
|
||||
(using the xterm 256 color cube).
|
||||
|
||||
*:ColorContrast*
|
||||
:ColorContrast Switch between all different color contrast
|
||||
settings (foreground colors).
|
||||
*:ColorSwapFgBg*
|
||||
:ColorSwapFgBg Switch between foreground and background colors.
|
||||
This will toggle in 3 ways. From Swapping
|
||||
foreground and background colors, to only
|
||||
highlighting the foreground color back to normal
|
||||
foreground background color.
|
||||
|
||||
*:ColorToggle*
|
||||
:ColorToggle Switch between highlighting colors and no
|
||||
highlighting.
|
||||
|
||||
==============================================================================
|
||||
2 Colorizer Configuration *Colorizer-config*
|
||||
==============================================================================
|
||||
|
||||
2.1 Automatic loading *Colorizer-auto*
|
||||
---------------------
|
||||
|
||||
The Colorizer plugin can be configured to automatically load when opening a
|
||||
new file. Note that this might slow down the loading process, especially on
|
||||
the terminal. To enable this, simply set the variable 'g:colorizer_auto_color'
|
||||
to 1, e.g. by defining it in your |.vimrc| >
|
||||
|
||||
:let g:colorizer_auto_color = 1
|
||||
<
|
||||
(Not recommended, see below at |Colorizer-hl-ft| for the preferred way)
|
||||
|
||||
2.2 Automatically highlight filetypes *Colorizer-hl-ft*
|
||||
-------------------------------------
|
||||
|
||||
If you want to have certain filetypes automatically highlighted, you can use
|
||||
the variable g:colorizer_auto_filetype, e.g. to enable highlighting for
|
||||
HTML and CSS files by default, add the following to your |.vimrc|: >
|
||||
|
||||
:let g:colorizer_auto_filetype='css,html'
|
||||
<
|
||||
After restarting Vim, the plugin will become active whenever the filetype is
|
||||
set to either html or css.
|
||||
|
||||
2.3 Skip coloring comments *Colorizer-comments*
|
||||
--------------------------
|
||||
|
||||
You can skip comments from being colored by setting the variable
|
||||
g:colorizer_skip_comments to 1: >
|
||||
|
||||
:let g:colorizer_skip_comments = 1
|
||||
<
|
||||
The plugin will skip all matches of color codes and names that appear inside
|
||||
comments (this only works when syntax highlighting is enabled |:syn-on|)
|
||||
|
||||
Note however, that if the same color is used inside comments and outside
|
||||
comments, it will also be highlighted inside the comments, because
|
||||
coloring is done matching only the color pattern and once this is done outside
|
||||
of comments, this will also match inside comments.
|
||||
|
||||
2.4 Adjust the contrast *Colorizer-contrast*
|
||||
-----------------------
|
||||
|
||||
Colorizer can be adjusted to blur the contrast between foreground and
|
||||
background color. For this, the variable 'g:colorizer_fgcontrast' can be used.
|
||||
It can be given any value between -1 and 2 with 2 being the default. Each
|
||||
smaller value will decrease the contrast a little bit, with -1 being special,
|
||||
as there is the foreground color equals the background color. Use
|
||||
|:ColorContrast| to cycle through the different values.
|
||||
|
||||
2.5 Highlight colornames *Colorizer-hl-names*
|
||||
------------------------
|
||||
|
||||
If for any reason you don't want the plugin to highlight colornames, you can
|
||||
prevent this by setting the g:colorizer_colornames variable to 0, e.g. put >
|
||||
|
||||
:let g:colorizer_colornames = 0
|
||||
<
|
||||
into your |.vimrc|
|
||||
|
||||
2.6 Use X11 colornames *Colorizer-names*
|
||||
----------------------
|
||||
|
||||
Colorizer can be configured to support all color names defined by the X11
|
||||
Window System. By default it only supports the colors defined by the W3C for
|
||||
the CSS specification. To use the X11 color names, set the variable
|
||||
'g:colorzer_x11_names' to 1, e,g. put in your |.vimrc| >
|
||||
|
||||
let g:colorizer_x11_names = 1
|
||||
<
|
||||
|
||||
2.7 Use syntax highlighting *Colorizer-syntax*
|
||||
---------------------------
|
||||
|
||||
The plugin by default uses the |matchadd()| functions for highlighting colors
|
||||
on the fly. Unfortunately, this is a problem, if you want to have the result
|
||||
successfully transformed to a HTML file using the |2html.vim| plugin. Therefore,
|
||||
the Colorizer plugin can also convert the highlighting to correct syntax
|
||||
highlighting. Use either the >
|
||||
|
||||
:ColorHighlight syntax
|
||||
<
|
||||
command (see |:ColorHighlight|) or set the variable 'g:colorizer_syntax' to 1,
|
||||
e.g. in your |.vimrc| put >
|
||||
|
||||
let g:colorizer_syntax = 1
|
||||
<
|
||||
|
||||
2.8 Specify pattern to highlight *Colorizer-pattern*
|
||||
--------------------------------
|
||||
|
||||
By default, Colorizer detects the following patterns and highlights them as
|
||||
hex colors (for better readability it is separated into 3 parts): >
|
||||
|
||||
# %(\x\{3}\|\x\{6}\) \%(\>\|[-_]\)\@=/'
|
||||
<
|
||||
|
||||
This means it always looks for a '#' followed by either a 3 or 6 hexadecimal
|
||||
digits denoting the RGB hex color codes, followed by either the word-boundary
|
||||
(|/\>|), a hyphen or a underscore. But only the first and middle part will be
|
||||
highlighted (i.e. the RGB color codes).
|
||||
|
||||
You can of course specify a different pattern for your needs by setting the
|
||||
g:colorizer_hex_pattern variable. e.g. to display '#RRGGBB' and have all of it
|
||||
highlighted, use >
|
||||
|
||||
let g:colorizer_hex_pattern = ['#', '\%(\x\{3}\|\x\{6}\)', '']
|
||||
|
||||
2.9 Colorizing Taskwarrior files *Colorizer-taskwarrior-files*
|
||||
--------------------------------
|
||||
|
||||
For taskwarrior files, this plugin can also highlight those colors. By
|
||||
default, this will only work, if the file name ends with '.theme'
|
||||
|
||||
For an example, see this website:
|
||||
http://taskwarrior.org/news/182
|
||||
|
||||
2.10 Colorizing vim syntax files *Colorizer-vim-files*
|
||||
--------------------------------
|
||||
|
||||
Colorizer also supports highlighting vim syntax files. For this to work, the
|
||||
'filetype' must be set to vim, then the plugin tries to identify the colors
|
||||
and highlight them.
|
||||
|
||||
2.11 Use custom colornames *Colorizer-custom-colornames*
|
||||
--------------------------
|
||||
|
||||
You can add separate colornames to be colored. For this to work, set the
|
||||
variable g:colorizer_custom_colors to your liking, e.g. like this: >
|
||||
|
||||
let g:colorizer_custom_colors = { 'blue': '#ff0000'}
|
||||
|
||||
Guess what, this will color the word blue in red.
|
||||
|
||||
2.12 Colorizing :highlight statements *Colorizer-vim-hi*
|
||||
-------------------------------------
|
||||
|
||||
Colorizer also supports highlighting |:hi| statements, that are used by vim
|
||||
colorschemes and syntax files as well as a dump of the |:hi| command
|
||||
To colorizer :hi statements, the 'filetype' must be set to vim, while for :hi
|
||||
dumps, the 'filetype' must be empty.
|
||||
|
||||
==============================================================================
|
||||
3. Colorizer Mappings *Colorizer-maps*
|
||||
==============================================================================
|
||||
|
||||
By default, the Colorizer plugin does not map any key, so that it won't
|
||||
pollute the global mapping namespace. If you want however to have the
|
||||
following default maps set up, set the global variable g:colorizer_auto_map
|
||||
in your |.vimrc| like this: >
|
||||
|
||||
:let g:colorizer_auto_map = 1
|
||||
|
||||
<
|
||||
This will set up the following key mappings (if they are not already taken):
|
||||
|
||||
Keys Name Function
|
||||
---- ---- --------
|
||||
<Leader>cC <Plug>Colorizer Toggle highlighting of Colors. In visual
|
||||
mode it only highlights the colors in the
|
||||
selected region (normal and visual mode).
|
||||
<Leader>cT <Plug>ColorContrast Cycle through contrast setting
|
||||
|:ColorContrast| (normal and visual mode)
|
||||
<Leader>cF <Plug>ColorFgBg Toggle foreground and background color
|
||||
|:ColorSwapFgBg|
|
||||
|
||||
It uses the prefix <leader>c to set all functionality up. By default, <Leader>
|
||||
is defined as '\' (|<Leader>|). Use the name provided in the second column to
|
||||
map the function to a different key.
|
||||
|
||||
==============================================================================
|
||||
4. Colorizer Tips *Colorizer-tips*
|
||||
==============================================================================
|
||||
|
||||
You can enable the plugin to be loaded for certain filetypes automatically.
|
||||
This makes sense for example for CSS files or HTML files. To do so, create the
|
||||
following autocommand in your |.vimrc| >
|
||||
|
||||
:au BufNewFile,BufRead *.css,*.html,*.htm :ColorHighlight!
|
||||
<
|
||||
This will automatically highlight all existing color codes and names if you
|
||||
edit either a HTML file or a CSS file. Note that this does not update the
|
||||
highlighting, after you have been changing the file.
|
||||
|
||||
The recommended way to do this is to use the g:colorizer_auto_filetype
|
||||
variable and set this to the desired filetypes. |Colorizer-hl-ft|
|
||||
|
||||
*Colorizer-slowdown*
|
||||
----------------
|
||||
Slow performance
|
||||
----------------
|
||||
Depending on your file, any of the highlighting functions might cause an
|
||||
performance decrease. This can be analyed, by setting the variable
|
||||
g:colorizer_debug to 1 in e.g. your |.vimrc| like this: >
|
||||
|
||||
:let g:colorizer_debug = 1
|
||||
<
|
||||
The next time, you call |:ColorHighlight|, the plugin will output runtime
|
||||
statistics, from which you can see, which function caused the slowdowns.
|
||||
Consider this output:
|
||||
|
||||
Colorstatistics at: 12:20 `
|
||||
Duration: 0.034110 `
|
||||
colornames: 0.030865s `
|
||||
hex: 0.000968s `
|
||||
hsla: 0.000350s `
|
||||
rgb: 0.000354s `
|
||||
rgba: 0.000491s `
|
||||
taskwarrior: 0.000020s `
|
||||
term: 0.000219s `
|
||||
term_conceal: 0.000105s `
|
||||
vimcolors: 0.000036s `
|
||||
vimhighl_dump: 0.000025s `
|
||||
vimhighlight: 0.000025s `
|
||||
|
||||
From this you can see, that the colorname highlighting caused the largest
|
||||
slowdown, it took 0.03 seconds to complete. This is expected, as the
|
||||
colornames pattern is long and contains many branches.
|
||||
|
||||
Functions with a value less then 100 have probably been skipped and were not
|
||||
being executed.
|
||||
|
||||
If you want to skip certain functions, you can set the variable
|
||||
g:colorizer_<name>_disable and then those functions won't be called anymore
|
||||
(e.g. do disable the colorname highlighting, put in your |.vimrc| this: >
|
||||
|
||||
let g:colorizer_colornames_disable = 1
|
||||
<
|
||||
If the slowdown is still noticeable, you might want to create
|
||||
a new issue at the plugins repository (|Colorizer-feedback|). You should
|
||||
provide a sample file, so that I will be able to reproduce the issue.
|
||||
|
||||
Note, this needs a Vim with the |+reltime| feature.
|
||||
==============================================================================
|
||||
5. Colorizer Feedback *Colorizer-feedback*
|
||||
==============================================================================
|
||||
|
||||
Feedback is always welcome. If you like the plugin, please rate it at the
|
||||
vim-page: http://www.vim.org/scripts/script.php?script_id=3963
|
||||
|
||||
You can also follow the development of the plugin at github:
|
||||
http://github.com/chrisbra/color_highlight
|
||||
|
||||
Bugs can also be reported there:
|
||||
https://github.com/chrisbra/color_highlight/issues
|
||||
|
||||
Alternatively, you can also report any bugs to the maintainer, mentioned in
|
||||
the third line of this document. Please don't hesitate to contact me, I
|
||||
won't bite ;)
|
||||
|
||||
If you like the plugin, write me an email (look in the third line for my mail
|
||||
address). And if you are really happy, vote for the plugin and consider
|
||||
looking at my Amazon whishlist: http://www.amazon.de/wishlist/2BKAHE8J7Z6UW
|
||||
|
||||
==============================================================================
|
||||
6. Colorizer History *Colorizer-history*
|
||||
==============================================================================
|
||||
|
||||
0.12 (unreleased) {{{1
|
||||
- TermConceal should also conceal [K
|
||||
- properly escape terminal colors, so that |Colorizer-syntax| works correctly
|
||||
- use matchaddpos() for highlighting ansi term colors (should speed up vim
|
||||
highlighting considerably)
|
||||
- only reset TermConceal syntax group (reported by audriusk in
|
||||
https://github.com/chrisbra/Colorizer/issues/41, thanks!)
|
||||
- correctly check for patch 7.4.083 (:keeppatterns modifier, reported by
|
||||
gbell12 in https://github.com/chrisbra/Colorizer/issues/42, thanks!)
|
||||
- disable BufLeave autocommand to disable colors
|
||||
- basic Neovim support (also should work with TrueColor in Terminal)
|
||||
- Make |:RGB2term| always init colortable, so that when resetting 't_Co'
|
||||
it will work correctly
|
||||
- Make it work with Vims Term Truecolor feature (patch 7.4.1770)
|
||||
- Make it work with neovim fixes https://github.com/chrisbra/Colorizer/issues/45
|
||||
and https://github.com/chrisbra/Colorizer/issues/46
|
||||
- Support css colors: #rrggbbaa format
|
||||
- handle hsla values correctly
|
||||
- clear css cssColor syntax rule when ":ColorHighlight syntax" in css files is
|
||||
used. fixes https://github.com/chrisbra/Colorizer/issues/50 reported by
|
||||
msva, thanks!
|
||||
- make TermConceal also hide the sgr0 attributes (to reset the terminal)
|
||||
fixes https://github.com/chrisbra/Colorizer/issues/53 reported by
|
||||
LucHermitte, thanks!
|
||||
- also conceal and highlight nroff sequences like T^HT (as bold) and _^HT (as
|
||||
underlined)
|
||||
|
||||
0.11 Jan 15, 2015 {{{1
|
||||
- use |TextChanged| autocommand if possible
|
||||
- Support Ansi True Color support if possible
|
||||
- Hide ^[[K$ for terminal colors (reported by masukomi at
|
||||
https://github.com/chrisbra/Colorizer/issues/36, thanks!)
|
||||
- Do not expand() to expand shellvars (fixed by Daniel Hahler in
|
||||
https://github.com/chrisbra/Colorizer/issues/37, thanks!)
|
||||
- Document, how to analyze slowdown |Colorizer-slowdown|
|
||||
- |:ColorContrast| would error, if the plugin has not been initialized
|
||||
(reported by Daniel Hahler in
|
||||
https://github.com/chrisbra/Colorizer/issues/38, thanks!)
|
||||
- always define reltime variable (reported by mantislin in
|
||||
https://github.com/chrisbra/Colorizer/issues/39, thanks!)
|
||||
- Only call conceal function once for ansiterm colors
|
||||
- reduce calls to DoColor in autocommands (to only do, when something changed)
|
||||
|
||||
0.10 Mar 27, 2014 {{{1
|
||||
- Also highlight Ansi Term sequences
|
||||
- Match colornames using the "old" RE Engine, if Vim supports it.
|
||||
- Make |:RGB2Xterm| output the color name in its color
|
||||
- Rename |:RGB2Xterm| to |:RGB2Term|
|
||||
- Highlight Taskwarrior file
|
||||
- Code refactoring
|
||||
- Make |:ColorSwapFgBg| work as expected (did not always toggle reliably
|
||||
between all states)
|
||||
- Correctly parse Ansi Term colors
|
||||
- |:Term2RGB|
|
||||
- Highlight Vim color files correctly
|
||||
- merge colorhighlight plugin https://github.com/blueyed/colorhighlight.vim
|
||||
|
||||
0.9: Aug 14, 2013: {{{1
|
||||
- https://github.com/chrisbra/color_highlight/issues/15 (rgba highlighting
|
||||
didn't work for floating point value of alpha, reported by LiTuX.S, thanks!)
|
||||
- https://github.com/chrisbra/color_highlight/issues/16 (rgb() pattern did
|
||||
match too much, reported by taecilla, thanks!)
|
||||
- https://github.com/chrisbra/color_highlight/issues/19 (error on calling
|
||||
ColorWinEnter() command, reported by wedgwood, thanks!)
|
||||
- https://github.com/chrisbra/color_highlight/issues/20 and
|
||||
https://github.com/chrisbra/color_highlight/issues/21
|
||||
(also color on split commands, reported by wedgwood and Andri Möll, Thanks!)
|
||||
- https://github.com/chrisbra/color_highlight/issues/22 (Make sure, patterns
|
||||
like white-space won't get colored, reported by Andri Möll, Thanks!)
|
||||
- https://github.com/chrisbra/color_highlight/issues/23 (ColorToggle got
|
||||
confused when several windows with highlighting exists, reported by Andri
|
||||
Möll, Thanks!)
|
||||
- https://github.com/chrisbra/color_highlight/issues/24 (turning off coloring
|
||||
should also remove the autocommands, reported by Andri Möll, Thanks!)
|
||||
|
||||
0.8: Dec 14, 2012 {{{1
|
||||
- https://github.com/chrisbra/color_highlight/issues/13 (colorizing should not
|
||||
stop at word-boundaries, reported by teschmitz, thanks!)
|
||||
- https://github.com/chrisbra/color_highlight/issues/14 (convert highlighting
|
||||
to syntax groups, so TOhtml works, reported by teschmitz, thanks!)
|
||||
|
||||
0.7: Jul 25, 2012 {{{1
|
||||
- Highlight rgb colors with whitespace after comma (reported by sergey-vlasov
|
||||
in https://github.com/chrisbra/color_highlight/issues/12, thanks!)
|
||||
- Save and restore the search register, so the plugin doesn't clobber it
|
||||
- check for 'ed' and 'gd' defaults
|
||||
|
||||
0.6: May 17, 2012 {{{1
|
||||
- Fix various issues with hsl coloring (reported by teschmitz in
|
||||
https://github.com/chrisbra/color_highlight/issues/9, thanks!)
|
||||
- Make it possible, to skip coloring comments (reported by teschmitz in
|
||||
https://github.com/chrisbra/color_highlight/issues/10, thanks!)
|
||||
- search highlighting should overrule color highlighting(reported by teschmitz
|
||||
in https://github.com/chrisbra/color_highlight/issues/11, thanks!)
|
||||
- updated documentation (suggested by teschmitz, thanks!)
|
||||
|
||||
0.5: Apr 03, 2012 {{{1
|
||||
- Fix issue 7 (reported by teschmitz in
|
||||
https://github.com/chrisbra/color_highlight/issues/7, thanks!)
|
||||
0.4: Mar, 23, 2012 {{{1
|
||||
- |:ColorSwapFgBg| (suggested by teschmitz, in
|
||||
https://github.com/chrisbra/color_highlight/issues/3, thanks!)
|
||||
- make automatic color loading work (reported by wedgwood in
|
||||
https://github.com/chrisbra/color_highlight/issues/6, thanks!)
|
||||
|Colorizer-auto| and |Colorizer-hl-ft|
|
||||
- more documentation updates
|
||||
- added Mappings (suggested by Ingo Karkat, thanks!) |Colorizer-maps|
|
||||
- prevent highlighting of color names (suggested by Tarlika Schmitz in
|
||||
https://github.com/chrisbra/color_highlight/issues/5, thanks!)
|
||||
|Colorizer-hl-names|
|
||||
- enable filetype specific autocommands, so that for certain filetypes
|
||||
colors are highlighted automatically |Colorizer-hl-ft|
|
||||
(suggested by Tarlika Schmitz, thanks!)
|
||||
|
||||
0.3: Mar 15, 2012 {{{1
|
||||
- Use the g:colorizer_fgcontrast variable to have lesser contrast between
|
||||
foreground and background colors (patch by Ingo Karkat, thanks!)
|
||||
- gvim did not color rgb(...) codes
|
||||
- did not correctly highlight 3 letter color codes (issue
|
||||
https://github.com/chrisbra/color_highlight/issues/1,
|
||||
reported by Taybin Rutkin, thanks!)
|
||||
- support autoloading (requested by Ingo Karkat, thanks!)
|
||||
- add |GLVS| support
|
||||
- |:ColorContrast| to interactively switch between contrast settings
|
||||
(suggested by Ingo Karkat, thanks!)
|
||||
0.2: Mar 02, 2012 {{{1
|
||||
|
||||
- Initial upload
|
||||
- development versions are available at the github repository
|
||||
- put plugin on a public repository
|
||||
(http://github.com/chrisbra/color_highlight)
|
||||
|
||||
0.1: Mar 02, 2012 {{{1
|
||||
- first internal version
|
||||
}}}
|
||||
==============================================================================
|
||||
Modeline:
|
||||
vim:tw=78:ts=8:ft=help:et:fdm=marker:fdl=0:norl
|
|
@ -0,0 +1,29 @@
|
|||
:ColorClear Colorizer.txt /*:ColorClear*
|
||||
:ColorContrast Colorizer.txt /*:ColorContrast*
|
||||
:ColorHighlight Colorizer.txt /*:ColorHighlight*
|
||||
:ColorSwapFgBg Colorizer.txt /*:ColorSwapFgBg*
|
||||
:ColorToggle Colorizer.txt /*:ColorToggle*
|
||||
:HSL2RGB Colorizer.txt /*:HSL2RGB*
|
||||
:RGB2Term Colorizer.txt /*:RGB2Term*
|
||||
:Term2RGB Colorizer.txt /*:Term2RGB*
|
||||
Colorizer Colorizer.txt /*Colorizer*
|
||||
Colorizer-auto Colorizer.txt /*Colorizer-auto*
|
||||
Colorizer-comments Colorizer.txt /*Colorizer-comments*
|
||||
Colorizer-config Colorizer.txt /*Colorizer-config*
|
||||
Colorizer-contrast Colorizer.txt /*Colorizer-contrast*
|
||||
Colorizer-custom-colornames Colorizer.txt /*Colorizer-custom-colornames*
|
||||
Colorizer-feedback Colorizer.txt /*Colorizer-feedback*
|
||||
Colorizer-history Colorizer.txt /*Colorizer-history*
|
||||
Colorizer-hl-ft Colorizer.txt /*Colorizer-hl-ft*
|
||||
Colorizer-hl-names Colorizer.txt /*Colorizer-hl-names*
|
||||
Colorizer-manual Colorizer.txt /*Colorizer-manual*
|
||||
Colorizer-maps Colorizer.txt /*Colorizer-maps*
|
||||
Colorizer-names Colorizer.txt /*Colorizer-names*
|
||||
Colorizer-pattern Colorizer.txt /*Colorizer-pattern*
|
||||
Colorizer-slowdown Colorizer.txt /*Colorizer-slowdown*
|
||||
Colorizer-syntax Colorizer.txt /*Colorizer-syntax*
|
||||
Colorizer-taskwarrior-files Colorizer.txt /*Colorizer-taskwarrior-files*
|
||||
Colorizer-tips Colorizer.txt /*Colorizer-tips*
|
||||
Colorizer-vim-files Colorizer.txt /*Colorizer-vim-files*
|
||||
Colorizer-vim-hi Colorizer.txt /*Colorizer-vim-hi*
|
||||
Colorizer.txt Colorizer.txt /*Colorizer.txt*
|
|
@ -0,0 +1,95 @@
|
|||
" Plugin: Highlight Colornames and Values
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" URL: http://www.github.com/chrisbra/color_highlight
|
||||
" Last Change: Thu, 15 Jan 2015 21:49:17 +0100
|
||||
" Licence: Vim License (see :h License)
|
||||
" Version: 0.11
|
||||
" GetLatestVimScripts: 3963 11 :AutoInstall: Colorizer.vim
|
||||
"
|
||||
" This plugin was inspired by the css_color.vim plugin from Nikolaus Hofer.
|
||||
" Changes made: - make terminal colors work more reliably and with all
|
||||
" color terminals
|
||||
" - performance improvements, coloring is almost instantenously
|
||||
" - detect rgb colors like this: rgb(R,G,B)
|
||||
" - detect hsl coloring: hsl(H,V,L)
|
||||
" - fix small bugs
|
||||
|
||||
" Init some variables "{{{1
|
||||
" Plugin folklore "{{{2
|
||||
if v:version < 700 || exists("g:loaded_colorizer") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_colorizer = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" helper functions "{{{1
|
||||
fu! ColorHiArgs(A,L,P)
|
||||
return "syntax\nmatch\nnosyntax\nnomatch"
|
||||
endfu
|
||||
|
||||
" define commands "{{{1
|
||||
command! -bang -range=% -nargs=? -complete=custom,ColorHiArgs ColorHighlight
|
||||
\ :call Colorizer#DoColor(<q-bang>, <q-line1>, <q-line2>, <q-args>)
|
||||
command! -bang -nargs=1 RGB2Term
|
||||
\ :call Colorizer#RGB2Term(<q-args>, <q-bang>)
|
||||
command! -nargs=1 Term2RGB :call Colorizer#Term2RGB(<q-args>)
|
||||
|
||||
command! -bang ColorClear :call Colorizer#ColorOff()
|
||||
command! -bang ColorToggle :call Colorizer#ColorToggle()
|
||||
command! -nargs=1 HSL2RGB :call Colorizer#HSL2Term(<q-args>)
|
||||
command! ColorContrast :call Colorizer#SwitchContrast()
|
||||
command! ColorSwapFgBg :call Colorizer#SwitchFGBG()
|
||||
|
||||
" define mappings "{{{1
|
||||
nnoremap <Plug>Colorizer :<C-U>ColorToggle<CR>
|
||||
xnoremap <Plug>Colorizer :ColorHighlight<CR>
|
||||
nnoremap <Plug>ColorContrast :<C-U>ColorContrast<CR>
|
||||
xnoremap <Plug>ColorContrast :<C-U>ColorContrast<CR>
|
||||
nnoremap <Plug>ColorFgBg :<C-U>ColorSwapFgBg<CR>
|
||||
xnoremap <Plug>ColorFgBg :<C-U>ColorSwapFgBg<CR>
|
||||
|
||||
if get(g:, 'colorizer_auto_map', 0)
|
||||
" only map, if the mapped keys are not yet taken by a different plugin
|
||||
" and the user hasn't mapped the function to different keys
|
||||
if empty(maparg('<Leader>cC', 'n')) && empty(hasmapto('<Plug>Colorizer', 'n'))
|
||||
nmap <silent> <Leader>cC <Plug>Colorizer
|
||||
endif
|
||||
if empty(maparg('<Leader>cC', 'x')) && empty(hasmapto('<Plug>Colorizer', 'x'))
|
||||
xmap <silent> <Leader>cC <Plug>Colorizer
|
||||
endif
|
||||
if empty(maparg('<Leader>cT', 'n')) && empty(hasmapto('<Plug>ColorContrast', 'n'))
|
||||
nmap <silent> <Leader>cT <Plug>ColorContrast
|
||||
endif
|
||||
if empty(maparg('<Leader>cT', 'x')) && empty(hasmapto('<Plug>ColorContrast', 'n'))
|
||||
xmap <silent> <Leader>cT <Plug>ColorContrast
|
||||
endif
|
||||
if empty(maparg('<Leader>cF', 'n')) && empty(hasmapto('<Plug>ColorFgBg', 'n'))
|
||||
nmap <silent> <Leader>cF <Plug>ColorFgBg
|
||||
endif
|
||||
if empty(maparg('<Leader>cF', 'x')) && empty(hasmapto('<Plug>ColorFgBg', 'x'))
|
||||
xmap <silent> <Leader>cF <Plug>ColorFgBg
|
||||
endif
|
||||
endif
|
||||
|
||||
" Enable Autocommands "{{{1
|
||||
if exists("g:colorizer_auto_color")
|
||||
" Prevent autoloading
|
||||
exe "call Colorizer#AutoCmds(g:colorizer_auto_color)"
|
||||
endif
|
||||
|
||||
if exists("g:colorizer_auto_filetype")
|
||||
" Setup some autocommands for specific filetypes.
|
||||
aug FT_ColorizerPlugin
|
||||
au!
|
||||
exe "au Filetype" g:colorizer_auto_filetype
|
||||
\ "call Colorizer#LocalFTAutoCmds(1)\|
|
||||
\ :ColorHighlight"
|
||||
aug END
|
||||
endif
|
||||
|
||||
" Plugin folklore and Vim Modeline " {{{1
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: set foldmethod=marker et fdl=0:
|
|
@ -24,3 +24,10 @@ endfunction
|
|||
|
||||
" So we can use :BackgroundCommand to call our function.
|
||||
command! -nargs=+ -complete=shellcmd RunBackgroundCommand call RunBackgroundCommand(<q-args>)
|
||||
|
||||
function! GetCWD()
|
||||
let l:cwd = system('pwd | rev |cut -d- -f1 | rev | xargs | sed "s/[[:space:]]/\\\\&/g\"')
|
||||
echo l:cwd
|
||||
call setline('.', l:cwd)
|
||||
unlet l:cwd
|
||||
endfunction
|
||||
|
|
|
@ -10,8 +10,10 @@ nnoremap <C-U> :later<CR>
|
|||
noremap Y "+y
|
||||
noremap <C-E> :tabedit **/*
|
||||
noremap <F1> :ter<CR>
|
||||
noremap <F12> :tabedit<CR>:ter<CR><C-w><C-w>:q<CR>
|
||||
noremap == ==j
|
||||
nmap 0 ^
|
||||
nmap ' `
|
||||
|
||||
" Diaeresis for e.g. german
|
||||
inoremap a" ä
|
||||
|
@ -20,5 +22,5 @@ inoremap u" ü
|
|||
inoremap A" Ä
|
||||
inoremap U" Ü
|
||||
inoremap O" Ö
|
||||
inoremap <leader>s ß
|
||||
inoremap <leader>e €
|
||||
inoremap s" ß
|
||||
inoremap e" €
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
#
|
||||
|
||||
Category:
|
||||
**Category:**
|
||||
**Points:**
|
||||
|
||||
# Challenge
|
||||
## Challenge
|
||||
>
|
||||
|
||||
# Solution
|
||||
## Solution
|
||||
|
||||
# Flag
|
||||
### Flag
|
||||
``
|
||||
|
|
|
@ -805,3 +805,15 @@ Rümeysa
|
|||
Orhan
|
||||
AStAs
|
||||
Brinda
|
||||
Prüfungsauschüsse
|
||||
LuDI
|
||||
Berufungskomission
|
||||
Hoßfeld
|
||||
Systemadministration
|
||||
Gremienplätze
|
||||
#rschritten
|
||||
#
|
||||
#
|
||||
#a
|
||||
#S
|
||||
#b
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue