init
authorTobias Sachs <src.twobees.de-co0Chie-ts@ctsachs.de>
Thu, 20 Aug 2020 15:01:06 +0000 (17:01 +0200)
committerTobias Sachs <src.twobees.de-co0Chie-ts@ctsachs.de>
Thu, 20 Aug 2020 15:01:06 +0000 (17:01 +0200)
.gitignore [new file with mode: 0644]
README.md [new file with mode: 0644]
_vsvimrc [new file with mode: 0644]
filetype.vim [new file with mode: 0644]
ftplugin/hub.vim [new file with mode: 0644]
ftplugin/perl.vim [new file with mode: 0644]
myinit.sh [new file with mode: 0644]
plugins.vundel.vim [new file with mode: 0644]
syntax/hub.vim [new file with mode: 0644]
syntax/iptables.vim [new file with mode: 0644]
vimrc [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..f42f66a
--- /dev/null
@@ -0,0 +1,5 @@
+spell/
+bundle/
+tmp/
+.netrwhist
+*~
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..c4181b3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# Install
+
+    git clone http://git.d.ctsachs.de/dotvim ~/.vim 
+    ~/.vim/myinit.sh
+
+# Update
+    ~/.vim/myinit.sh
diff --git a/_vsvimrc b/_vsvimrc
new file mode 100644 (file)
index 0000000..7eb4c87
--- /dev/null
+++ b/_vsvimrc
@@ -0,0 +1,62 @@
+:source C:\Users\ts\vimfiles\vimrc
+
+set scrolloff=0
+
+" unmap copy paste to/from system clipboard macht vielleicht angeblich vs
+" langsam...
+vunmap <C-c>
+iunmap <C-S-v>
+vunmap <C-S-v>
+
+" Surround simulating bindings
+nnoremap ysiw( ciw(<C-r>")<Esc>
+nnoremap ysiw) ciw(<C-r>")<Esc>
+nnoremap ysiw[ ciw[<C-r>"]<Esc>
+nnoremap ysiw] ciw[<C-r>"]<Esc>
+nnoremap ysiw{ ciw{<C-r>"}<Esc>
+nnoremap ysiw} ciw{<C-r>"}<Esc>
+nnoremap ysiw< ciw<lt><C-r>"><Esc>
+nnoremap ysiw> ciw<lt><C-r>"><Esc>
+nnoremap ysiw" ciw"<C-r>""<Esc>
+nnoremap ysiw' ciw'<C-r>"'<Esc>
+nnoremap sw( ciW(<C-r>")<Esc>
+nnoremap sw) ciW(<C-r>")<Esc>
+nnoremap sw[ ciW[<C-r>"]<Esc>
+nnoremap sw] ciW[<C-r>"]<Esc>
+nnoremap sw{ ciW{<C-r>"}<Esc>
+nnoremap sw} ciW{<C-r>"}<Esc>
+nnoremap sw< ciW<lt><C-r>"><Esc>
+nnoremap sw> ciW<lt><C-r>"><Esc>
+nnoremap sw" ciW"<C-r>""<Esc>
+nnoremap sw' ciW'<C-r>"'<Esc>
+
+" Surround delete bindings
+nnoremap ds( vi(dvhp
+nnoremap ds) vi(dvhp
+nnoremap ds[ vi[dvhp
+nnoremap ds] vi[dvhp
+nnoremap ds{ vi{dvhp
+nnoremap ds} vi{dvhp
+nnoremap ds> vi<dvhp
+nnoremap ds" vi"dvhp
+nnoremap ds' vi'dvhp
+
+" Surround change bindings
+nnoremap cs"' vi"oh<Esc>msvi"l<Esc>cl'<Esc>`scl'<Esc>
+nnoremap cs'" vi'oh<Esc>msvi'l<Esc>cl"<Esc>`scl"<Esc>
+
+" Surround visual selected text
+vnoremap S" c"<C-r>""<Esc>
+vnoremap S' c"<C-r>"'<Esc>
+vnoremap S( c(<C-r>")<Esc>
+vnoremap S) c(<C-r>")<Esc>
+vnoremap S[ c[<C-r>"]<Esc>
+vnoremap S] c[<C-r>"]<Esc>
+vnoremap S{ c{<C-r>"}<Esc>
+vnoremap S} c{<C-r>"}<Esc>
+vnoremap S< c<lt><C-r>"><Esc>
+vnoremap S> c<lt><C-r>"><Esc>
+vnoremap S* c/*<C-r>"*/<Esc>
+"vnoremap St c<lt>div><CR><C-r>"<Esc>
+" Surround in div tag and edit tag
+vnoremap St c<lt>div><CR><C-r>"<Esc>`<lt>lcw
diff --git a/filetype.vim b/filetype.vim
new file mode 100644 (file)
index 0000000..d9506cd
--- /dev/null
@@ -0,0 +1,8 @@
+if exists("did_load_filetypes")
+    finish
+endif
+
+augroup filetypedetect
+    au! BufRead,BufNewFile *_[FS]*.log setfiletype hub
+    au! BufNewFile,BufRead *.xaml      setfiletype xml
+augroup END
diff --git a/ftplugin/hub.vim b/ftplugin/hub.vim
new file mode 100644 (file)
index 0000000..89196c4
--- /dev/null
@@ -0,0 +1,15 @@
+setlocal buftype=nofile
+setlocal nomodifiable
+setlocal syntax=hub
+setlocal  nowrap
+if has('gui_running')
+    setlocal  guioptions+=b
+    silent simalt ~x
+endif
+setlocal nolist
+setlocal noswapfile
+setlocal nobackup
+setlocal noundofile
+setlocal foldmethod=manual
+
+match Ignore /\r$/
diff --git a/ftplugin/perl.vim b/ftplugin/perl.vim
new file mode 100644 (file)
index 0000000..9763f3b
--- /dev/null
@@ -0,0 +1,16 @@
+"define :Tidy command to run perltidy on visual selection || entire buffer"
+command! -range=% -nargs=* Tidy <line1>,<line2>!perltidy
+
+"run :Tidy on entire buffer and return cursor to (approximate) original position"
+fun! DoTidy()
+    let l = line(".")
+    let c = col(".")
+    :Tidy
+    call cursor(l, c)
+endfun
+
+"shortcut for normal mode to run on entire buffer then return to current line"
+noremap <F2> :call DoTidy()<CR>
+
+"shortcut for visual mode to run on the the current visual selection"
+vnoremap <F2> :Tidy<CR>
diff --git a/myinit.sh b/myinit.sh
new file mode 100644 (file)
index 0000000..61f18fd
--- /dev/null
+++ b/myinit.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+git stash
+
+# alten hook loeschen...
+oldhook=".git/hooks/post-merge"
+if [ -h $oldhook ]; then
+    actual=`readlink $oldhook`
+    if [ "$actual" = "../../myinit.sh" ]; then
+        rm -v -f $oldhook
+    fi
+fi
+# alten hook loeschen kann bestimmt bald wieder weg...
+
+git pull 
+git stash pop
+
+if [ -d bundle/Vundle.vim ];then
+    cd bundle/Vundle.vim;
+    echo "Update Vundle:"
+    git pull
+    cd -
+else
+    git clone https://github.com/VundleVim/Vundle.vim.git bundle/Vundle.vim
+fi
+vim +PluginClean! +PluginInstall! +qall
+stty sane
diff --git a/plugins.vundel.vim b/plugins.vundel.vim
new file mode 100644 (file)
index 0000000..2c88fb7
--- /dev/null
@@ -0,0 +1,34 @@
+set nocompatible
+filetype off
+
+exec 'set rtp+='.b:vim_conf_dir.'/bundle/Vundle.vim/'
+call vundle#rc(b:vim_conf_dir.'/bundle/')
+
+call vundle#begin()
+Plugin 'VundleVim/Vundle.vim'
+Plugin 'chrisbra/vim-diff-enhanced'
+Plugin 'tpope/vim-repeat'
+Plugin 'tpope/vim-fugitive'
+Plugin 'tpope/vim-surround'
+Plugin 'tpope/vim-unimpaired'
+Plugin 'godlygeek/tabular'
+Plugin 'w0rp/ale'
+Plugin 'vimwiki/vimwiki'
+if ! has("win32")
+    Plugin '4Evergreen4/vim-hardy'
+    Plugin 'airblade/vim-gitgutter'
+endif
+Plugin 'jlanzarotta/bufexplorer'
+Plugin 'mileszs/ack.vim'
+Plugin 'JamshedVesuna/vim-markdown-preview'
+Plugin 'blueyed/smarty.vim'
+Plugin 'vim-scripts/nginx.vim'
+"Plugin 'vim-scripts/CycleColor'
+Plugin 'eparreno/vim-l9'
+Plugin 'c9s/perlomni.vim'
+Plugin 'morhetz/gruvbox'
+Plugin 'junegunn/fzf.vim'
+Plugin 'othree/vim-autocomplpop'
+call vundle#end()
+filetype on
+filetype plugin indent on
diff --git a/syntax/hub.vim b/syntax/hub.vim
new file mode 100644 (file)
index 0000000..dd9cc60
--- /dev/null
@@ -0,0 +1,68 @@
+" Vim syntax file
+" file type: log files
+
+" Quit when a (custom) syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+
+syn match logdate /^\d\{2}\.\d\{2}/ nextgroup=logtime skipwhite
+syn match logtime /\d\{2}:\d\{2}:\d\{2}:\d\{4}/
+
+syn match cri ".* CRITIC.*"
+syn match err ".* ERROR.*"
+syn match war ".* WARNIN.*"
+syn match inf ".* INFO.*"
+syn match trace1 ".* TRACE1.*" contains=@calls
+syn match trace2 ".* TRACE2.*" contains=@calls
+syn match trace3 ".* TRACE3.*" contains=@calls
+
+syn keyword callcontrol Setup Connect DemandTx CeaseTx contained
+syn keyword callnotification NotifyCallOngoing NotifyProceeding NotifyConnected NotifyTxGranted NotifyTxCeased notifyDisconnected contained
+
+syn cluster calls contains=callcontrol,callnotification
+
+" Highlight colors for log levels.
+":hi crit ctermfg=Red
+":hi error ctermfg=Red
+":hi warn ctermfg=Red
+":hi info ctermfg=Black
+":hi trace ctermfg=Gray
+
+
+if &background == "light"
+       hi logdate guifg=RoyalBlue4
+       hi logtime guifg=RoyalBlue4
+
+       hi cri guifg=red1
+       hi err guifg=red2
+       hi war guifg=red3
+       hi trace1 guifg=gray33
+       hi trace2 guifg=gray43
+       hi trace3 guifg=gray63
+       hi inf guifg=black
+
+       hi link callcontrol calls
+       hi link callnotification calls
+       hi calls gui=bold
+else
+       hi logdate guifg=RoyalBlue4
+       hi logtime guifg=RoyalBlue4
+
+       hi cri guifg=red1
+       hi err guifg=red2
+       hi war guifg=red3
+       hi trace1 guifg=gray63
+       hi trace2 guifg=gray43
+       hi trace3 guifg=gray33
+       hi inf guifg=white
+
+       hi link callcontrol calls
+       hi link callnotification calls
+       hi calls gui=bold
+
+endif
+
+
+let b:current_syntax = "hub"
diff --git a/syntax/iptables.vim b/syntax/iptables.vim
new file mode 100644 (file)
index 0000000..5812432
--- /dev/null
@@ -0,0 +1,379 @@
+"============================================================================
+"
+" iptables-save/restore syntax highlighter
+"
+" Language:       iptables-save/restore file
+" Version:     Not Specified
+" Date:        07-Jun-2014
+" Maintainer:  Eric Haarbauer <ehaar70{AT}gmail{DOT}com>
+" License:     This file is placed in the public domain.
+"
+"============================================================================
+" Section:  Notes  {{{1
+"============================================================================
+"
+" This vim syntax script highlights files used by Harald Welte's iptables-save
+" and iptables-restore utilities.  Both utilities are part of the iptables
+" application (http://www.netfilter.org/projects/iptables).
+" 
+" Features:
+"
+"   * Distinguishes commands, options, modules, targets and chains.
+"   * Distinguishes numeric IP addresses from net masks.
+"   * Highlights tokens that occur only in hand-edited files; for example,
+"     "--append" and "destination-unreachable".
+"   * Special handling for module names; for example, the tcp module is
+"     colored differently from the tcp protocol.
+"
+" Options:
+"
+"   Customize the behavior of this script by setting values for the following
+"   options in your .vimrc file.  (Type ":h vimrc" in vim for more information
+"   on the .vimrc file.)
+"
+"   g:Iptables_SpecialDelimiters
+"     This variable, if set to a non-zero value, distinguishes numeric
+"     delimiters, including the dots in IP addresses, the slash that separates
+"     an IP address from a netmask, and the colon that separates the ends of a
+"     port range.  If not set, this option defaults to off.
+"
+" Known Issues:
+"
+"   * Some special argument tokens are highlighted whether or not they are
+"     used with the correct option.  For example, "destination-unreachable"
+"     gets special highlighting whether or not is used as an argument to the
+"     --icmp-type option.  In practice, this is rarely a problem.
+"
+" Reporting Issues:
+"
+"   If you discover an iptables file that this script highlights incorrectly,
+"   please email the author (address at the top of the script) with the
+"   following information:
+"
+"     * Problem iptables file WITH ANY SENSITIVE INFORMATION REMOVED
+"     * The release version of this script (see top of the script)
+"     * If possible, a patch to fix the problem
+"
+" Design Notes:
+"
+"   Part of this script is autogenerated from the output of the iptables man
+"   page.  The source code for generating the script is available from the
+"   author on request (see email address at the top of the script).  The
+"   script should build from source on most Linux systems with iptables
+"   installed.
+"
+"   The build system that generates this script strips special CVS tokens
+"   (like "Id:") so that CVS no longer recognizes them.  This allows users to
+"   place the script in their own version control system without losing
+"   information.  The author encourages other vim script developers to adopt a
+"   similar approach in their own scripts.
+"
+" Installation:
+"
+"   Put this file in your user runtime syntax directory, usually ~/.vim/syntax
+"   in *NIX or C:\Program Files\vim\vimfiles\syntax in Windows.  Type ":h
+"   syn-files" from within vim for more information.
+"
+"   The iptables-save and iptables-restore applications do not specify a
+"   naming standard for the files they use.  However, iptables-save places a
+"   comment in the first line of its output.  Other applications, such as
+"   Fedora's system-config-securitylevel uses the iptables-save/restore
+"   format, but with a different leading comment.  We can use these leading
+"   comments to identify the filetype by placing the following code in the
+"   scripts.vim file in your user runtime directory:
+"   
+"      if getline(1) =~ "^# Generated by iptables-save" ||
+"       \ getline(1) =~ "^# Firewall configuration written by"
+"          setfiletype iptables
+"          set commentstring=#%s
+"          finish
+"      endif
+"
+"   Setting the commentstring on line 4 allows Meikel Brandmeyer's
+"   EnhancedCommentify script (vimscript #23) to work with iptables files.
+"   (Advanced users may want to set the commentstring option in an ftplugin
+"   file or in autocommands defined in .vimrc.)
+"
+"============================================================================
+" Source File: Id: iptables.src.vim 43 2014-06-08 03:21:32Z ehaar 
+"============================================================================
+" Section:  Initialization  {{{1
+"============================================================================
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if !exists("main_syntax")
+  if version < 600
+    syntax clear
+  elseif exists("b:current_syntax")
+    finish
+  endif
+  let main_syntax = 'iptables'
+endif
+
+" Don't use standard HiLink, it will not work with included syntax files
+if version < 508
+  command! -nargs=+ IptablesHiLink highlight link <args>
+else
+  command! -nargs=+ IptablesHiLink highlight default link <args>
+endif
+
+syntax case match
+
+if version < 600
+    set iskeyword+=-
+else
+    setlocal iskeyword+=-
+endif
+
+" Initialize global public variables:  {{{2
+
+" Support deprecated variable name used prior to release 1.07.
+if exists("g:iptablesSpecialDelimiters") &&
+\ !exists("g:Iptables_SpecialDelimiters")
+
+    let   g:Iptables_SpecialDelimiters = g:iptablesSpecialDelimiters
+    unlet g:iptablesSpecialDelimiters
+    " echohl WarningMsg | echo "Warning:" | echohl None
+    " echo "The g:iptablesSpecialDelimiters variable is deprecated."
+    " echo "Please use g:Iptables_SpecialDelimiters in your .vimrc instead"
+
+endif
+
+if exists("g:Iptables_SpecialDelimiters")
+    let s:Iptables_SpecialDelimiters = g:Iptables_SpecialDelimiters
+else
+    let s:Iptables_SpecialDelimiters = 0
+endif
+
+"============================================================================
+" Section:  Group Definitions  {{{1
+"============================================================================
+
+syntax keyword iptablesSaveDirective COMMIT
+syntax match   iptablesSaveOperation "^[:*]"
+
+syntax keyword iptablesTable filter nat mangle raw
+
+syntax keyword iptablesTarget
+    \ ACCEPT DROP QUEUE RETURN BALANCE CLASSIFY CLUSTERIP CONNMARK
+    \ CONNSECMARK CONNTRACK DNAT DSCP ECN IPMARK IPV4OPSSTRIP LOG
+    \ MARK MASQUERADE MIRROR NETMAP NFQUEUE NOTRACK REDIRECT REJECT
+    \ ROUTE SAME SECMARK SET SNAT TARPIT TCPMSS TOS TRACE TTL ULOG XOR
+
+syntax keyword iptablesBuiltinChain
+    \ INPUT OUTPUT FORWARD PREROUTING POSTROUTING
+
+syntax keyword iptablesCommand -A -D -I -R -L -F -Z -N -X -P -E
+    \ --append --delete --insert --replace --list --flush --zero
+    \ --new-chain --delete-chain --policy --rename-chain
+
+syntax keyword iptablesParam   -p -s -d -j -i -o -f -c -t
+
+syntax match iptablesOperator "\s\zs!\ze\s"
+
+syntax keyword iptablesModuleName contained
+    \ account addrtype ah childlevel comment condition connbytes connlimit
+    \ connmark connrate conntrack dccp dscp dstlimit ecn esp fuzzy hashlimit
+    \ helper icmp iprange ipv4options length limit mac mark mport multiport
+    \ nth osf owner physdev pkttype policy psd quota random realm recent
+    \ sctp set state string tcp tcpmss time tos ttl u32 udp unclean
+
+syntax keyword iptablesModuleType
+    \ UNSPEC UNICAST LOCAL BROADCAST ANYCAST MULTICAST BLACKHOLE UNREACHABLE
+    \ PROHIBIT THROW NAT XRESOLVE INVALID ESTABLISHED NEW RELATED SYN ACK FIN
+    \ RST URG PSH ALL NONE
+
+" From --reject-with option
+syntax keyword iptablesModuleType
+    \ icmp-net-unreachable
+    \ icmp-host-unreachable
+    \ icmp-port-unreachable
+    \ icmp-proto-unreachable
+    \ icmp-net-prohibited
+    \ icmp-host-prohibited
+    \ icmp-admin-prohibited
+
+" From --icmp-type option
+syntax keyword iptablesModuleType
+    \ any
+    \ echo-reply
+    \ destination-unreachable
+    \    network-unreachable
+    \    host-unreachable
+    \    protocol-unreachable
+    \    port-unreachable
+    \    fragmentation-needed
+    \    source-route-failed
+    \    network-unknown
+    \    host-unknown
+    \    network-prohibited
+    \    host-prohibited
+    \    TOS-network-unreachable
+    \    TOS-host-unreachable
+    \    communication-prohibited
+    \    host-precedence-violation
+    \    precedence-cutoff
+    \ source-quench
+    \ redirect
+    \    network-redirect
+    \    host-redirect
+    \    TOS-network-redirect
+    \    TOS-host-redirect
+    \ echo-request
+    \ router-advertisement
+    \ router-solicitation
+    \ time-exceeded
+    \    ttl-zero-during-transit
+    \    ttl-zero-during-reassembly
+    \ parameter-problem
+    \    ip-header-bad
+    \    required-option-missing
+    \ timestamp-request
+    \ timestamp-reply
+    \ address-mask-request
+    \ address-mask-reply
+
+" If we used a keyword for this, port names would be colored the same
+" as modules with the same name (e.g. tcp, udp, icmp).
+syntax keyword iptablesParam -m --match skipwhite nextgroup=iptablesModuleName
+
+syntax region iptablesString start=+"+ skip=+\\"+ end=+"+ oneline
+
+syntax match  iptablesComment    "^#.*" contains=iptablesTodo
+syntax match  iptablesBadComment "^\s\+\zs#.*" " Pound must be in first column
+
+syntax keyword iptablesTodo contained TODO FIXME XXX NOT NOTE
+
+" Special Delimiters: {{{2
+
+if s:Iptables_SpecialDelimiters != 0
+    syntax match iptablesNumber    "\<[0-9./:]\+\>"
+        \ contains=iptablesMask,iptablesDelimiter
+    syntax match iptablesDelimiter "[./:]"     contained
+    syntax match iptablesMask      "/[0-9.]\+" contained 
+        \ contains=iptablesDelimiter
+else " s:Iptables_SpecialDelimiters == 0
+    syntax match iptablesNumber    "\<[0-9./]\+\>"
+        \ contains=iptablesMask,iptablesDelimiter
+    syntax match iptablesDelimiter "/"         contained
+    syntax match iptablesMask      "/[0-9.]\+" contained 
+        \ contains=iptablesDelimiter
+endif
+
+"============================================================================
+" Section:  Autogenerated Groups  {{{2
+"============================================================================
+
+" Begin autogenerated section.
+" iptables2vim: "iptables2vim 43 2014-06-08 03:21:32Z ehaar"
+" iptables:     "iptables v1.4.19.1"
+
+syntax keyword iptablesLongParam
+   \ --zone --xor-tos --xor-mark --weekdays --vproto --vportctl --vport 
+   \ --vmethod --verbose --vdir --validmark --vaddr --update 
+   \ --ulog-qthreshold --ulog-prefix --ulog-nlgroup --ulog-cprange 
+   \ --uid-owner --u --type --tunnel-src --tunnel-dst --ttl-set --ttl-lt 
+   \ --ttl-inc --ttl-gt --ttl-eq --ttl-dec --ttl --transparent --tproxy-mark 
+   \ --total-nodes --tos --to-source --to-ports --to-port --to-destination 
+   \ --to --timestop --timestart --timeout --tcp-option --tcp-flags --table 
+   \ --syn --strip-options --string --strict --state --src-type --src-range 
+   \ --src-pfx --src-group --src --sports --sport --spi --source-ports 
+   \ --source-port --source --soft --socket-exists --set-xmark --set-tos 
+   \ --set-mss --set-mark --set-dscp-class --set-dscp --set-counters 
+   \ --set-class --set --selctx --seconds --save-mark --save --rttl --rt-type 
+   \ --rt-segsleft --rt-len --rt- --rsource --return--nomatch --restore-mark 
+   \ --restore --reqid --remove --reject-with --reap --realm --rdest --rcheck 
+   \ --rateest-pps --rateest-name --rateest-lt --rateest-interval 
+   \ --rateest-gt --rateest-ewmalog --rateest-eq --rateest-delta 
+   \ --rateest-bps --rateest --random --quota --queue-num --queue-bypass 
+   \ --queue-balance --protocol --proto --probability --ports --pol 
+   \ --pkt-type --physdev-out --physdev-is-out --physdev-is-in 
+   \ --physdev-is-bridged --physdev-in --persistent --packet --out-interface 
+   \ --or-tos --or-mark --on-port --on-ip --numeric --notrack --nodst 
+   \ --nflog-threshold --nflog-range --nflog-prefix --nflog-group 
+   \ --nfacct-name --next --new --name --mss --monthdays --modprobe --mode 
+   \ --mh-type --mask --mark --mangle-mac-d --mac-source --loose --log-uid 
+   \ --log-tcp-sequence --log-tcp-options --log-prefix --log-level 
+   \ --log-ip-options --log --local-node --line-numbers --limit-iface-out 
+   \ --limit-iface-in --limit-burst --limit --length --led-trigger-id 
+   \ --led-delay --led-always-blink --label --kerneltz --jump --ipvs --ipv 
+   \ --invert --in-interface --icmpv --icmp-type --hmark-tuple 
+   \ --hmark-src-prefix --hmark-sport-mask --hmark-spi-mask --hmark-rnd 
+   \ --hmark-proto-mask --hmark-offset --hmark-mod --hmark-dst-prefix 
+   \ --hmark-dport-mask --hl-set --hl-lt --hl-inc --hl-gt --hl-eq --hl-dec 
+   \ --hitcount --hex-string --helper --help --header --hbh-opts --hbh-len 
+   \ --hashmode --hashlimit-upto --hashlimit-srcmask --hashlimit-src 
+   \ --hashlimit-name --hashlimit-mode --hashlimit-mask 
+   \ --hashlimit-htable-size --hashlimit-htable-max 
+   \ --hashlimit-htable-gcinterval --hashlimit-htable-expire 
+   \ --hashlimit-dstmask --hashlimit-burst --hashlimit-above --hashlimit 
+   \ --hash-init --h-length --goto --gid-owner --genre --gateway --from 
+   \ --fragres --fragmore --fragment --fraglen --fraglast --fragid 
+   \ --fragfirst --expevents --exist --exact --every --espspi 
+   \ --ecn-tcp-remove --ecn-tcp-ece --ecn-tcp-cwr --ecn-ip-ect --dst-type 
+   \ --dst-range --dst-pfx --dst-opts --dst-len --dst-group --dst 
+   \ --dscp-class --dscp --dports --dport --dir --destination-ports 
+   \ --destination-port --destination --del-set --dccp-types --dccp-option 
+   \ --datestop --datestart --ctstatus --ctstate --ctreplsrcport --ctreplsrc 
+   \ --ctrepldstport --ctrepldst --ctproto --ctorigsrcport --ctorigsrc 
+   \ --ctorigdstport --ctorigdst --ctexpire --ctevents --ctdir --cpu 
+   \ --contiguous --connlimit-upto --connlimit-saddr --connlimit-mask 
+   \ --connlimit-daddr --connlimit-above --connbytes-mode --connbytes-dir 
+   \ --connbytes --comment --clustermac --cluster-total-nodes 
+   \ --cluster-local-nodemask --cluster-local-node --cluster-hash-seed --clus 
+   \ --clamp-mss-to-pmtu --chunk-types --checksum-fill --check --bytecode 
+   \ --and-tos --and-mark --algo --ahspi --ahres --ahlen --add-set 
+   \ --accept-local
+" End autogenerated section.
+
+"============================================================================
+" Section:  Group Linking  {{{1
+"============================================================================
+
+IptablesHiLink iptablesSaveDirective PreProc
+IptablesHiLink iptablesSaveOperation PreProc
+
+IptablesHiLink iptablesTable         Statement
+IptablesHiLink iptablesTarget        Statement
+IptablesHiLink iptablesBuiltinChain  Type
+
+IptablesHiLink iptablesCommand       Operator
+
+IptablesHiLink iptablesModuleName    Type
+IptablesHiLink iptablesModuleType    Type
+
+IptablesHiLink iptablesOperator      Operator
+IptablesHiLink iptablesParam         Identifier
+IptablesHiLink iptablesLongParam     Identifier
+
+IptablesHiLink iptablesNumber        Constant
+
+if s:Iptables_SpecialDelimiters != 0
+    IptablesHiLink iptablesMask      PreProc
+    IptablesHiLink iptablesDelimiter Delimiter
+else " s:Iptables_SpecialDelimiters == 0 
+    IptablesHiLink iptablesMask      Special
+    IptablesHiLink iptablesDelimiter None
+endif
+
+IptablesHiLink iptablesString        Constant
+
+IptablesHiLink iptablesComment       Comment
+IptablesHiLink iptablesBadComment    Error
+IptablesHiLink iptablesTodo          Todo   
+
+"============================================================================
+" Section:  Clean Up    {{{1
+"============================================================================
+
+delcommand IptablesHiLink
+
+let b:current_syntax = "iptables"
+
+if main_syntax == 'iptables'
+  unlet main_syntax
+endif
+
+" Autoconfigure vim indentation settings
+" vim:ts=4:sw=4:sts=4:fdm=marker:iskeyword+=-
diff --git a/vimrc b/vimrc
new file mode 100644 (file)
index 0000000..e102466
--- /dev/null
+++ b/vimrc
@@ -0,0 +1,466 @@
+"set vim config dir
+let b:vim_conf_dir = $HOME.'/.vim'
+if has("win32")
+    let b:vim_conf_dir = $HOME.'\vimfiles'
+endif
+
+if isdirectory( b:vim_conf_dir . '/tmp/') == 0
+    call mkdir(b:vim_conf_dir.'/tmp/', 'p', 0700)
+endif
+
+set nocompatible
+
+"load plugins
+if filereadable(b:vim_conf_dir . '/plugins.vundel.vim')
+    exec 'source ' . b:vim_conf_dir . '/plugins.vundel.vim'
+endif
+
+set backspace=indent,eol,start
+set relativenumber
+set number
+"set lazyredraw
+
+set autoindent
+set expandtab
+set tabstop=4
+set softtabstop=4
+set shiftwidth=4
+
+set pastetoggle=<F3>
+
+set scrolloff=5
+"set sidescrolloff=10
+set encoding=utf-8
+set modeline
+
+set history=50
+set noerrorbells
+set visualbell t_vb=
+set hidden
+set nojoinspaces
+set nrformats=
+set ttymouse=xterm2
+set mouse=a
+
+" Tab-completion in command-line mode
+set path+=**
+set wildmode=full
+set wildmenu
+set wildignore=*.pdf,*.fo,
+set title
+
+" Appearance
+set ruler
+set showmode
+set showcmd
+set laststatus=2
+set hlsearch
+set incsearch
+set ignorecase
+set smartcase
+
+" remove =, thus 'gf' works whit filepath asignemens like myvar=/path/tofile
+set isfname-==
+
+let perl_include_pod = 1
+augroup PerlSettings
+    autocmd!
+    autocmd FileType perl setlocal complete-=i
+augroup END
+
+let mapleader = ","
+
+nnoremap <F8> ]s
+nnoremap <S-F8> [s
+nnoremap Z Y
+
+" Window switching
+nnoremap <C-k> <C-W>k
+nnoremap <C-j> <C-W>j
+nnoremap <C-h> <C-W>h
+nnoremap <C-l> <C-W>l
+
+nnoremap <Leader>i a'" <<  << "' <Esc>6hi
+nnoremap <Leader>a a'{}' <Esc>2hi
+nnoremap <Leader>A a'"+  +"' <Esc>4hi
+
+nnoremap <Leader>A a'"+  +"' <Esc>4hi
+
+" see :h restore-position
+nnoremap <Leader>= msHmp=iB'pzt`s
+
+inoremap kj <Esc>
+inoremap jk <Esc>
+inoremap ts<tab> // TODOts: <Esc>=$A
+inoremap no<tab> <Esc>0i <nodoc /><Esc>0i///<Esc>=$
+inoremap td<tab> <Esc>0i//TODOts: doku<CR><summary> </summary><Esc>0i/// <Esc>kVj=$
+
+autocmd InsertEnter * set timeoutlen=500
+autocmd InsertLeave * set timeoutlen=1000
+
+inoremap in<tab> <Esc>0i<inheritdoc /><Esc>0i///<Esc>V=
+
+" do not use ex mode
+map Q <Nop>
+
+nnoremap <C-p> :bprev<CR>
+nnoremap <C-n> :bnext<CR>
+
+nnoremap <leader>e :tabedit $MYVIMRC<CR>
+
+nnoremap  ZZ :wqall<CR>
+nnoremap  <F6> :wa<CR>:make -j 8<CR><CR>
+inoremap  <F6> <esc>:wa<CR>:make -j 8<CR><CR>
+
+nnoremap <C-l> <C-W>l
+
+" Copy paste to/from system clipboard
+vnoremap <C-c> "*y
+inoremap <C-S-v> <esc>"*p
+vnoremap <C-S-v> "*p
+
+
+"nnoremap <Leader>= mzgg=G`z<CR>
+nnoremap <F2> :call FormatDocument()<CR>
+" write using sudo.
+cmap w!! w !sudo tee > /dev/null %
+"
+"move visually selected
+
+vnoremap <M-j> :m '>+1<CR>gv=gv
+vnoremap <M-k> :m '<-2<CR>gv=gv
+nnoremap <M-k> :m -2<CR>==
+nnoremap <M-j> :m +1<CR>==
+
+" repeat last command on all selected:
+vnoremap . :normal.<CR>
+
+
+"vnoremap <leader>tt :Tabular /^[^=]*\zs\S*=/l1l2<cr>
+vnoremap <leader>tt :Tabular /^[^-+=]*\zs\S*=/l1l2<cr>
+vnoremap <leader>t, :Tabular /,\zs/l1l1<cr>
+vnoremap <leader>t<space>  :Tabular /\s\+\zs/l1l1<cr>
+vnoremap <leader>t(  :Tabular /(/l1l0<cr>
+vnoremap <leader>t:  :Tabular /:/r0c1l0<cr>
+"
+" append word under cursor with 'or' to current search pattern
+nnoremap <Leader>s yiw/<C-R>/\\|<C-R>"<cr>
+" append selection with 'or' to current search pattern
+vnoremap <Leader>s y/<C-R>/\\|<C-R>"<cr>
+
+cmap w!! w !sudo tee % >/dev/null
+nnoremap <Leader>mh :wa<CR>:silent !mhsend -run reload code<CR>:redraw!<CR>
+nnoremap <Leader>ll iprint_log("");<Esc>V=0f(la
+
+if has('win32')
+    nnoremap <Leader>r :source ~/vimfiles/vimrc<CR>
+else
+    nnoremap <Leader>r :source ~/.vim/vimrc<CR>
+endif
+
+
+filetype plugin indent on
+
+let g:neocomplete#enable_at_startup = 1
+
+" ack seems to have vanished from artfull, thus use silversearchger-ag
+" for ack.vim:
+if executable('ag')
+    let g:ackprg = 'ag --vimgrep'
+endif
+
+set list listchars=tab:→\ ,trail:·
+
+
+set diffopt+=vertical
+set diffopt+=iwhite
+set diffopt+=algorithm:patience
+"jump to next diff and center line
+noremap <leader>n ]cz.
+noremap <leader>p [cz.
+if &diff
+    " ignore whitespace
+    set diffopt+=vertical
+    set diffopt+=iwhite
+    set diffopt+=algorithm:patience
+    syntax off
+    " go fullscreen:
+    autocmd GuiEnter * simalt ~x
+    " make all diff windows the same size
+    autocmd VimResized * wincmd =
+    autocmd VimEnter *  2wincmd w
+    autocmd VimEnter *  syntax off
+    autocmd VimEnter * set guioptions+=b
+    set relativenumber!
+    set number
+else
+    syntax on
+    if has("gui_running")
+        set lines=999 columns=120
+    endif
+    " from /etc/vim/vimrc (restore last editing position)
+    if has("autocmd")
+        au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
+    endif
+endif
+
+" remove currently unused fugitive buffers:
+autocmd BufReadPost fugitive://* set bufhidden=delete
+
+autocmd GuiEnter * simalt ~x
+
+" reset terminal colors after vim leaves
+"if !has("gui_running")
+"    au VimLeave * !echo -ne "\033[0m"
+"endif
+
+" macht dass auch in screen auf dem server der vollstaendige hintergund gmalt
+" wird.
+set t_ut=
+
+
+if has("gui_running")
+    if has('win32')
+        set guifont=Consolas:h10:cANSI:qDRAFT
+    else
+        set guifont=Monospace\ 12
+    endif
+endif
+
+
+if has ('win32') || has('win32unix')
+    let g:vimwiki_list = [
+                \{
+                \   'path':'~/vimwiki', 
+                \   'path_html':'~/vimwiki/html/',
+                \   'syntax': 'markdown',
+                \   'ext': '.md'
+                \ }
+                \ ]
+else
+    let g:vimwiki_list = [
+                \ {
+                \   'path':'~/p/wiki',
+                \   'path_html':'~/p/wiki/html/',
+                \   'syntax': 'markdown',
+                \   'ext': '.md'
+                \ }
+                \ ]
+endif
+
+"" tmp files:
+if isdirectory( b:vim_conf_dir . '/tmp/backup') == 0
+    call mkdir(b:vim_conf_dir.'/tmp/backup', 'p', 0700)
+endif
+exec 'set backupdir='. b:vim_conf_dir.'/tmp/backup//'
+set backup
+
+" Save your swp files to a less annoying place than the current directory.
+" If you have .vim-swap in the current directory, it'll use that.
+" Otherwise it saves it to ~/.vim/swap, ~/tmp or .
+if isdirectory( b:vim_conf_dir . '/tmp/swap') == 0
+    call mkdir(b:vim_conf_dir.'/tmp/swap', 'p', 0700)
+endif
+exec 'set directory='. b:vim_conf_dir.'/tmp/swap//'
+
+" viminfo stores the the state of your previous editing session
+if has('win32')
+    set viminfo+=n~/vimfiles/tmp/viminfo
+else
+    set viminfo+=n~/.vim/tmp/viminfo
+endif
+
+" letzte suche beim öffnen einer Datei sofort wieder anzeigen
+set viminfo-=h
+
+if exists("+undofile")
+    " undofile - This allows you to use undos after exiting and restarting
+    " This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
+    " :help undo-persistence
+    " This is only present in 7.3+
+    if isdirectory( b:vim_conf_dir . '/tmp/undo') == 0
+        call mkdir(b:vim_conf_dir.'/tmp/undo', 'p', 0700)
+    endif
+    exec 'set undodir='. b:vim_conf_dir.'/tmp/undo'
+    set undofile
+endif
+
+" format document
+function! FormatDocument()
+    let save_pos = getpos(".")
+    normal gg=G
+    call setpos('.', save_pos)
+    echom "formatiert.."
+endfunction
+
+noremap <Leader>x :call XmlPretty()<cr>
+" reformat xml stuff
+function! XmlPretty()
+    let save_pos = getpos(".")
+    :silent! %s/&lt;/</g
+    :silent! %s/&gt;/>/g
+    :silent! %s/></>\r</g
+    :set ft=xml
+    :normal mzgg=G`z
+    call setpos('.', save_pos)
+endfunction
+
+" fix logger stuff to use the newer api call
+" remove #regions and whitspaces
+" use {var} instead of " + var + "
+noremap <Leader>fx ma:1,$ call FixCsharp()<cr>'a
+function! FixCsharp() range
+    let save_pos = getpos(".")
+    " regions entfernen;
+    :silent! execute a:firstline.",".a:lastline.'g/^\s*#\(end\)\{0,1\}region/d'
+    " mehrere leerzeilen durch eine einzelne ersetzen:
+    :silent! execute a:firstline.",".a:lastline.'s/\s\+$//e'
+    :silent! execute a:firstline.",".a:lastline.'s/\n\{3,}/\r\r/e'
+
+    silent! execute a:firstline.",".a:lastline.'g/\.WriteException(/normal 0df,$^iLog.Exception(\eV='
+    silent! execute a:firstline.",".a:lastline.'g/\.WriteMessage(/normal 0f(ldf."ayiw0P0xlveu0iLog.\eelcf,(\eld0$^PV='
+
+    " '+ varname +' durch '{varname}' ersetzen
+    silent! execute a:firstline.",".a:lastline.'s/"\s*+\s*\(.\{-\}\)\s*+\s*"/{\1}/g'
+    silent! execute a:firstline.",".a:lastline.'s/"\s*+\s*\(.\{-\}\)\s*+\s*$/{\1}" +/g'
+    silent! execute a:firstline.",".a:lastline.'s/"\s*+\s*\(.\{-\}\)\s*);/{\1}");/g'
+    "ersetze log...(rank, "
+    silent! execute a:firstline.",".a:lastline.'s/,\s*\("[^"]*{\)/, $\1/c'
+    "ersetze 'Zeilenanfang "'
+    silent! execute a:firstline.",".a:lastline.'s/\(^\s*\)\("[^"]*{\)/\1$\2/c'
+    silent! execute a:firstline.",".a:lastline.'s/[^$]\(".*{\)/$\1/c'
+    noh
+    call setpos('.', save_pos)
+endfunction
+
+function! FixWhitespace()
+    " convert tabs to spaces
+    :retab
+    " remove trailing whitespace
+    :silent! %s/\s\+$//e
+    :silent! g/\s*<!--\**-->\s*/d
+
+    " remov '//******' and '//#####'
+    :silent! g/\/\/\(\*\|#\)*\s*$/d
+    " remove excessive newlines
+    :silent! %s/\n\n\n\+/\r\r/
+endfunction
+
+function! UndoCSharStringInterpolation()
+    silent! s/\$"/"/g
+    silent! s/{\(.\{-}\)}/" + \1 + "/g
+endfunction
+
+
+"""" ALE start """"
+inoremap <F4> <Esc>:ALEToggle<CR>
+nnoremap <F4> <Esc>:ALEToggle<CR>
+let g:ale_linters = {
+            \   'cpp': ['gcc', 'cppcheck', 'clang'],
+            \} 
+let b:ale_warn_about_trailing_whitespace = 1
+let g:ale_sign_column_always = 1
+let g:ale_cpp_clang_options =
+            \  '-std=c++14 -Wall -pedantic -fPIC
+            \   -I/usr/include/x86_64-linux-gnu/qt5
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtGui
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtCore
+            \   -I/usr/include/libdrm
+            \   -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g+
+            \'
+
+let g:ale_cpp_gcc_options = 
+            \  '-std=c++14 -Wall -pedantic -fPIC
+            \   -I/usr/include/x86_64-linux-gnu/qt5
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtGui
+            \   -I/usr/include/x86_64-linux-gnu/qt5/QtCore
+            \   -I/usr/include/libdrm
+            \   -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g+
+            \'
+
+"""" ALE end """"
+
+if has("patch-7.4.354")
+    " Indents word-wrapped lines as much as the 'parent' line
+    set breakindent
+    " Ensures word-wrap does not split words
+    set formatoptions=l
+    set lbr
+endif
+
+hi CursorLineNr  term=underline  cterm=underline      ctermfg=White    ctermbg=darkBlue guibg=darkyellow
+hi clear Cursorline
+"hi CursorLine    gui=underline term=underline cterm=underline
+augroup CursorLine
+  au!
+  au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
+  au WinLeave * setlocal nocursorline
+augroup END
+
+packadd! matchit
+
+let g:acp_enableAtStartup = 1
+let g:acp_behaviorPerlOmniLength = 0
+let g:acp_behaviorPhpOmniLength = 0
+let g:acp_completeoptPreview = 1
+let g:acp_behaviorPythonOmniLength = 0
+let g:acp_behaviorXmlOmniLength = 0
+let g:acp_behaviorHtmlOmniLength = 0
+let g:acp_behaviorCssOmniPropertyLength = 1
+let g:acp_behaviorCssOmniValueLength = 0
+
+" auskommentiert, macht in screen das nix gut aussieht..
+"set termguicolors 
+set background=dark
+try
+    let g:gruvbox_contrast_dark = 'dark'
+    let g:gruvbox_italicize_comments = 0
+    colorscheme gruvbox
+catch /^Vim\%((\a\+)\)\=:E185/
+    "  wird evtl rest instlliert... E185 heißt nicht gefunden..
+endtry
+
+set textwidth=120
+let &colorcolumn="121"
+highlight ColorColumn ctermbg=lightgray guibg=lightcyan
+
+highlight ExtraWhitespace ctermfg=red guifg=red ctermbg=white guibg=DarkGrey
+
+" keine trailing whitespaces in hub log files anzeigen
+match ExtraWhitespace /\s\+$/
+
+let g:ale_python_flake8_options = "--max-line-length=120"
+
+if has("win32")
+    function! CopyFormatted(line1, line2)
+        let prev_number = &number
+        let prev_relativenumber = &relativenumber
+        let prev_background = &background
+        let prev_ft = &ft
+        setlocal number!
+        setlocal relativenumber!
+        setlocal background=light
+        " wenn ft manuel gesetzt war wird das von set background zurueckgesetzt, deswegen gleich wieder setzen
+        exe 'setlocal ft='.expand(prev_ft)
+
+        execute a:line1 . "," . a:line2 . "TOhtml"
+        %yank *
+        !start /min powershell -noprofile "gcb | scb -as"
+        bwipeout!
+
+        if (prev_number)
+            set number
+        endif
+        if (prev_relativenumber)
+            set relativenumber
+        endif
+        exe 'setlocal background='.expand(prev_background)
+        exe 'setlocal ft='.expand(prev_ft)
+    endfunction
+
+    command! -range=% HtmlClip silent call CopyFormatted(<line1>,<line2>)
+endif