mirror of
https://github.com/troglobit/libuev.git
synced 2026-10-16 10:29:30 +00:00
Import from compactor
This commit is contained in:
1 parent
89022a9faa
commit
36a937505c
72 files changed
-5156
No files matched your search
@@ -1,2 +0,0 @@
|
||||
PATH=~/bin:/usr/local/bin:$PATH
|
||||
. $HOME/.bashrc
|
||||
-215
@@ -1,215 +0,0 @@
|
||||
[ -n "$DISPLAY" ] && export TERM=xterm-color
|
||||
SHELL=$BASH
|
||||
|
||||
if [ -n "$PS1" ] ;then
|
||||
[[ $0 != -* && $- != *l* ]] && . /etc/profile
|
||||
[[ $BASH_COMPLETION ]] || . /etc/bash_completion
|
||||
#. /etc/profile
|
||||
|
||||
for p in ~/bin /usr/local/bin ;do
|
||||
[[ $PATH != *${p}:* ]] && PATH=${p}:$PATH ;done
|
||||
export SVN_EDITOR=vi
|
||||
HISTCONTROL=ignoredups
|
||||
IGNOREEOF=3
|
||||
HISTSIZE=2000
|
||||
HISTFILESIZE=50000
|
||||
|
||||
__col() {
|
||||
[[ $TERM == xterm* || $TERM == linux ]] && echo -n '\[\e[3'${1}'m\]'
|
||||
}
|
||||
PS1="[$(__col 1)\h $(__col 2)\W$(__col 3)\$(exitrep)$(__col 9)]\\\$ "
|
||||
eval `dircolors ~/.dircolors`
|
||||
|
||||
[ -f /etc/rc.d/functions ] && USECOLOR=yes source /etc/rc.d/functions
|
||||
|
||||
alias mark='echo -e "\n\n\n\n ${C_H2}---- `date` ----${C_CLEAR}\n\n\n\n"'
|
||||
alias l=' less'
|
||||
alias m=' mark'
|
||||
alias df=' df -k'
|
||||
alias ll=' ls -la'
|
||||
alias ls=' ls --color=auto'
|
||||
alias where='type -a'
|
||||
alias grep='grep --color=auto'
|
||||
alias svnhead="svnlog --limit=20"
|
||||
alias sort='LC_ALL=C sort'
|
||||
|
||||
export SVN=svn+ssh://ampsvn/srv/ampemb
|
||||
svnlast() { if [[ $# -ge 1 ]] ;then svnlog -p -l 25 "$@" ;else svnlog -p -a $USER -l 25 ;fi; }
|
||||
svnminfo() { svn mergeinfo $SVN/trunk/embedded \
|
||||
--show-revs ${@:-eligible} | \
|
||||
xargs -i svnlog '-{}' svn+ssh://ampsvn/srv/ampemb/trunk/embedded; }
|
||||
|
||||
svnst() { svn st "$@" | grep -v '^[X?]'; }
|
||||
hgst() { hg st "$@" | grep -v '^[X?]'; }
|
||||
lth() { ls -lat "$@" | head -20; }
|
||||
alias open='kfmclient exec'
|
||||
url() { kfmclient openURL "$*"; }
|
||||
vimless() { vim --cmd 'let no_plugin_maps = 1 | let load_less = 1' \
|
||||
--cmd 'set readonly noswapfile' \
|
||||
-c 'set mouse=a' \
|
||||
-c 'runtime macros/less.vim' "${@:--}"; }
|
||||
p() { "$@" | less;}
|
||||
v() { if [[ $# -eq 1 && -e $1 ]] ;then vimless $1 ;else "$@" | vimless ;fi }
|
||||
vis() { vi +set\ hlsearch $(which "$@"); }
|
||||
_txt() { eval "file $*" | grep -w text | cut -d: -f1; }
|
||||
vif() { vi -c set\ hlsearch "+/$*/" $(egrep -l "$*" $(_txt \*)); }
|
||||
vdiff() { vi -g -f -d --cmd 'set columns=164' -c 'normal <C-W>=' "$@"; }
|
||||
mt() { xterm +tb -e sh -c "while multitail $@; do : ;done"; }
|
||||
ToAURoot() { tar zcf - $2 | command ssh $1 tar zxvf - -C /flash/root/; }
|
||||
Trace() { amp-backtrace.lua "$@" | less +/'ERROR=>' --jump-target=.5; }
|
||||
psman() { man -aW "$@" | xargs zcat | groff -man -Tps -P-pa4 \
|
||||
| psnup -pa4 -2 -d1 | less;}
|
||||
f() { awk -v N="$*" 'BEGIN {split(N, Nr, / |,/)}
|
||||
{for (n in Nr) {printf("%s%s", (n>1) ? " " : "", $Nr[n])}; print ""}'; }
|
||||
e() { lua -e "print($*)"; }
|
||||
|
||||
__h()
|
||||
{
|
||||
local -a C
|
||||
local -i I
|
||||
local N
|
||||
eval $(grep "$@" ~/.bash_history | uniq | command tail -10 | tac \
|
||||
| awk '{print "C[" I++ "]=\047" gensub("\047", "\047\\\\\047\047", "g", $0) "\047"}')
|
||||
if [[ ${#C[@]} > 0 ]] ;then
|
||||
for ((I=0; I<${#C[@]}; I++ )) ;do echo "$I: ${C[$I]}" > /dev/tty ;done
|
||||
read -n 1 -p "Select command: " N </dev/tty >/dev/tty
|
||||
if [[ $N = [0-9] && ${#C[$N]} > 0 ]] ;then
|
||||
echo " ... Running [$N]" >/dev/tty
|
||||
echo "${C[$N]}"
|
||||
else
|
||||
echo '' >/dev/tty
|
||||
fi
|
||||
fi
|
||||
}
|
||||
h() {
|
||||
local ___Very_UnL1leLy_7ar=$(__h "$@")
|
||||
history -s $___Very_UnL1leLy_7ar
|
||||
eval $___Very_UnL1leLy_7ar
|
||||
}
|
||||
alias hi="history|tail"
|
||||
|
||||
case $TERM in
|
||||
sun-cmd) stln() { printf "\033]l %s \033" "$*"; } ; itit() { :; }
|
||||
;;
|
||||
xterm*) stln() { printf "\033]2;%s\007" "$*" ; }
|
||||
itit() { printf "\033]1;%s\007" "$*" ; }
|
||||
;;
|
||||
*) stln() { :; } ; itit() { :; }
|
||||
;;
|
||||
esac
|
||||
HostnTty=`uname -n | tr '[a-z]' '[A-Z]'`:`tty | cut -c9-`
|
||||
Tty=`tty | cut -c10-`
|
||||
stdir() {
|
||||
local p=${PWD/$AMPROOT/@}
|
||||
if [[ $p = @/* ]] ;then Path=${p:2}; else Path=""; fi
|
||||
local p=${p/$HOME/\~}
|
||||
local V=''
|
||||
stln "-- $HostnTty ${TOOLCHAIN_PS1_LABEL/#tt/[tt${TARGET_PLATFORM/#V26/26}] }- $p --"
|
||||
itit "$Tty - $(sed 's/\([a-zA-Z]\)[a-zA-Z]*/\1/g' <<< ${AMPROOT##*/}) - ${p##*/}"
|
||||
}
|
||||
|
||||
sshwrap() {
|
||||
local Cmd Host CmdU
|
||||
Cmd=$1 ; shift
|
||||
Host=$(command ssh -o 'ProxyCommand=echo %h >/dev/fd/9' -o ControlPath=none "$@" 9>&1 2>&-)
|
||||
CmdU=$(tr a-z A-Z <<<$Cmd)
|
||||
itit "$Tty - $CmdU $Host"
|
||||
command $Cmd "$@"
|
||||
}
|
||||
ssh() { sshwrap ssh "$@"; }
|
||||
aussh() { sshwrap aussh "$@"; }
|
||||
au-sshgw() { sshwrap au-sshgw "$@"; }
|
||||
tail() { itit "$Tty - TAIL $@" ; command tail "$@"; }
|
||||
cu() { itit "$Tty - CU $@" ; command cu "$@"; }
|
||||
locate()
|
||||
{
|
||||
if [[ $# == 1 ]] ;then
|
||||
command locate -b "$@"
|
||||
else
|
||||
command locate "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
timerep() {
|
||||
local timeRep=$TIMESHOW ; [[ $timeRep ]] || timeRep=$TIMEREPORT
|
||||
[[ ! -n $timeRep ]] && return
|
||||
times > /tmp/.time$$
|
||||
local no timeStart cmd timeNow
|
||||
timeNow=$(< /tmp/.time$$)
|
||||
HISTTIMEFORMAT="%s " history 1 > /tmp/.time$$
|
||||
read no timeStart cmd < /tmp/.time$$
|
||||
if [[ -n $_timeprev ]] ;then
|
||||
echo $_timeprev $timeNow | tr ms ' ' | awk '
|
||||
{
|
||||
usrPrev = $5*60 + $6
|
||||
sysPrev = $7*60 + $8
|
||||
usrCur = $13*60 + $14
|
||||
sysCur = $15*60 + $16
|
||||
total = (usrCur + sysCur) - (usrPrev + sysPrev)
|
||||
if (total >= timeRep) {
|
||||
printf("%.3fu %.3fs %d:%02d %.1f%%\n",
|
||||
usrCur - usrPrev, sysCur - sysPrev,
|
||||
duration / 60, duration % 60, total / duration * 100.0)
|
||||
}
|
||||
}' timeRep=$timeRep duration=$(( $(date +%s) - $timeStart ))
|
||||
fi
|
||||
_timeprev=$timeNow
|
||||
unset TIMESHOW
|
||||
rm -f /tmp/.time$$
|
||||
}
|
||||
TIMEREPORT=1
|
||||
tim() { TIMESHOW=0 ; "$@"; }
|
||||
|
||||
exitrep() {
|
||||
declare -a P=( ${PIPESTATUS[@]} )
|
||||
local Last=$((${#P[*]} - 1))
|
||||
[[ ${P[$Last]} -ne 0 ]] && echo " E:${P[$Last]}"
|
||||
}
|
||||
|
||||
profile_check() {
|
||||
local curtime=$(stat -c %y $HOME/.bashrc)
|
||||
if [[ $_profile_time && $_profile_time != $curtime ]] ;then
|
||||
source $HOME/.bashrc
|
||||
fi
|
||||
_profile_time=$curtime
|
||||
}
|
||||
|
||||
PROMPT_COMMAND='history -a; stdir; timerep; profile_check'
|
||||
if [[ -d ~/.keychain && "$UID" -ne 0 ]] ;then
|
||||
#keychain --quiet ~/.ssh/id_dsa --timeout 1440 # 24 hours.
|
||||
keychain --quiet ~/.ssh/id_dsa
|
||||
. ~/.keychain/`uname -n`-sh
|
||||
fi
|
||||
|
||||
if [[ -f /opt/toolchain/toolchain-setup ]] ;then
|
||||
tt() { unset TOOLCHAIN_HOME ;. /opt/toolchain/toolchain-setup>/dev/null; }
|
||||
untt() { unset CROSS_COMPILE ARCH TOOLCHAIN_PS1_LABEL
|
||||
unalias make; }
|
||||
tt; untt
|
||||
fi
|
||||
|
||||
amptree() {
|
||||
if [ $# -eq 0 ] ;then echo $AMPROOT ; return ;fi
|
||||
if [ $1 == --completions ] ;then
|
||||
( cd ~/amplex ; ls -1d */arm9 ) | cut -d/ -f1 | grep "^$3"
|
||||
return
|
||||
fi
|
||||
local noCD=""
|
||||
if [[ $1 == --nocd ]] ;then noCD=1; shift; fi
|
||||
AMPROOT=~/amplex/$1
|
||||
CDPATH=""
|
||||
for d in ~ $AMPROOT/{,arm9,arm9/agentframework/{,agents,libs},arm9/apps/{,drivers},arm9/utils,arm9/drivers} ~/{amplex,releases,src,abs,abs2} ;do
|
||||
CDPATH=$CDPATH:$d
|
||||
done
|
||||
export LUA_CPATH=";;$AMPROOT/arm9/agentframework/lua/?.so"
|
||||
if [[ ! -n $noCD ]] ;then
|
||||
echo $AMPROOT/arm9
|
||||
cd $AMPROOT/arm9
|
||||
fi
|
||||
}
|
||||
complete -C 'amptree --completions' amptree
|
||||
amptree --nocd embedded
|
||||
complete -F _command -o filenames p v
|
||||
complete -c vis env where
|
||||
fi
|
||||
# vim: set sw=3 sts=3 et:
|
||||
-139
@@ -1,139 +0,0 @@
|
||||
# @(#)cshrc 1.11 89/11/29 SMI
|
||||
umask 2
|
||||
set path = ( ~/bin /usr/local/bin $path )
|
||||
if ( $?prompt ) then
|
||||
# source /etc/CciCshEnv
|
||||
#foreach l ( "` env - PATH=/bin sh -c '. /etc/profile; env' | awk -f ~/.envtocsh`" )
|
||||
# eval "$l"
|
||||
#end
|
||||
set HostnTty = `uname -n | tr '[a-z]' '[A-Z]'`
|
||||
set HostnTty = "$HostnTty":`tty | cut -c9-`
|
||||
set cdpath = ( /var/abs/* ~ )
|
||||
if (`tty` !~ /dev/pts/*) then
|
||||
set term = `tset -Q -` >&/dev/null
|
||||
else if ( ! $?TERM) then
|
||||
set term = vt100
|
||||
endif
|
||||
eval `dircolors -c ~/.dircolors`
|
||||
alias h history
|
||||
alias more less
|
||||
alias m more
|
||||
alias df 'df -k'
|
||||
alias ll 'ls -la'
|
||||
alias ls 'ls --color=auto'
|
||||
alias grep 'grep --color=auto'
|
||||
alias lth 'ls -lat \!* | head -20'
|
||||
alias open 'kfmclient exec'
|
||||
alias url 'kfmclient openURL "\!:*"'
|
||||
alias l less
|
||||
alias p '\!* | l'
|
||||
alias v '\!* | vi - +set\ nomodified'
|
||||
alias vis 'vi +set\ hlsearch `/usr/bin/which \!*`'
|
||||
alias vif 'vi -c set\ hlsearch +/\!*/ `egrep -l \!* *`'
|
||||
alias prnt 'enscript -2 -r -j'
|
||||
alias vdiff "vi -g -f -d --cmd 'set columns=164' -c 'normal <C-W>=' \!:*"
|
||||
alias mt 'xterm +tb -e sh -c "while multitail \!* ; do : ;done"'
|
||||
alias ToAURoot 'tar zcf - \!:2 | ssh \!:1 tar zxvf - -C /flash/root/'
|
||||
alias psman 'man -aW \!* | xargs zcat | groff -man -Tps -P-pa4 | psnup -pa4 -2 -d1 | less '
|
||||
alias autunnel 'ssh -L 22000:localhost:20532 -t ssh@gatekeeper ssh -p22\!:1 -L20532:localhost:22 root@localhost'
|
||||
alias aetunnel 'ssh -L 22000:localhost:20532 -t amplex@172.23.0.230 ssh -L20532:localhost:22 root@\!:1'
|
||||
|
||||
if ( $TERM == sun-cmd ) then
|
||||
alias stln 'printf "\033]l %s \033\" \!*'
|
||||
else if ( $TERM =~ xterm* ) then
|
||||
alias stln 'printf "\033]2;%s\007\033]1;%s\007" \!* "$HostnTty"'
|
||||
alias xtitle 'printf "\033]2;%s\007\033]1;%s\007" \!:1 \!:1'
|
||||
printf "\033]1;%s\007" "$HostnTty"
|
||||
else
|
||||
alias stln 'echo "\!*" >/dev/null'
|
||||
endif
|
||||
alias stdir 'stln "-- $HostnTty - `/bin/pwd | sed s,^$HOME,~,` --"'
|
||||
alias cd 'set old="$cwd"; chdir \!:*; stdir'
|
||||
alias back 'set tmp="$cwd"; chdir "$old"; set old="$tmp" ; stdir'
|
||||
alias cb back
|
||||
|
||||
set history=200
|
||||
if ($?tcsh) then
|
||||
setenv SHELL /bin/sh
|
||||
set autolist
|
||||
set visiblebell
|
||||
set time = 2
|
||||
set histdup = prev
|
||||
set printexitvalue
|
||||
set ignoreeof = 2
|
||||
set echo_style = both
|
||||
set matchbeep=nomatch
|
||||
set color=ls-F
|
||||
unset autologout
|
||||
#bindkey -v
|
||||
#bindkey vi-cmd-mode
|
||||
bindkey -e
|
||||
bindkey [1\;2~ complete-word-fwd
|
||||
bindkey [1\;6~ complete-word-back
|
||||
bindkey [1\;4~ complete-word-raw
|
||||
bindkey [1~ complete-word-fwd
|
||||
bindkey ' ' magic-space
|
||||
bindkey -b ^W backward-delete-word
|
||||
bindkey -b ^G list-glob
|
||||
bindkey -b M-G expand-glob
|
||||
bindkey -b M-P dabbrev-expand
|
||||
bindkey -k up history-search-backward
|
||||
bindkey -k down history-search-forward
|
||||
bindkey -b ^A spell-word
|
||||
bindkey -b ^P dabbrev-expand
|
||||
bindkey -b ^N normalize-path
|
||||
bindkey -b ^K normalize-command
|
||||
|
||||
alias _col ': \!:1'
|
||||
|
||||
if ( $term =~ xterm* ) alias _col 'echo -n "%{^[[3\!:1m%}"'
|
||||
if ($uid > 0) then
|
||||
set prompt="`_col 1`%m`_col 9`.%h.`_col 2`%c`_col 9`> "
|
||||
else
|
||||
set prompt="`_col 1`%m`_col 9`.%h.`_col 2`%c`_col 9`# "
|
||||
endif
|
||||
|
||||
# Esoteric
|
||||
complete find 'n/-fstype/(nfs ufs)/' 'n/-name/f/' \
|
||||
'n/-type/(c b d f p l s)/' 'n/-user/u/' 'n/-exec/c/' \
|
||||
'n/-ok/c/' 'n/-cpio/f/' 'n/-ncpio/f/' 'n/-newer/f/' \
|
||||
'c/-/(fstype name perm prune type user nouser \
|
||||
group nogroup size inum atime mtime ctime exec \
|
||||
ok print ls cpio ncpio newer xdev depth)/' \
|
||||
'n/*/d/'
|
||||
complete dd 'c/conv=/(ascii ebcdic ibm block lcase ucase swab \
|
||||
noerror notrunc sync)/' \
|
||||
'c/if=/f/' 'c/of=/f/' \
|
||||
'p/*/(if of ibs obs bs cbs files skip iseek \
|
||||
oseek seek count conv)/=/'
|
||||
|
||||
complete set 'p/1/s/'
|
||||
complete setenv 'p/1/e/'
|
||||
complete unset 'p/1/s/'
|
||||
complete unsetenv 'p/1/e/'
|
||||
complete vis 'p/1/c/'
|
||||
complete p 'p/1/c/'
|
||||
complete v 'p/1/c/'
|
||||
complete man 'p/1/c/'
|
||||
complete sudo 'p/1/c/'
|
||||
complete Su 'p/1/c/'
|
||||
complete alias 'p/1/a/'
|
||||
complete unalias 'p/1/a/'
|
||||
complete bindkey 'p/1/()' 'p/2/b/'
|
||||
complete complete 'p/1/c/'
|
||||
complete uncomplete 'p/1/C/'
|
||||
complete which 'p/*/c/'
|
||||
complete where 'p/*/c/'
|
||||
complete cd 'p/1/d/'
|
||||
endif
|
||||
if ( "$USER" != "root" ) then
|
||||
keychain --quiet ~/.ssh/id_dsa --timeout 1440 # 24 hours.
|
||||
source ~/.keychain/`uname -n`-csh
|
||||
endif
|
||||
alias tt 'source ~/.cshrc.tt'
|
||||
alias amptree 'setenv AMPROOT \!:1; set cdpath = ( ~ ~/{amplex,releases,src,abs,abs2} \!:1/{,arm9,arm9/agentframework/{,agents,libs},arm9/apps/{,drivers},arm9/utils,arm9/drivers} )'
|
||||
amptree ~/amplex/embedded_ampcom
|
||||
setenv SVN_EDITOR vi
|
||||
|
||||
cd .
|
||||
endif
|
||||
@@ -1,108 +0,0 @@
|
||||
# Configuration file for dircolors, a utility to help you set the
|
||||
# LS_COLORS environment variable used by GNU ls with the --color option.
|
||||
|
||||
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
|
||||
# slackware version of dircolors) are recognized but ignored.
|
||||
|
||||
# Below, there should be one TERM entry for each termtype that is colorizable
|
||||
TERM linux
|
||||
TERM linux-c
|
||||
TERM mach-color
|
||||
TERM console
|
||||
TERM con132x25
|
||||
TERM con132x30
|
||||
TERM con132x43
|
||||
TERM con132x60
|
||||
TERM con80x25
|
||||
TERM con80x28
|
||||
TERM con80x30
|
||||
TERM con80x43
|
||||
TERM con80x50
|
||||
TERM con80x60
|
||||
TERM dtterm
|
||||
TERM xterm
|
||||
TERM xterm-color
|
||||
TERM xterm-16color
|
||||
TERM xterm-debian
|
||||
TERM rxvt
|
||||
TERM screen
|
||||
TERM screen-w
|
||||
TERM vt100
|
||||
TERM Eterm
|
||||
|
||||
# Below are the color init strings for the basic file types. A color init
|
||||
# string consists of one or more of the following numeric codes:
|
||||
# Attribute codes:
|
||||
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
|
||||
# Text color codes:
|
||||
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
|
||||
# Background color codes:
|
||||
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
|
||||
NORMAL 00 # global default, although everything should be something.
|
||||
FILE 00 # normal file
|
||||
DIR 34 # directory
|
||||
LINK 36 # symbolic link. (If you set this to 'target' instead of a
|
||||
# numerical value, the color is as for the file pointed to.)
|
||||
FIFO 40;33 # pipe
|
||||
SOCK 04;35 # socket
|
||||
DOOR 04;35 # door
|
||||
BLK 33;04 # block device driver
|
||||
CHR 33;04 # character device driver
|
||||
ORPHAN 40;31;01 # symlink to nonexistent file
|
||||
|
||||
# This is for files with execute permission:
|
||||
EXEC 32
|
||||
|
||||
# List any file extensions like '.gz' or '.tar' that you would like ls
|
||||
# to colorize below. Put the extension, a space, and the color init string.
|
||||
# (and any comments you want to add after a '#')
|
||||
|
||||
# If you use DOS-style suffixes, you may want to uncomment the following:
|
||||
#.cmd 01;32 # executables (green)
|
||||
#.exe 01;32
|
||||
#.com 01;32
|
||||
#.btm 01;32
|
||||
#.bat 01;32
|
||||
|
||||
.tar 31 # archives or compressed (red)
|
||||
.tgz 31
|
||||
.arj 31
|
||||
.taz 31
|
||||
.lzh 31
|
||||
.zip 31
|
||||
.z 31
|
||||
.Z 31
|
||||
.gz 31
|
||||
.bz2 31
|
||||
.deb 31
|
||||
.rpm 31
|
||||
.jar 31
|
||||
|
||||
# image formats
|
||||
.jpg 35
|
||||
.jpeg 35
|
||||
.gif 35
|
||||
.bmp 35
|
||||
.pbm 35
|
||||
.pgm 35
|
||||
.ppm 35
|
||||
.tga 35
|
||||
.xbm 35
|
||||
.xpm 35
|
||||
.tif 35
|
||||
.tiff 35
|
||||
.png 35
|
||||
.mov 35
|
||||
.mpg 35
|
||||
.mpeg 35
|
||||
.avi 35
|
||||
.fli 35
|
||||
.gl 35
|
||||
.dl 35
|
||||
.xcf 35
|
||||
.xwd 35
|
||||
|
||||
# audio formats
|
||||
.ogg 35
|
||||
.mp3 35
|
||||
.wav 35
|
||||
@@ -1,54 +0,0 @@
|
||||
|
||||
# Readline settings
|
||||
set bell-style visible
|
||||
set show-all-if-ambiguous on
|
||||
set visible-stats on
|
||||
set input-meta on
|
||||
set convert-meta off
|
||||
set output-meta on
|
||||
set expand-tilde on
|
||||
set completion-ignore-case on
|
||||
set completion-query-items 10000
|
||||
|
||||
# Bindings - make it somewhat more like tcsh
|
||||
"\C-r": redraw-current-line
|
||||
"\C-d": delete-char-or-list
|
||||
|
||||
# Menu completion on Shift-TAB go back with Shift-F1
|
||||
"\e[Z": menu-complete
|
||||
"\e[1;2~": menu-complete
|
||||
"\eO2P": "\e-\e[Z"
|
||||
|
||||
# More line editing
|
||||
$if Bash
|
||||
" ": magic-space
|
||||
$endif
|
||||
"\d": forward-backward-delete-char
|
||||
"\C-h": backward-delete-char
|
||||
"\C-x\C-h": backward-kill-line
|
||||
"\C-x\C-s": reverse-search-history
|
||||
"\C-x\C-f": forward-search-history
|
||||
"\C-s": reverse-search-history
|
||||
"\C-w": unix-filename-rubout
|
||||
"\ew": unix-word-rubout
|
||||
"\eu": undo
|
||||
|
||||
# CTRL Arrow up and down searches for what is typed so far
|
||||
"\e[1;3A": history-search-backward
|
||||
"\e[1;3B": history-search-forward
|
||||
"\e[1;5A": history-search-backward
|
||||
"\e[1;5B": history-search-forward
|
||||
|
||||
"\e[1;3D": backward-char
|
||||
"\e[1;3C": forward-char
|
||||
"\e[D": backward-char
|
||||
"\e[C": forward-char
|
||||
|
||||
# Misc
|
||||
"\C-xsk": dump-functions
|
||||
# At least Rdlf has it
|
||||
"\C-xsh": dump-history
|
||||
|
||||
"\C-xkr": kill-region
|
||||
"\C-xcr": copy-region-as-kill
|
||||
|
||||
Whitespace-only changes.
@@ -1,2 +0,0 @@
|
||||
|
||||
exe 'syn match luaOperator /||/'
|
||||
@@ -1,5 +0,0 @@
|
||||
augroup filetypedetect
|
||||
au BufNewFile,BufRead *.mwiki setfiletype mediawiki
|
||||
augroup END
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
setlocal encoding=utf-8
|
||||
setlocal textwidth=0
|
||||
setlocal linebreak
|
||||
setlocal matchpairs+=<:>
|
||||
setlocal showbreak=+\
|
||||
nnoremap <buffer> k gk
|
||||
nnoremap <buffer> j gj
|
||||
nnoremap <buffer> <Up> gk
|
||||
nnoremap <buffer> <Down> gj
|
||||
nnoremap <buffer> 0 g0
|
||||
nnoremap <buffer> ^ g^
|
||||
nnoremap <buffer> $ g$
|
||||
inoremap <buffer> <Up> <C-O>gk
|
||||
inoremap <buffer> <Down> <C-O>gj
|
||||
vnoremap <buffer> k gk
|
||||
vnoremap <buffer> j gj
|
||||
vnoremap <buffer> <Up> gk
|
||||
vnoremap <buffer> <Down> gj
|
||||
vnoremap <buffer> 0 g0
|
||||
vnoremap <buffer> ^ g^
|
||||
vnoremap <buffer> $ g$
|
||||
@@ -1,249 +0,0 @@
|
||||
" Vim script to work like "less"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2006 Dec 05
|
||||
|
||||
" Avoid loading this file twice, allow the user to define his own script.
|
||||
if exists("loaded_less")
|
||||
finish
|
||||
endif
|
||||
let loaded_less = 1
|
||||
|
||||
" If not reading from stdin, skip files that can't be read.
|
||||
" Exit if there is no file at all.
|
||||
if argc() > 0
|
||||
let s:i = 0
|
||||
while 1
|
||||
if filereadable(argv(s:i))
|
||||
if s:i != 0
|
||||
sleep 3
|
||||
endif
|
||||
break
|
||||
endif
|
||||
if isdirectory(argv(s:i))
|
||||
echomsg "Skipping directory " . argv(s:i)
|
||||
elseif getftime(argv(s:i)) < 0
|
||||
echomsg "Skipping non-existing file " . argv(s:i)
|
||||
else
|
||||
echomsg "Skipping unreadable file " . argv(s:i)
|
||||
endif
|
||||
echo "\n"
|
||||
let s:i = s:i + 1
|
||||
if s:i == argc()
|
||||
quit
|
||||
endif
|
||||
next
|
||||
endwhile
|
||||
endif
|
||||
|
||||
set nocp
|
||||
syntax on
|
||||
set so=0
|
||||
set hlsearch
|
||||
set incsearch
|
||||
nohlsearch
|
||||
" Don't remember file names and positions
|
||||
set viminfo=
|
||||
set nows
|
||||
" Inhibit screen updates while searching
|
||||
let s:lz = &lz
|
||||
set lz
|
||||
|
||||
" Used after each command: put cursor at end and display position
|
||||
if &wrap
|
||||
noremap <SID>L L0:redraw<CR>:file<CR>
|
||||
au VimEnter * normal! L0
|
||||
else
|
||||
noremap <SID>L Lg0:redraw<CR>:file<CR>
|
||||
au VimEnter * normal! Lg0
|
||||
endif
|
||||
|
||||
" When reading from stdin don't consider the file modified.
|
||||
au VimEnter * set nomod
|
||||
|
||||
" Can't modify the text
|
||||
set noma
|
||||
|
||||
" Give help
|
||||
noremap h :call <SID>Help()<CR>
|
||||
map H h
|
||||
fun! s:Help()
|
||||
echo "<Space> One page forward b One page backward"
|
||||
echo "d Half a page forward u Half a page backward"
|
||||
echo "<Enter> One line forward k One line backward"
|
||||
echo "G End of file g Start of file"
|
||||
echo "N% percentage in file"
|
||||
echo "\n"
|
||||
echo "/pattern Search for pattern ?pattern Search backward for pattern"
|
||||
echo "n next pattern match N Previous pattern match"
|
||||
echo "\n"
|
||||
echo ":n<Enter> Next file :p<Enter> Previous file"
|
||||
echo "\n"
|
||||
echo "q Quit v Edit file"
|
||||
let i = input("Hit Enter to continue")
|
||||
endfun
|
||||
|
||||
" Scroll one page forward
|
||||
noremap <script> <Space> :call <SID>NextPage()<CR><SID>L
|
||||
map <C-V> <Space>
|
||||
map f <Space>
|
||||
map <C-F> <Space>
|
||||
map z <Space>
|
||||
map <Esc><Space> <Space>
|
||||
fun! s:NextPage()
|
||||
if line(".") == line("$")
|
||||
if argidx() + 1 >= argc()
|
||||
exe "normal! \<Esc>"
|
||||
else
|
||||
next
|
||||
1
|
||||
endif
|
||||
else
|
||||
exe "normal! \<C-F>"
|
||||
endif
|
||||
endfun
|
||||
|
||||
" Re-read file and page forward "tail -f"
|
||||
map F :e<CR>G<SID>L:sleep 1<CR>F
|
||||
|
||||
" Scroll half a page forward
|
||||
noremap <script> d <C-D><SID>L
|
||||
map <C-D> d
|
||||
|
||||
" Scroll one line forward
|
||||
noremap <script> <CR> <C-E><SID>L
|
||||
map <C-N> <CR>
|
||||
map e <CR>
|
||||
map <C-E> <CR>
|
||||
map j <CR>
|
||||
map <C-J> <CR>
|
||||
map <Down> <CR>
|
||||
|
||||
" Scroll one page backward
|
||||
noremap <script> b <C-B><SID>L
|
||||
map <C-B> b
|
||||
map w b
|
||||
map <Esc>v b
|
||||
|
||||
" Scroll half a page backward
|
||||
noremap <script> u <C-U><SID>L
|
||||
noremap <script> <C-U> <C-U><SID>L
|
||||
|
||||
" Scroll one line backward
|
||||
noremap <script> k <C-Y><SID>L
|
||||
map y k
|
||||
map <C-Y> k
|
||||
map <C-P> k
|
||||
map <C-K> k
|
||||
map <Up> k
|
||||
|
||||
" Redraw
|
||||
noremap <script> r <C-L><SID>L
|
||||
noremap <script> <C-R> <C-L><SID>L
|
||||
noremap <script> R <C-L><SID>L
|
||||
|
||||
" Start of file
|
||||
noremap <script> g gg<SID>L
|
||||
map < g
|
||||
map <Esc>< g
|
||||
|
||||
" End of file
|
||||
noremap <script> G G<SID>L
|
||||
map > G
|
||||
map <Esc>> G
|
||||
|
||||
" Go to percentage
|
||||
noremap <script> % %<SID>L
|
||||
map p %
|
||||
|
||||
" Search
|
||||
noremap <script> / H$:call <SID>Forward()<CR>/
|
||||
if &wrap
|
||||
noremap <script> ? H0:call <SID>Backward()<CR>?
|
||||
else
|
||||
noremap <script> ? Hg0:call <SID>Backward()<CR>?
|
||||
endif
|
||||
|
||||
fun! s:Forward()
|
||||
" Searching forward
|
||||
noremap <script> n H$nzt<SID>L
|
||||
if &wrap
|
||||
noremap <script> N H0Nzt<SID>L
|
||||
else
|
||||
noremap <script> N Hg0Nzt<SID>L
|
||||
endif
|
||||
cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
|
||||
endfun
|
||||
|
||||
fun! s:Backward()
|
||||
" Searching backward
|
||||
if &wrap
|
||||
noremap <script> n H0nzt<SID>L
|
||||
else
|
||||
noremap <script> n Hg0nzt<SID>L
|
||||
endif
|
||||
noremap <script> N H$Nzt<SID>L
|
||||
cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
|
||||
endfun
|
||||
|
||||
call s:Forward()
|
||||
|
||||
" Quitting
|
||||
noremap q :q<CR>
|
||||
|
||||
" Switch to editing (switch off less mode)
|
||||
map v :silent call <SID>End()<CR>
|
||||
fun! s:End()
|
||||
set ma
|
||||
if exists('s:lz')
|
||||
let &lz = s:lz
|
||||
endif
|
||||
unmap h
|
||||
unmap H
|
||||
unmap <Space>
|
||||
unmap <C-V>
|
||||
unmap f
|
||||
unmap <C-F>
|
||||
unmap z
|
||||
unmap <Esc><Space>
|
||||
unmap F
|
||||
unmap d
|
||||
unmap <C-D>
|
||||
unmap <CR>
|
||||
unmap <C-N>
|
||||
unmap e
|
||||
unmap <C-E>
|
||||
unmap j
|
||||
unmap <Down>
|
||||
unmap <C-J>
|
||||
unmap b
|
||||
unmap <C-B>
|
||||
unmap w
|
||||
unmap <Esc>v
|
||||
unmap u
|
||||
unmap <C-U>
|
||||
unmap k
|
||||
unmap <Up>
|
||||
unmap y
|
||||
unmap <C-Y>
|
||||
unmap <C-P>
|
||||
unmap <C-K>
|
||||
unmap r
|
||||
unmap <C-R>
|
||||
unmap R
|
||||
unmap g
|
||||
unmap <
|
||||
unmap <Esc><
|
||||
unmap G
|
||||
unmap >
|
||||
unmap <Esc>>
|
||||
unmap %
|
||||
unmap p
|
||||
unmap n
|
||||
unmap N
|
||||
unmap q
|
||||
unmap v
|
||||
unmap /
|
||||
unmap ?
|
||||
endfun
|
||||
|
||||
" vim: sw=2
|
||||
@@ -1,116 +0,0 @@
|
||||
" Author: fma fro Ron Aarons newfmgr.vim
|
||||
|
||||
let g:srcsmgrhelp= "|'o'pen, 'e'dit or 'r'eplace to edit\n|Common listing for: "
|
||||
|
||||
" Set up hook to Common buffers:
|
||||
if 1
|
||||
aug srcsmgr
|
||||
au!
|
||||
au BufReadPre,BufEnter CMN::*/* nested call SrcmgrReload(expand("%"))
|
||||
au BufReadPre,BufEnter CMN::* nested call SrcmgrReload(expand("%"))
|
||||
au BufReadPre,BufEnter GRP::* nested call SrcmgrReload(expand("%"))
|
||||
au BufReadPre,BufEnter GLM::* nested call SrcmgrReload(expand("%"))
|
||||
au BufReadPre,BufEnter GLW::* nested call SrcmgrReload(expand("%"))
|
||||
aug END
|
||||
endif
|
||||
|
||||
" This routine gets called when we 'edit' a directory
|
||||
func! SrcmgrReload(name)
|
||||
let g:vimedname = a:name
|
||||
if ! exists("b:last") || (line("$")<=b:last)
|
||||
call ResultsWindow('-NEW-', g:srcsmgrhelp.a:name, 'call SrcmgrInit()',
|
||||
\ 'SrcmgrOnClick', 0, 'SrcmgrMap')
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" This one gets called by the ResultsWindow routine on initializing the window
|
||||
func! SrcmgrInit()
|
||||
let b:vimedname = g:vimedname
|
||||
if exists("b:last") && (line("$")>b:last)
|
||||
exe (b:last+1).',$ delete _'
|
||||
endif
|
||||
if exists("g:CommonRes")
|
||||
exe "put=g:CommonRes"
|
||||
unlet g:CommonRes
|
||||
else
|
||||
if b:vimedname =~ "CMN::" | let Command = "Common "
|
||||
elseif b:vimedname =~ "GRP::" | let Command = "Grep "
|
||||
elseif b:vimedname =~ "GLM::" || b:vimedname =~ "GLW::"
|
||||
if exists("g:GlimpsePath")
|
||||
let Command = "glimpse-tt -H ".g:GlimpsePath." "
|
||||
else
|
||||
let Command = "Glimpse "
|
||||
endif
|
||||
if b:vimedname =~ "GLW::"
|
||||
let Command = Command."-w "
|
||||
endif
|
||||
endif
|
||||
exe "put=system(\\\"".Command."'".strpart(b:vimedname, 5, 1000)."'\\\")"
|
||||
endif
|
||||
set nomodified
|
||||
syntax match MatchedPart /:.*/
|
||||
syntax match PathPart1 "/[^/]*$"ms=s+1 contained
|
||||
syntax match PathPart2 "/[^/:]*:"me=e-1,ms=s+1 contained
|
||||
syntax match LeadPath "^/[^:]*"ms=s+1 contains=PathPart1,PathPart2
|
||||
hi link MatchedPart Question
|
||||
hi link PathPart1 Title
|
||||
hi link PathPart2 Title
|
||||
|
||||
syntax match Hide /^|/ contained
|
||||
syntax match Lead /^|.*/ contains=Hide
|
||||
hi link Lead Directory
|
||||
hi link Hide NonText
|
||||
endfunc
|
||||
|
||||
" as does this, by ENTER or Dbl-click
|
||||
func! SrcmgrOnClick(line)
|
||||
call SrcmgrApply('e!')
|
||||
endfunc
|
||||
|
||||
|
||||
func! SrcmgrApply(what)
|
||||
" get the file on which the line is
|
||||
let path = substitute(getline("."), ":.*", '', '')
|
||||
if path !~ '^\/'
|
||||
let path = g:GlimpsePath.'/'.path
|
||||
endif
|
||||
if ! filereadable(path) && ! isdirectory(path)
|
||||
return
|
||||
endif
|
||||
if b:vimedname !~ '^CMN::'
|
||||
if &hlsearch == 0
|
||||
aug srcsmgr
|
||||
exe "au BufLeave ".path." set nohlsearch | au! srcsmgr BufLeave"
|
||||
aug END
|
||||
endif
|
||||
set hlsearch
|
||||
let @/ = strpart(b:vimedname, 5, 1000)
|
||||
else
|
||||
let @/ = "."
|
||||
endif
|
||||
if (a:what == 'new!') " create new window for file
|
||||
exe 'new +/'.@/.' '.path
|
||||
elseif (a:what =~ 'e!') " just edit the file
|
||||
set nomodified
|
||||
if a:what == 'e!!'
|
||||
exe "bdelete ".bufnr("%")
|
||||
endif
|
||||
exe 'find +/'.@/.' '.path
|
||||
else
|
||||
echo 'SrcmgrApply: '.a:what.']'
|
||||
endif
|
||||
set readonly
|
||||
endfunc
|
||||
|
||||
" turn special mappings on or off:
|
||||
func! SrcmgrMap(on)
|
||||
if a:on
|
||||
nmap o :call SrcmgrApply('new!')<cr>
|
||||
nmap e :call SrcmgrApply('e!')<cr>
|
||||
nmap r :call SrcmgrApply('e!!')<cr>
|
||||
else
|
||||
unmap o
|
||||
unmap e
|
||||
unmap r
|
||||
endif
|
||||
endfunc
|
||||
@@ -1,173 +0,0 @@
|
||||
" File: increment.vim
|
||||
" Author: Srinath Avadhanula
|
||||
" Email: srinath@eecs.berkeley.edu
|
||||
"
|
||||
" This script provides a way to quickly create incremented lists (either
|
||||
" increasing or decreasing) using the visual block mode.
|
||||
"
|
||||
" Synopsis:
|
||||
" =========
|
||||
" 1. Suppose you have a column of the following form:
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" 2. Choose the column of '1's using Ctrl-V and then run the command Inc (you
|
||||
" should see "'<,'>Inc" on the command line at this point)(if you do not
|
||||
" have any other user commands starting with 'I', just I will suffice).
|
||||
" This will tranform the text as:
|
||||
" array(1) = 3; array(1) = 3;
|
||||
" array(1) = 3; array(2) = 3;
|
||||
" array(1) = 3; --> array(3) = 3;
|
||||
" array(1) = 3; array(4) = 3;
|
||||
" array(1) = 3; array(5) = 3;
|
||||
" 3. You can then choose the column of '3's (again using Ctrl-V) and run the
|
||||
" command "Inc 3" to generate another incremented list. This will
|
||||
" generate:
|
||||
" array(1) = 3; array(1) = 3;
|
||||
" array(2) = 3; array(2) = 6;
|
||||
" array(3) = 3; --> array(3) = 9;
|
||||
" array(4) = 3; array(4) = 12;
|
||||
" array(5) = 3; array(5) = 15;
|
||||
"
|
||||
"
|
||||
" Note: increment.vim automatically pads the numbers in the the column
|
||||
" with spaces in order to get them right aligned. This is useful in most
|
||||
" cases, but for cases when this might be bad, use IncN which doesnt do
|
||||
" any alignment.
|
||||
"
|
||||
" Commands:
|
||||
" =========
|
||||
" 1. Inc : generates a column of increasing numbers with RIGHT alignment.
|
||||
" 2. IncN: generates a column of increasing numbers with NO alignment.
|
||||
" 3. IncL: generates a column of increasing numbers with LEFT alignment
|
||||
" 2. Inc : generates a column of increasing numbers with RIGHT alignment.
|
||||
" 4. IncN: generates a column of increasing numbers with NO alignment.
|
||||
" 6. IncL: generates a column of increasing numbers with LEFT alignment
|
||||
"
|
||||
" Tip:
|
||||
" A mapping which goes well with this command is the following:
|
||||
"
|
||||
" vnoremap <c-a> :Inc<CR>
|
||||
"
|
||||
" With this mapping, select a column of numbers and press Ctrl-A, which will
|
||||
" get them in increasing order. I use <c-a> because its similar to the <c-a>
|
||||
" command in normal mode which increments the number under the cursor.
|
||||
"
|
||||
" Last Modification: Dec 17 2001 00:59:09
|
||||
|
||||
|
||||
"===========================================================================
|
||||
com! -ra -nargs=? Inc :call IncrementColumn(1,<args>)
|
||||
com! -ra -nargs=? IncR :call IncrementColumn(2,<args>)
|
||||
com! -ra -nargs=? IncN :call IncrementColumn(0,<args>)
|
||||
com! -ra -nargs=? IncA :call IncrementColumn(11,<args>)
|
||||
com! -ra -nargs=? IncAR :call IncrementColumn(12,<args>)
|
||||
com! -ra -nargs=? IncAN :call IncrementColumn(10,<args>)
|
||||
vnoremap <c-a> :Inc<CR>
|
||||
|
||||
"===========================================================================
|
||||
function! StrRepeat(str, count)
|
||||
let i = 1
|
||||
let retStr = ""
|
||||
while i <= a:count
|
||||
let retStr = retStr.a:str
|
||||
let i = i + 1
|
||||
endwhile
|
||||
return retStr
|
||||
endfunction
|
||||
|
||||
" first argument is either 0 or 1 or 2 depending on whether padding with
|
||||
" spaces is desired (pad = 1,2) or not. the second argument contains the
|
||||
" counter increment. its optional. if not specified, its assumed to be 1.
|
||||
function! IncrementColumn(pad, ...)
|
||||
if a:0 == 0
|
||||
let incr = 1
|
||||
elseif a:0 == 1
|
||||
let incr = a:1
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
let pad = a:pad
|
||||
let addonly = 0
|
||||
if pad >= 10
|
||||
let addonly = 1
|
||||
let pad = pad - 10
|
||||
endif
|
||||
|
||||
let c1 = col("'<")
|
||||
let c2 = col("'>")
|
||||
let c1v = virtcol("'<")
|
||||
let c2v = virtcol("'>")
|
||||
let clen = c2v - c1v
|
||||
if c1 > c2
|
||||
let temp = c1
|
||||
let c1 = c2
|
||||
let c2 = temp
|
||||
end
|
||||
|
||||
let r1 = line("'<")
|
||||
let r2 = line("'>")
|
||||
if r1 > r2
|
||||
let temp = r1
|
||||
let r1 = r2
|
||||
let r2 = temp
|
||||
end
|
||||
|
||||
exe r1
|
||||
|
||||
exe "let presNum = ".strpart(getline('.'), c1-1, clen+1)
|
||||
|
||||
let lastnum = presNum
|
||||
if !addonly
|
||||
let lastnum = lastnum + incr*(r2-r1)
|
||||
endif
|
||||
" a simple way to find the number of digits in a number (including decimal
|
||||
" points, - signs etc).
|
||||
let maxstrlen = strlen("".lastnum)
|
||||
|
||||
let r = r1
|
||||
exe 'normal '.c1v.'|'
|
||||
while (r <= r2)
|
||||
let cnow = col(".")
|
||||
let linebef = strpart(getline('.'), 0, cnow-1)
|
||||
let lineaft = strpart(getline('.'), cnow+clen, 1000)
|
||||
|
||||
if addonly
|
||||
exe "let presNum = ".strpart(getline('.'), cnow-1, clen+1)
|
||||
let presNum = presNum + incr
|
||||
endif
|
||||
|
||||
" find the number of padding spaces required for left/rigth alignment
|
||||
if pad
|
||||
let preslen = strlen("".presNum)
|
||||
let padspace = StrRepeat(" ", maxstrlen - preslen)
|
||||
else
|
||||
let padspace = ""
|
||||
end
|
||||
|
||||
" the final line is made up of
|
||||
" 1. the part of the line before the number
|
||||
" 2. the padding spaces.
|
||||
" 3. the present number
|
||||
" 4. the part of the line after the number
|
||||
" the padding spaces are either before or after the current number
|
||||
" depending on whether the pad argument is 1 or 2 (respectively).
|
||||
if pad == 1
|
||||
let lineset = linebef.padspace.presNum.lineaft
|
||||
elseif pad == 2
|
||||
let lineset = linebef.presNum.padspace.lineaft
|
||||
else
|
||||
let lineset = linebef.presNum.lineaft
|
||||
end
|
||||
|
||||
call setline('.', lineset)
|
||||
let presNum = presNum + incr
|
||||
normal j
|
||||
let r = r + 1
|
||||
endwhile
|
||||
normal `<
|
||||
endfunction
|
||||
|
||||
@@ -1,150 +0,0 @@
|
||||
" File: increment.vim
|
||||
" Author: Srinath Avadhanula
|
||||
" Email: srinath@eecs.berkeley.edu
|
||||
"
|
||||
" This script provides a way to quickly create incremented lists (either
|
||||
" increasing or decreasing) using the visual block mode.
|
||||
"
|
||||
" Synopsis:
|
||||
" =========
|
||||
" 1. Suppose you have a column of the following form:
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" array(1) = 3;
|
||||
" 2. Choose the column of '1's using Ctrl-V and then run the command Inc (you
|
||||
" should see "'<,'>Inc" on the command line at this point)(if you do not
|
||||
" have any other user commands starting with 'I', just I will suffice).
|
||||
" This will tranform the text as:
|
||||
" array(1) = 3; array(1) = 3;
|
||||
" array(1) = 3; array(2) = 3;
|
||||
" array(1) = 3; --> array(3) = 3;
|
||||
" array(1) = 3; array(4) = 3;
|
||||
" array(1) = 3; array(5) = 3;
|
||||
" 3. You can then choose the column of '3's (again using Ctrl-V) and run the
|
||||
" command "Inc 3" to generate another incremented list. This will
|
||||
" generate:
|
||||
" array(1) = 3; array(1) = 3;
|
||||
" array(2) = 3; array(2) = 6;
|
||||
" array(3) = 3; --> array(3) = 9;
|
||||
" array(4) = 3; array(4) = 12;
|
||||
" array(5) = 3; array(5) = 15;
|
||||
"
|
||||
" Note: increment.vim automatically pads the numbers in the the column
|
||||
" with spaces in order to get them right aligned. This is useful in most
|
||||
" cases, but for cases when this might be bad, use IncN which doesnt do
|
||||
" any alignment.
|
||||
"
|
||||
" Commands:
|
||||
" =========
|
||||
" 1. Inc : generates a column of increasing numbers with RIGHT alignment.
|
||||
" 2. IncN: generates a column of increasing numbers with NO alignment.
|
||||
" 3. IncL: generates a column of increasing numbers with LEFT alignment
|
||||
"
|
||||
" Tip:
|
||||
" A mapping which goes well with this command is the following:
|
||||
"
|
||||
" vnoremap <c-a> :Inc<CR>
|
||||
"
|
||||
" With this mapping, select a column of numbers and press Ctrl-A, which will
|
||||
" get them in increasing order. I use <c-a> because its similar to the <c-a>
|
||||
" command in normal mode which increments the number under the cursor.
|
||||
"
|
||||
" Last Modification: Dec 17 2001 00:59:09
|
||||
|
||||
|
||||
"===========================================================================
|
||||
com! -ra -nargs=? Inc :call IncrementColumn(1,<args>)
|
||||
com! -ra -nargs=? IncR :call IncrementColumn(2,<args>)
|
||||
com! -ra -nargs=? IncN :call IncrementColumn(0,<args>)
|
||||
|
||||
"===========================================================================
|
||||
function! StrRepeat(str, count)
|
||||
let i = 1
|
||||
let retStr = ""
|
||||
while i <= a:count
|
||||
let retStr = retStr.a:str
|
||||
let i = i + 1
|
||||
endwhile
|
||||
return retStr
|
||||
endfunction
|
||||
|
||||
" first argument is either 0 or 1 or 2 depending on whether padding with
|
||||
" spaces is desired (pad = 1,2) or not. the second argument contains the
|
||||
" counter increment. its optional. if not specified, its assumed to be 1.
|
||||
function! IncrementColumn(pad, ...)
|
||||
if a:0 == 0
|
||||
let incr = 1
|
||||
elseif a:0 == 1
|
||||
let incr = a:1
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
let c1 = col("'<")
|
||||
let c2 = col("'>")
|
||||
let c1v = virtcol("'<")
|
||||
let c2v = virtcol("'>")
|
||||
let clen = c2v - c1v
|
||||
if c1 > c2
|
||||
let temp = c1
|
||||
let c1 = c2
|
||||
let c2 = temp
|
||||
end
|
||||
|
||||
let r1 = line("'<")
|
||||
let r2 = line("'>")
|
||||
if r1 > r2
|
||||
let temp = r1
|
||||
let r1 = r2
|
||||
let r2 = temp
|
||||
end
|
||||
|
||||
exe r1
|
||||
|
||||
exe "let presNum = ".strpart(getline('.'), c1-1, clen+1)
|
||||
|
||||
let lastnum = presNum + incr*(r2-r1)
|
||||
" a simple way to find the number of digits in a number (including decimal
|
||||
" points, - signs etc).
|
||||
let maxstrlen = strlen("".lastnum)
|
||||
|
||||
let r = r1
|
||||
exe 'normal '.c1v.'|'
|
||||
while (r <= r2)
|
||||
let cnow = col(".")
|
||||
let linebef = strpart(getline('.'), 0, cnow-1)
|
||||
let lineaft = strpart(getline('.'), cnow+clen, 1000)
|
||||
|
||||
" find the number of padding spaces required for left/rigth alignment
|
||||
if a:pad
|
||||
let preslen = strlen("".presNum)
|
||||
let padspace = StrRepeat(" ", maxstrlen - preslen)
|
||||
else
|
||||
let padspace = ""
|
||||
end
|
||||
|
||||
" the final line is made up of
|
||||
" 1. the part of the line before the number
|
||||
" 2. the padding spaces.
|
||||
" 3. the present number
|
||||
" 4. the part of the line after the number
|
||||
" the padding spaces are either before or after the current number
|
||||
" depending on whether the pad argument is 1 or 2 (respectively).
|
||||
if a:pad == 1
|
||||
let lineset = linebef.padspace.presNum.lineaft
|
||||
elseif a:pad == 2
|
||||
let lineset = linebef.presNum.padspace.lineaft
|
||||
else
|
||||
let lineset = linebef.presNum.lineaft
|
||||
end
|
||||
|
||||
call setline('.', lineset)
|
||||
let presNum = presNum + incr
|
||||
normal j
|
||||
let r = r + 1
|
||||
endwhile
|
||||
normal `<
|
||||
endfunction
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
" Vim global plugin for javadoc comment wrangling
|
||||
" Maintainer: fm@amplex.dk
|
||||
|
||||
if exists("g:loaded_jdocConvert")
|
||||
" finish
|
||||
endif
|
||||
let g:loaded_jdocConvert = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
if !hasmapto('<Plug>jdocConvertCompact')
|
||||
map <unique> <Leader>jc <Plug>jdocConvertCompact
|
||||
endif
|
||||
noremap <unique> <script> <Plug>jdocConvertCompact <SID>ConvertCompact
|
||||
if !hasmapto('<Plug>jdocConvertHere')
|
||||
map <unique> <Leader>jh <Plug>jdocConvertHere
|
||||
endif
|
||||
noremap <unique> <script> <Plug>jdocConvertHere <SID>ConvertHere
|
||||
|
||||
function! s:JdocConvert(type, rng1, rng2) range
|
||||
let [rng1, rng2] = [a:rng1, a:rng2]
|
||||
if rng2 < rng1
|
||||
let [rng2,rng1] = [rng1,rng2]
|
||||
end
|
||||
let rng2 = max([rng1 + 3, rng2])
|
||||
let inp = getline(rng1, rng2)
|
||||
let out = []
|
||||
let txt = []
|
||||
let inside = -1
|
||||
let did_subst = 0
|
||||
let lead = ""
|
||||
let lno = rng2 - rng1
|
||||
for line in inp
|
||||
if line =~ '^\s*/\*\*'
|
||||
" Start jdoc
|
||||
let inside = 1
|
||||
let lead = substitute(line, '/\*\*.*$', "", "")
|
||||
elseif line =~ '^\s*\* ' && inside > 0
|
||||
" Inline jdoc
|
||||
call add(txt, substitute(line, '^\s*\* ', "", ""))
|
||||
elseif line =~ '^\s*\*/'
|
||||
" End jdoc
|
||||
let inside = 0
|
||||
if a:type == 1
|
||||
for l in txt
|
||||
call add(out, lead.'/// '.l)
|
||||
endfor
|
||||
let txt = []
|
||||
let did_subst = 1
|
||||
end
|
||||
elseif len(txt) > 0 && a:type == 2
|
||||
" Place text on first
|
||||
call add(out, line.' ///< '.txt[0])
|
||||
call remove(txt, 0)
|
||||
let did_subst = 1
|
||||
if len(txt) > 0
|
||||
let lead = repeat(" ", len(line)).' ///< '
|
||||
for l in txt
|
||||
call add(out, lead.l)
|
||||
endfor
|
||||
endif
|
||||
let txt = []
|
||||
else
|
||||
" Copy over
|
||||
call add(out, line)
|
||||
endif
|
||||
let lno += 1
|
||||
endfor
|
||||
if did_subst
|
||||
exe rng1.",".rng2 " delete"
|
||||
call append(rng1 - 1, out)
|
||||
exe rng1 - 1 + len(out)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:CallConvert(bang, l1, l2)
|
||||
let type = a:bang == "!" ? 1 : 2
|
||||
call s:JdocConvert(type, a:l1, a:l2)
|
||||
endfunction
|
||||
|
||||
nnoremap <SID>ConvertCompact :call <SID>JdocConvert(1, line("."), line(".") + v:count1 - 1)<CR>
|
||||
nnoremap <SID>ConvertHere :call <SID>JdocConvert(2, line("."), line(".") + v:count1 - 1)<CR>
|
||||
vnoremap <SID>ConvertCompact :call <SID>JdocConvert(1, line("'<"), line("'>"))<CR>
|
||||
vnoremap <SID>ConvertHere :call <SID>JdocConvert(2, line("'<"), line("'>"))<CR>
|
||||
command! -bang -range JdocConvert :call s:CallConvert("<bang>", <line1>, <line2>)
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,258 +0,0 @@
|
||||
" collection of misc code I find useful
|
||||
" Author: Ron Aaron ron@mossbayeng.com
|
||||
"
|
||||
" 'if 0'ed' everything outside the StatusWindow stuff /fma
|
||||
"
|
||||
" last update: Sun Jul 11 14:42:38 1999
|
||||
if 0
|
||||
set nocp
|
||||
|
||||
let g:utils_package_loaded = 1
|
||||
|
||||
" define whatever this package does, here
|
||||
func! SetIfBlank(var, value)
|
||||
let value = a:value
|
||||
if !exists(a:var)
|
||||
if match(a:value, '^expand') >= 0
|
||||
" expand it
|
||||
exe 'let value=' a:value
|
||||
let value=escape(value, '\')
|
||||
endif
|
||||
exe 'let ' a:var '= "'. value .'"'
|
||||
endif
|
||||
endfunc
|
||||
command! -nargs=* SetIfBlank call SetIfBlank(<f-args>)
|
||||
|
||||
" convert a number or bool to a portion of the passed-in string
|
||||
func! ValueToString(choices, value, bool)
|
||||
let retval = '<unknown>'
|
||||
|
||||
" first, convert the 'value' to an index:
|
||||
if (a:bool)
|
||||
" boolean. 0 == 'n' == 'No' == 'false'
|
||||
if a:value=~"[a-zA-Z]"
|
||||
if ((a:value =~ "^[nN]o*") || (a:value=~"^[Ff][aA][lL][sS][eE]"))
|
||||
let index = 0
|
||||
else
|
||||
let index = 1
|
||||
endif
|
||||
else
|
||||
let index = !(a:value == 0)
|
||||
endif
|
||||
else
|
||||
" force numeric.
|
||||
let index = 0 + a:value
|
||||
endif
|
||||
|
||||
" second, find the 'index'th string in 'choices', which should be a
|
||||
" comma-delmited string
|
||||
let x=0
|
||||
let choice=a:choices
|
||||
while 1
|
||||
if (x == index) " that's our boy!
|
||||
let ix = match(choice, ',')
|
||||
" extract the string up till the comma
|
||||
if ix == -1
|
||||
let ix = 99999
|
||||
endif
|
||||
let retval = strpart(choice, 0, ix)
|
||||
return retval
|
||||
endif
|
||||
" get next string part
|
||||
let ix = match(choice, ',')
|
||||
if ix == -1
|
||||
" failed!
|
||||
return retval
|
||||
endif
|
||||
let choice = strpart(choice, ix+1, 99999)
|
||||
" bump counter
|
||||
let x = x+1
|
||||
endwhile
|
||||
endfunc
|
||||
|
||||
" convert a number or bool to a portion of the passed-in string
|
||||
func! BoolString(bool)
|
||||
return ValueToString('no,yes', a:bool, 1)
|
||||
endfunc
|
||||
|
||||
endif
|
||||
|
||||
func! Fnmunge(name)
|
||||
let name = substitute(a:name,'[\\/ \t:]', '', 'g')
|
||||
return name
|
||||
endfunc
|
||||
|
||||
func! On_(true)
|
||||
if a:true | return "no" | else | return "" | endif
|
||||
endfunc
|
||||
|
||||
func! ResultsWindow (name,help,cmd,action,once,maps)
|
||||
" turn off reporting
|
||||
let rep=&report | let mo=On_(&more) | let ch=&ch | let te=On_(&terse)
|
||||
set report=9999 nomore ch=3 hidden terse
|
||||
|
||||
let retval=0
|
||||
|
||||
if exists("b:origbuf")
|
||||
let origbuf = b:origbuf
|
||||
elseif a:name == '-NEW-'
|
||||
let origbuf = bufnr(@#)
|
||||
else
|
||||
let origbuf = bufnr("")
|
||||
endif
|
||||
|
||||
let b:samebuf=0
|
||||
if (a:name == '')
|
||||
let b:samebuf=1
|
||||
% d _
|
||||
elseif a:name == '-NEW-'
|
||||
% d _
|
||||
else
|
||||
let name=g:home.'/'.Fnmunge(a:name)
|
||||
exe 'new ' . name
|
||||
endif
|
||||
let b:origbuf = origbuf
|
||||
let b:resultswindow=1
|
||||
let b:action = a:action
|
||||
let b:once = a:once
|
||||
let b:maps = a:maps " additional map function (one parm: 1=on, 0=off)
|
||||
|
||||
0 put=a:help
|
||||
let b:last = line("$") " save last line number
|
||||
normal G
|
||||
|
||||
" fill in the buffer with something:
|
||||
exe a:cmd
|
||||
if v:shell_error < 0
|
||||
if !b:samebuf
|
||||
unlet b:resultswindow
|
||||
bdelete!
|
||||
endif
|
||||
echo 'Problem executing command: ' . a:cmd . ':' . v:errmsg
|
||||
return
|
||||
endif
|
||||
|
||||
let last=line("$") " get new last line number...
|
||||
if (b:last == last) || ((last ==(b:last+1)) && getline(last)=='') "nothing!!!
|
||||
if !b:samebuf
|
||||
unlet b:resultswindow
|
||||
bdelete!
|
||||
endif
|
||||
elseif last == (b:last+1) " one more line
|
||||
let b:once=1
|
||||
call ResultsMap(1)
|
||||
call ResultsAct(last)
|
||||
let retval=1
|
||||
else " more than one ... set up window
|
||||
normal 1zt
|
||||
" exe 'normal ' . b:last . 'j'
|
||||
set nomod
|
||||
let retval=2
|
||||
call ResultsMap(1)
|
||||
endif
|
||||
|
||||
exe "set ".mo."more ".te."terse"." ch=".ch." report=".rep
|
||||
return retval
|
||||
endfunc
|
||||
|
||||
func! ResultsAct (lineno)
|
||||
if (a:lineno <= b:last) " in header
|
||||
return
|
||||
else
|
||||
let line=escape(getline(a:lineno),"'\"")
|
||||
let buffer=bufnr("")
|
||||
let action=b:action
|
||||
let origbuf = b:origbuf
|
||||
let dodelete = b:once && !b:samebuf
|
||||
|
||||
"see if action is a function:
|
||||
if exists("*".action)
|
||||
" yes, so 'call'
|
||||
let act='call '.action."('".line."')"
|
||||
exe act
|
||||
elseif (action != '')
|
||||
" no, just exe
|
||||
exe action . ' ' . line
|
||||
endif
|
||||
if dodelete
|
||||
exe 'bdelete! '.buffer
|
||||
let buffer=bufnr("")
|
||||
" Reestablish alternate file
|
||||
exe 'buffer '.origbuf
|
||||
exe 'buffer '.buffer
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func! ResultsMap (on)
|
||||
if (a:on)
|
||||
map <cr> :call ResultsAct(line("."))<cr>
|
||||
map <2-LeftMouse> <cr>
|
||||
if (exists("b:maps") && b:maps != '')
|
||||
exe 'call' b:maps . '(1)'
|
||||
endif
|
||||
else
|
||||
if mapcheck("<cr>")!=''
|
||||
unmap <2-LeftMouse>
|
||||
unmap <cr>
|
||||
endif
|
||||
if (exists("b:maps") && b:maps != '')
|
||||
exe 'call' b:maps . '(0)'
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
aug ResultsWindow
|
||||
au!
|
||||
au BufEnter * :if exists("b:resultswindow")|:call ResultsMap(1)|:endif
|
||||
au BufLeave * :if exists("b:resultswindow")|:call ResultsMap(0)|:endif
|
||||
au VimLeavePre * :call ResultsCleanup()
|
||||
aug END
|
||||
|
||||
func! ResultsCleanup()
|
||||
let ix = 1
|
||||
while ix <= bufnr("$")
|
||||
" NOTE: 'getbufvar' is my enhancement, you need my patches!
|
||||
if exists("*getbufvar") && getbufvar(ix,'resultswindow')
|
||||
exe 'bd '.ix
|
||||
elseif match(bufname(ix), '-results-') >= 0
|
||||
exe 'bd '.ix
|
||||
endif
|
||||
let ix = ix + 1
|
||||
endwhile
|
||||
endfunc
|
||||
|
||||
if 0
|
||||
|
||||
" we need 'g:vimlocal', so create it if not present
|
||||
if !exists("g:vimlocal")
|
||||
let g:vimlocal = expand("~") . '/vimscripts'
|
||||
endif
|
||||
func! SourceIfReadable(filename)
|
||||
let retcode=1
|
||||
|
||||
if filereadable(g:vimlocal . '/' . a:filename)
|
||||
exe 'so ' . g:vimlocal . '/' . a:filename
|
||||
elseif filereadable($VIM . '/' . a:filename)
|
||||
exe 'so ' . $VIM . '/' . a:filename
|
||||
elseif filereadable(a:filename)
|
||||
exe 'so ' . a:filename
|
||||
else
|
||||
let retcode=0
|
||||
endif
|
||||
return retcode
|
||||
endfunc
|
||||
command! -nargs=1 Source call SourceIfReadable(<q-args>)
|
||||
func! Require(package)
|
||||
let shortname = fnamemodify(a:package, ':r')
|
||||
if !exists("g:".shortname.'_package_loaded')
|
||||
" loads 'package'. First looks in 'vimscripts'
|
||||
if !SourceIfReadable(a:package)
|
||||
echo "Error! Cannot load required package " . a:package
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
command! -nargs=1 Require call Require(<q-args>)
|
||||
SetIfBlank g:home expand("~")
|
||||
|
||||
endif
|
||||
@@ -1,23 +0,0 @@
|
||||
" pyclewn run time file
|
||||
" Maintainer: <xdegaye at users dot sourceforge dot net>
|
||||
"
|
||||
" Configure VIM to be used with pyclewn and netBeans
|
||||
"
|
||||
" $Id: pyclewn.vim 16 2008-06-06 19:08:47Z xdegaye $
|
||||
|
||||
if exists("b:did_pyclewn")
|
||||
finish
|
||||
endif
|
||||
let b:did_pyclewn = 1
|
||||
|
||||
" pyclewn version
|
||||
let g:pyclewn_version = "pyclewn-0.5"
|
||||
|
||||
" enable balloon_eval
|
||||
if has("balloon_eval")
|
||||
set ballooneval
|
||||
set balloondelay=100
|
||||
endif
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
" my filetype file
|
||||
if did_filetype()
|
||||
finish
|
||||
endif
|
||||
if getline(1) =~ '^#!/bin/d\=ash'
|
||||
call SetFileTypeSH("ksh") " defined in filetype.vim
|
||||
endif
|
||||
@@ -1,17 +0,0 @@
|
||||
on
|
||||
off
|
||||
param
|
||||
telenor
|
||||
onboard
|
||||
devicemanager
|
||||
todo
|
||||
msp
|
||||
amplex
|
||||
accessor
|
||||
dk
|
||||
CONFIG
|
||||
TIMESTAMP
|
||||
msg
|
||||
deserialize
|
||||
messageswitch
|
||||
req
|
||||
Binary file not shown.
@@ -1,26 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: debugger variables window syntax file
|
||||
" Maintainer: <xdegaye at users dot sourceforge dot net>
|
||||
" Last Change: Oct 8 2007
|
||||
" $Id: dbgvar.vim 2 2007-12-23 15:10:42Z xavier $
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn region dbgVarChged display contained matchgroup=dbgIgnore start="={\*}"ms=s+1 end="$"
|
||||
syn region dbgDeScoped display contained matchgroup=dbgIgnore start="={-}"ms=s+1 end="$"
|
||||
syn region dbgVarUnChged display contained matchgroup=dbgIgnore start="={=}"ms=s+1 end="$"
|
||||
|
||||
syn match dbgItem display transparent "^.*$"
|
||||
\ contains=dbgVarUnChged,dbgDeScoped,dbgVarChged,dbgVarNum
|
||||
|
||||
syn match dbgVarNum display contained "^\s*\d\+:"he=e-1
|
||||
|
||||
high def link dbgVarChged Special
|
||||
high def link dbgDeScoped Comment
|
||||
high def link dbgVarNum Identifier
|
||||
high def link dbgIgnore Ignore
|
||||
|
||||
let b:current_syntax = "dbgvar"
|
||||
|
||||
@@ -1,292 +0,0 @@
|
||||
" Wikipedia syntax file for Vim
|
||||
" Published on Wikipedia in 2003-04 and declared authorless.
|
||||
"
|
||||
" Based on the HTML syntax file. Probably too closely based, in fact. There
|
||||
" may well be name collisions everywhere, but ignorance is bliss, so they say.
|
||||
"
|
||||
" To do: plug-in support for downloading and uploading to the server.
|
||||
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let main_syntax = 'html'
|
||||
endif
|
||||
|
||||
if version < 508
|
||||
command! -nargs=+ HtmlHiLink hi link <args>
|
||||
else
|
||||
command! -nargs=+ HtmlHiLink hi def link <args>
|
||||
endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn spell toplevel
|
||||
set spell
|
||||
|
||||
" tags
|
||||
syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar
|
||||
syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar
|
||||
syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1
|
||||
syn region htmlEndTag start=+</+ end=+>+ contains=htmlTagN
|
||||
|
||||
"syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,@htmlArgCluster
|
||||
syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
|
||||
|
||||
syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
|
||||
syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
|
||||
syn match htmlTagError contained "[^>]<"ms=s+1
|
||||
|
||||
" allowed tag names
|
||||
syn keyword htmlTagName contained b i u font big small sub sup
|
||||
syn keyword htmlTagName contained h1 h2 h3 h4 h5 h6 cite code em s strike strong tt var div center
|
||||
syn keyword htmlTagName contained blockquote ol ul dl table caption pre
|
||||
syn keyword htmlTagName contained ruby rt rb rp
|
||||
syn keyword htmlTagName contained br p hr li dt dd
|
||||
syn keyword htmlTagName contained table tr td th div blockquote ol ul
|
||||
syn keyword htmlTagName contained dl font big small sub sup
|
||||
syn keyword htmlTagName contained td th tr
|
||||
syn keyword htmlTagName contained nowiki math
|
||||
|
||||
" allowed arg names
|
||||
syn keyword htmlArg contained title align lang dir width height
|
||||
syn keyword htmlArg contained bgcolor clear noshade
|
||||
syn keyword htmlArg contained cite size face color
|
||||
syn keyword htmlArg contained type start value compact
|
||||
syn keyword htmlArg contained summary width border frame rules
|
||||
syn keyword htmlArg contained cellspacing cellpadding valign char
|
||||
syn keyword htmlArg contained charoff colgroup col span abbr axis
|
||||
syn keyword htmlArg contained headers scope rowspan colspan
|
||||
syn keyword htmlArg contained id class name style
|
||||
|
||||
" special characters
|
||||
syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
|
||||
|
||||
" comments
|
||||
syn region htmlComment start=+<!+ end=+>+ contains=htmlCommentPart,htmlCommentError
|
||||
syn match htmlCommentError contained "[^><!]"
|
||||
syn region htmlCommentPart contained start=+--+ end=+--\s*+ contains=@htmlPreProc
|
||||
syn region htmlComment start=+<!DOCTYPE+ keepend end=+>+
|
||||
|
||||
" HTML formatting
|
||||
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlComment,htmlLink
|
||||
|
||||
syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
|
||||
syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline
|
||||
syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline
|
||||
syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
|
||||
syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
|
||||
syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
|
||||
|
||||
syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
|
||||
syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic
|
||||
syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic
|
||||
syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmUnderlineItalicBold
|
||||
syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmUnderlineItalicBold
|
||||
syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
|
||||
syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
|
||||
syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
|
||||
syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
|
||||
|
||||
syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
|
||||
syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop
|
||||
syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline
|
||||
syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline
|
||||
syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop
|
||||
syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold
|
||||
syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
|
||||
syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
|
||||
|
||||
syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop
|
||||
syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop
|
||||
syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,cssStyle
|
||||
syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment
|
||||
|
||||
" wiki formatting
|
||||
"syn region wikiItalic start="\([^']\|\_^\)''[^']"hs=s+1 end="[^']''\([^']\|\_$\)"he=e-1 skip="<nowiki>.*</nowiki>" contains=wikiLink,wikiItalicBold
|
||||
"syn region wikiBold start="\([^']\|\_^\)'''[^']" end="[^']'''\([^']\|\_$\)" skip="<nowiki>.*</nowiki>" contains=wikiLink,wikiBoldItalic
|
||||
|
||||
"syn region wikiBoldItalic contained start="\([^']\|\_^\)''[^']" end="[^']''\([^']\|\_$\)" skip="<nowiki>.*</nowiki>" contains=wikiLink
|
||||
"syn region wikiItalicBold contained start="\([^']\|\_^\)'''[^']" end="[^']'''\([^']\|\_$\)" skip="<nowiki>.*</nowiki>" contains=wikiLink
|
||||
|
||||
"syn region wikiBoldAndItalic start="'''''" end="'''''" skip="<nowiki>.*</nowiki>" contains=wikiLink
|
||||
|
||||
syn region wikiItalic start=+'\@<!'''\@!+ end=+''+ contains=@Spell,wikiLink,wikiItalicBold
|
||||
syn region wikiBold start=+'''+ end=+'''+ contains=@Spell,wikiLink,wikiBoldItalic
|
||||
syn region wikiBoldAndItalic start=+'''''+ end=+'''''+ contains=@Spell,wikiLink
|
||||
|
||||
syn region wikiBoldItalic contained start=+'\@<!'''\@!+ end=+''+ contains=@Spell,wikiLink
|
||||
syn region wikiItalicBold contained start=+'''+ end=+'''+ contains=@Spell,wikiLink
|
||||
|
||||
syn region wikiH1 start="^=" end="=" skip="<nowiki>.*</nowiki>" oneline contains=@Spell,wikiLink
|
||||
syn region wikiH2 start="^==" end="==" skip="<nowiki>.*</nowiki>" oneline contains=@Spell,wikiLink
|
||||
syn region wikiH3 start="^===" end="===" skip="<nowiki>.*</nowiki>" oneline contains=@Spell,wikiLink
|
||||
syn region wikiH4 start="^====" end="====" skip="<nowiki>.*</nowiki>" oneline contains=@Spell,wikiLink
|
||||
syn region wikiH5 start="^=====" end="=====" skip="<nowiki>.*</nowiki>" oneline contains=@Spell,wikiLink
|
||||
syn region wikiH6 start="^======" end="======" skip="<nowiki>.*</nowiki>" oneline contains=@Spell,wikiLink
|
||||
syn region wikiLink start="\[\[" end="\]\]\(s\|'s\|es\|ing\|\)" skip="<nowiki>.*</nowiki>" oneline contains=wikiLink
|
||||
syn region wikiLink start="\[http:" end="\]" skip="<nowiki>.*</nowiki>" oneline
|
||||
syn region wikiLink start="\[https:" end="\]" skip="<nowiki>.*</nowiki>" oneline
|
||||
syn region wikiLink start="\[ftp:" end="\]" skip="<nowiki>.*</nowiki>" oneline
|
||||
syn region wikiLink start="\[gopher:" end="\]" skip="<nowiki>.*</nowiki>" oneline
|
||||
syn region wikiLink start="\[news:" end="\]" skip="<nowiki>.*</nowiki>" oneline
|
||||
syn region wikiLink start="\[mailto:" end="\]" skip="<nowiki>.*</nowiki>" oneline
|
||||
syn region wikiTemplate start="{{" end="}}" skip="<nowiki>.*</nowiki>"
|
||||
|
||||
syn match wikiParaFormatChar /^[\:|\*|;|#]\+/
|
||||
syn match wikiParaFormatChar /^-----*/
|
||||
syn match wikiPre /^\ .*$/
|
||||
|
||||
syn include @TeX syntax/tex.vim
|
||||
syntax region wikiTeX matchgroup=htmlTag start="<math>" end="</math>" skip="<nowiki>.*</nowiki>" contains=@TeX
|
||||
syntax region wikiRef matchgroup=htmlTag start="<ref>" end="</ref>" skip="<nowiki>.*</nowiki>"
|
||||
|
||||
|
||||
" HTML highlighting
|
||||
|
||||
HtmlHiLink htmlTag Function
|
||||
HtmlHiLink htmlEndTag Identifier
|
||||
HtmlHiLink htmlArg Type
|
||||
HtmlHiLink htmlTagName htmlStatement
|
||||
HtmlHiLink htmlSpecialTagName Exception
|
||||
HtmlHiLink htmlValue String
|
||||
HtmlHiLink htmlSpecialChar Special
|
||||
|
||||
HtmlHiLink htmlH1 Title
|
||||
HtmlHiLink htmlH2 htmlH1
|
||||
HtmlHiLink htmlH3 htmlH2
|
||||
HtmlHiLink htmlH4 htmlH3
|
||||
HtmlHiLink htmlH5 htmlH4
|
||||
HtmlHiLink htmlH6 htmlH5
|
||||
HtmlHiLink htmlHead PreProc
|
||||
HtmlHiLink htmlTitle Title
|
||||
HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlUnderlineBold htmlBoldUnderline
|
||||
HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlItalicUnderline htmlUnderlineItalic
|
||||
HtmlHiLink htmlItalicBold htmlBoldItalic
|
||||
HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic
|
||||
|
||||
HtmlHiLink htmlSpecial Special
|
||||
HtmlHiLink htmlSpecialChar Special
|
||||
HtmlHiLink htmlString String
|
||||
HtmlHiLink htmlStatement Statement
|
||||
HtmlHiLink htmlComment Comment
|
||||
HtmlHiLink htmlCommentPart Comment
|
||||
HtmlHiLink htmlValue String
|
||||
HtmlHiLink htmlCommentError htmlError
|
||||
HtmlHiLink htmlTagError htmlError
|
||||
HtmlHiLink htmlEvent javaScript
|
||||
HtmlHiLink htmlError Error
|
||||
|
||||
HtmlHiLink htmlCssStyleComment Comment
|
||||
HtmlHiLink htmlCssDefinition Special
|
||||
|
||||
" The default highlighting.
|
||||
if version >= 508 || !exists("did_html_syn_inits")
|
||||
if version < 508
|
||||
let did_html_syn_inits = 1
|
||||
endif
|
||||
HtmlHiLink htmlTag Function
|
||||
HtmlHiLink htmlEndTag Identifier
|
||||
HtmlHiLink htmlArg Type
|
||||
HtmlHiLink htmlTagName htmlStatement
|
||||
HtmlHiLink htmlSpecialTagName Exception
|
||||
HtmlHiLink htmlValue String
|
||||
HtmlHiLink htmlSpecialChar Special
|
||||
|
||||
if !exists("html_no_rendering")
|
||||
HtmlHiLink htmlH1 Title
|
||||
HtmlHiLink htmlH2 htmlH1
|
||||
HtmlHiLink htmlH3 htmlH2
|
||||
HtmlHiLink htmlH4 htmlH3
|
||||
HtmlHiLink htmlH5 htmlH4
|
||||
HtmlHiLink htmlH6 htmlH5
|
||||
HtmlHiLink htmlHead PreProc
|
||||
HtmlHiLink htmlTitle Title
|
||||
HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlUnderlineBold htmlBoldUnderline
|
||||
HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlItalicUnderline htmlUnderlineItalic
|
||||
HtmlHiLink htmlItalicBold htmlBoldItalic
|
||||
HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic
|
||||
HtmlHiLink htmlLink Underlined
|
||||
if !exists("html_my_rendering")
|
||||
hi def htmlBold term=bold cterm=bold gui=bold
|
||||
hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
|
||||
hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
|
||||
hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
|
||||
hi def htmlUnderline term=underline cterm=underline gui=underline
|
||||
hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
|
||||
hi def htmlItalic term=italic cterm=italic gui=italic
|
||||
endif
|
||||
endif
|
||||
|
||||
HtmlHiLink htmlPreStmt PreProc
|
||||
HtmlHiLink htmlPreError Error
|
||||
HtmlHiLink htmlPreProc PreProc
|
||||
HtmlHiLink htmlPreAttr String
|
||||
HtmlHiLink htmlPreProcAttrName PreProc
|
||||
HtmlHiLink htmlPreProcAttrError Error
|
||||
HtmlHiLink htmlSpecial Special
|
||||
HtmlHiLink htmlSpecialChar Special
|
||||
HtmlHiLink htmlString String
|
||||
HtmlHiLink htmlStatement Statement
|
||||
HtmlHiLink htmlComment Comment
|
||||
HtmlHiLink htmlCommentPart Comment
|
||||
HtmlHiLink htmlValue String
|
||||
HtmlHiLink htmlCommentError htmlError
|
||||
HtmlHiLink htmlTagError htmlError
|
||||
HtmlHiLink htmlEvent javaScript
|
||||
HtmlHiLink htmlError Error
|
||||
|
||||
HtmlHiLink javaScript Special
|
||||
HtmlHiLink javaScriptExpression javaScript
|
||||
HtmlHiLink htmlCssStyleComment Comment
|
||||
HtmlHiLink htmlCssDefinition Special
|
||||
endif
|
||||
|
||||
" wiki highlighting
|
||||
|
||||
HtmlHiLink wikiItalic htmlItalic
|
||||
HtmlHiLink wikiBold htmlBold
|
||||
|
||||
HtmlHiLink wikiBoldItalic htmlBoldItalic
|
||||
HtmlHiLink wikiItalicBold htmlBoldItalic
|
||||
|
||||
HtmlHiLink wikiBoldAndItalic htmlBoldItalic
|
||||
|
||||
HtmlHiLink wikiH1 htmlH1
|
||||
HtmlHiLink wikiH2 htmlH2
|
||||
HtmlHiLink wikiH3 htmlH3
|
||||
HtmlHiLink wikiH4 htmlH4
|
||||
HtmlHiLink wikiH5 htmlH5
|
||||
HtmlHiLink wikiH6 htmlH6
|
||||
HtmlHiLink wikiLink Underlined
|
||||
HtmlHiLink wikiTemplate Special
|
||||
HtmlHiLink wikiParaFormatChar Special
|
||||
HtmlHiLink wikiPre Constant
|
||||
HtmlHiLink wikiRef Comment
|
||||
|
||||
|
||||
let b:current_syntax = "html"
|
||||
|
||||
delcommand HtmlHiLink
|
||||
|
||||
if main_syntax == 'html'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: SVN commit file
|
||||
" Maintainer: Ben Collins <bcollins@debian.org>
|
||||
" URL: XXX
|
||||
" Last Change: Tue Oct 22 00:22:19 EDT 2002
|
||||
|
||||
" Based on the similar CVS commit file syntax
|
||||
|
||||
" Place this file as ~/.vim/syntax/svn.vim
|
||||
"
|
||||
" Then add the following lines to ~/.vimrc
|
||||
"
|
||||
" au BufNewFile,BufRead svn-commit.* setf svn
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn cluster svnChange contains=svnAdd,svnDel,svnMod,svnProp
|
||||
syn match svnLine /^--This line, and those below, will be ignored--$/ skipwhite skipnl skipempty nextgroup=@svnChange
|
||||
syn match svnAdd /^A[M ] .*$/ contained skipwhite skipnl skipempty nextgroup=@svnChange
|
||||
syn match svnDel /^D[M ] .*$/ contained skipwhite skipnl skipempty nextgroup=@svnChange
|
||||
syn match svnMod /^M[M ] .*$/ contained skipwhite skipnl skipempty nextgroup=@svnChange
|
||||
syn match svnProp /^_[M ] .*$/ contained skipwhite skipnl skipempty nextgroup=@svnChange
|
||||
|
||||
"The following is the old SVN template format markings
|
||||
"
|
||||
"syn region svnLine start="^SVN:" end="$" contains=svnAdd,svnDel,svnMod
|
||||
"syn match svnAdd contained " [A_][ A] .*"
|
||||
"syn match svnDel contained " [D_][ D] .*"
|
||||
"syn match svnMod contained " [M_][ M] .*"
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_svn_syn_inits")
|
||||
if version < 508
|
||||
let did_svn_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink svnAdd Structure
|
||||
HiLink svnDel SpecialChar
|
||||
HiLink svnMod PreProc
|
||||
HiLink svnProp Keyword
|
||||
HiLink svnLine Comment
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "svn"
|
||||
@@ -1,93 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: SVN log file
|
||||
" Maintainer: Adam Lazur <adam@lazur.org>
|
||||
" URL: XXX
|
||||
" Last Change: $Date: 2005-04-16 23:27:24 -0400 (Sat, 16 Apr 2005) $
|
||||
|
||||
" 1) Place this file in ~/.vim/syntax
|
||||
"
|
||||
" 2a) Then add the following lines to ~/.vimrc
|
||||
"
|
||||
" au BufNewFile,BufRead svn-log.* setf svn
|
||||
"
|
||||
" 2b) Or for autodetection, make a ~/.vim/scripts.vim with the following:
|
||||
"
|
||||
" if did_filetype() " filetype already set...
|
||||
" finish " ...then don't do these checks
|
||||
" endif
|
||||
" if getline(1) =~ /^-\{72}$/
|
||||
" setfiletype svnlog
|
||||
" endif
|
||||
|
||||
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
syn match svnLogSeparator /^-\{72}$/ skipwhite skipnl skipempty nextgroup=svnRevision
|
||||
|
||||
syn cluster svnLogInfoLine contains=svnRevision,svnLogUser,@svnLogDate,svnLogLines,svnLogInfoSeparator
|
||||
|
||||
syn match svnRevision /[r:]\d\+/ contained
|
||||
|
||||
syn match svnLogUser /\S\+/ contained
|
||||
syn match svnLogInfoSeparator /|/ skipwhite nextgroup=@svnLogInfoLine
|
||||
syn cluster svnLogDate contains=svnLogDateStamp,svnLogDateHuman
|
||||
syn match svnLogDateStamp /\d\{4}-\d\d-\d\d \d\d:\d\d:\d\d -\d\{4}/ skipwhite nextgroup=svnLogDateHuman
|
||||
syn match svnLogDateHuman /(.\D\{3} \d\d \D\{3} \d\{4})/he=e-1,hs=s+1 skipwhite nextgroup=svnLogInfoSeparator
|
||||
syn match svnLogLines /\d\+ lines\?/ skipnl nextgroup=svnChangedPaths,svnLogComment
|
||||
|
||||
" Changed paths highlighting
|
||||
syn region svnChangedPaths start=/^Changed paths:$/ end=/^$/ transparent contains=svnChangeLine,svnChange nextgroup=svnLogComment
|
||||
|
||||
syn match svnChangeLine /^Changed paths:$/ skipwhite skipnl skipempty contained nextgroup=@svnChange
|
||||
syn cluster svnChange contains=svnChangeAdd,svnChangeDel,svnChangeMod,svnChangeCopy
|
||||
syn match svnChangeDel /^ D .\+$/ contained skipnl nextgroup=@svnChange
|
||||
syn match svnChangeMod /^ M .\+$/ contained skipnl nextgroup=@svnChange
|
||||
syn match svnChangeAdd /^ A [^ ]\+/ contained skipnl nextgroup=@svnChange
|
||||
syn match svnChangeCopy /^ A [^ ]* (from [^)]\+)$/ contained skipnl nextgroup=@svnChange contains=svnRevision
|
||||
|
||||
" The comment is a region, we're cheating and swallowing the next
|
||||
" svnLogSeparator, but we add a contains to it'll highlight okay (breaks
|
||||
" comments containing svnLogSeparator... but that shouldn't be super common)
|
||||
syn region svnLogComment start=/\n/ end=/^-\{72}$/ skipnl keepend nextgroup=svnRevision contains=svnLogSeparator
|
||||
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_svnlog_syn_inits")
|
||||
if version < 508
|
||||
let did_svnlog_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink svnLogSeparator Comment
|
||||
HiLink svnLogInfoSeparator Comment
|
||||
HiLink svnRevision Label
|
||||
HiLink svnLogUser Normal
|
||||
HiLink svnLogDateStamp Comment
|
||||
HiLink svnLogDateHuman Comment
|
||||
HiLink svnLogLines Comment
|
||||
|
||||
HiLink svnLogComment Normal
|
||||
|
||||
HiLink svnChangeLine Comment
|
||||
HiLink svnChangeAdd Identifier
|
||||
HiLink svnChangeDel WarningMsg
|
||||
HiLink svnChangeMod PreProc
|
||||
HiLink svnChangeCopy SpecialKey
|
||||
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "svnlog"
|
||||
@@ -1,32 +0,0 @@
|
||||
" Setup my own color preferences for syntax highlighting
|
||||
|
||||
if &background == "dark"
|
||||
hi Comment term=bold ctermfg=Cyan guifg=#80a0ff
|
||||
hi Type term=underline ctermfg=Magenta guifg=#ffa0a0
|
||||
hi Special term=bold ctermfg=LightRed guifg=Orange
|
||||
hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff
|
||||
hi Statement term=bold ctermfg=Yellow guifg=#ffff60 gui=bold
|
||||
hi PreProc term=underline ctermfg=LightBlue guifg=#ff80ff
|
||||
hi Constant term=underline ctermfg=LightGreen guifg=#60ff60 gui=bold
|
||||
hi Ignore ctermfg=black guifg=bg
|
||||
else
|
||||
hi Comment term=bold ctermfg=DarkBlue guifg=DarkBlue
|
||||
hi Type term=underline ctermfg=Brown gui=NONE guifg=DarkRed
|
||||
hi Special term=bold ctermfg=DarkMagenta guifg=DarkMagenta
|
||||
hi Identifier term=underline ctermfg=DarkCyan guifg=DarkCyan
|
||||
hi Statement term=bold ctermfg=DarkRed cterm=bold guifg=DarkRed gui=bold
|
||||
hi PreProc term=underline ctermfg=DarkMagenta guifg=DarkMagenta
|
||||
hi Constant term=underline ctermfg=DarkGreen guifg=DarkGreen gui=italic
|
||||
hi Ignore ctermfg=white guifg=bg
|
||||
hi NonText ctermfg=white
|
||||
hi! link NonText Ignore
|
||||
endif
|
||||
hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
|
||||
hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
|
||||
hi SpellBad ctermbg=NONE ctermfg=Red cterm=underline
|
||||
hi SpellCap ctermbg=NONE ctermfg=Blue cterm=underline
|
||||
hi SpellRare ctermbg=NONE ctermfg=Magenta cterm=underline
|
||||
hi SpellLocal ctermbg=NONE ctermfg=Cyan cterm=underline
|
||||
hi MatchParen ctermbg=NONE ctermfg=Cyan cterm=underline
|
||||
"au! Syntax postscr source /usr/local2/share/vim/syntax/postscr.vim
|
||||
|
||||
-408
@@ -1,408 +0,0 @@
|
||||
" vim: set ts=3 sw=3 et:
|
||||
"""
|
||||
""" %Z%%E% %U%, %I% %P%
|
||||
""" (C) Copyright 2000 CCI-Europe. Author : fma
|
||||
"""
|
||||
""" Revision History """
|
||||
""" End of Revisions """
|
||||
"
|
||||
" My .vimrc file
|
||||
"
|
||||
set nocompatible " TODO: Why did the default change for 7.3 vs 7.2
|
||||
|
||||
if has("win32")
|
||||
" Use CCI standard setup. This happens automatically on UNIX
|
||||
if filereadable($VIM . "/vimrc")
|
||||
source $VIM/vimrc
|
||||
endif
|
||||
endif
|
||||
|
||||
syntax on
|
||||
filetype plugin indent on
|
||||
augroup filetype
|
||||
autocmd BufEnter *.r set ft=xdefaults
|
||||
augroup END
|
||||
|
||||
set tags=tags,../tags,/opt/toolchain/include/tags
|
||||
set path=.,include,../include,/opt/toolchain/include
|
||||
let CurPath = getcwd()
|
||||
while strlen(CurPath) > 3
|
||||
if filereadable(CurPath."/tags")
|
||||
exe "set tags+=".CurPath."/tags"
|
||||
endif
|
||||
if strlen(glob(CurPath."/include"))
|
||||
exe "set path+=".CurPath."/include"
|
||||
endif
|
||||
if strlen(glob(CurPath."/*.h"))
|
||||
exe "set path+=".CurPath
|
||||
endif
|
||||
if !exists("g:GlimpsePath") && filereadable(CurPath."/.glimpse_index")
|
||||
let g:GlimpsePath = CurPath
|
||||
execute "set path+=".CurPath
|
||||
endif
|
||||
let CurPath = substitute(CurPath, '[/\\]\+[^/\\]*$', "", "")
|
||||
endwhile
|
||||
|
||||
if has("win32")
|
||||
behave xterm
|
||||
set directory=C:/temp/preserve// " Home of the swap files_
|
||||
if filereadable('C:\Programs\NT_SFU\Shell\grep.EXE')
|
||||
set grepprg=grep\ -n " Use POSIX grep if available
|
||||
endif
|
||||
|
||||
" Let VIM know about VisualC++ include files
|
||||
if exists("$include")
|
||||
let more = substitute($include, ';', ',', 'g')
|
||||
let more = substitute(more, ' ', '\\\\\\ ', 'g')
|
||||
execute "set path+=" . more
|
||||
let g:incdirs = g:incdirs.",".more
|
||||
|
||||
let more = substitute($include, ';', '\\\\\\tags,', 'g')
|
||||
execute "set tags+=" . substitute(more, ' ', '\\\\\\ ', 'g') . '\\tags'
|
||||
unlet more
|
||||
endif
|
||||
|
||||
if exists("$SCCSHOME")
|
||||
" Can not handle '/' to '\' conversion otherwise
|
||||
let $SCCSHOME = $SCCSHOME . "/"
|
||||
endif
|
||||
|
||||
if has("gui_running")
|
||||
set guifont=Courier_New:h9
|
||||
" System menu and quick minimize
|
||||
map <M-Space> :simalt ~<CR>
|
||||
map <M-n> :simalt ~n<CR>
|
||||
" Size the GUI window. Delay positioning until window is created
|
||||
set lines=50
|
||||
set columns=82
|
||||
augroup AutoPos
|
||||
autocmd BufEnter * winp 200 50 | autocmd! AutoPos
|
||||
augroup END
|
||||
endif
|
||||
else
|
||||
if (&term == "cygwin") " This seem to have some quirks, work around some
|
||||
set directory=/var/preserve/
|
||||
let &t_@7="\<Esc>[4~" " Make <End> work
|
||||
let &t_kh="\<Esc>[1~" " Make <Home> work
|
||||
else
|
||||
set directory=/var/preserve//
|
||||
if has("gui_running")
|
||||
let &guifont="Bitstream Vera Sans Mono 8"
|
||||
else
|
||||
" Uncomment line below to use :emenu. Adds ~1 second to startup time
|
||||
" source $VIMRUNTIME/menu.vim
|
||||
|
||||
" Make <End> work - Some options cannot be assigned to with 'let'
|
||||
exe "set t_@7=\<Esc>OF"
|
||||
|
||||
" Must be _very_ slow to handle triple clicks
|
||||
set mousetime=1500
|
||||
if &ttymouse == "xterm2"
|
||||
" The xterm2 mode will flood us with messages
|
||||
set ttymouse=xterm
|
||||
endif
|
||||
|
||||
" Save and restore the "shell" screen on enter and exit
|
||||
let &t_te = "\<Esc>[2J\<Esc>[?47l\<Esc>8"
|
||||
let &t_ti = "\<Esc>7\<Esc>[?47h"
|
||||
|
||||
" Make <Del> mappings work
|
||||
exe "set t_kb=\x08"
|
||||
exe "set t_kD=\x7f"
|
||||
|
||||
exe "set t_Co=16"
|
||||
|
||||
" Make shifted cursor keys work.
|
||||
" For the necessary xmodmap commands, see :help hpterm
|
||||
map <t_F3> <S-Up>
|
||||
map! <t_F3> <S-Up>
|
||||
map <t_F6> <S-Down>
|
||||
map! <t_F6> <S-Down>
|
||||
map <t_F8> <S-Left>
|
||||
map! <t_F8> <S-Left>
|
||||
map <t_F9> <S-Right>
|
||||
map! <t_F9> <S-Right>
|
||||
" To make the shift-Tab <S-Tab> key work, also see :help suffixes
|
||||
cmap <Esc>[1~ <C-P>
|
||||
cmap <Esc>[1;2~ <C-P>
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if has("gui_running")
|
||||
set title icon
|
||||
set titlestring=%F%(\ --\ %a%)
|
||||
set iconstring=%f
|
||||
else
|
||||
set notitle noicon " Do _not_ mess with title string of my xterm
|
||||
endif
|
||||
|
||||
set showcmd " Show chars for command in progress on ruler
|
||||
set exrc " Allow .vimrc in current dir
|
||||
set hidden " Dont unload buffers BEWARE OF :q! and :qa! !!!
|
||||
set backspace=indent,eol " Can ^H/^W/^U across lines in insert
|
||||
set sidescroll=5
|
||||
set scrolloff=4
|
||||
set textwidth=100
|
||||
set whichwrap=h,l,<,>,[,] " Do not backspace/space across line boundaries
|
||||
set autoindent
|
||||
set winheight=10 " Make new windows this high
|
||||
set cmdheight=2 " status line area height - higher for quickfix
|
||||
set laststatus=2 " always with statusline
|
||||
set showmatch
|
||||
set autowrite " write files back at ^Z, :make etc.
|
||||
set mouse=nv " Use xterm mouse mode in insert/cmdline/prompt
|
||||
set clipboard=autoselect " Visual to/from clipboard
|
||||
set fileformats=unix,dos,mac
|
||||
set showbreak=________ " Show me where long lines break
|
||||
set showfulltag " Insert function prototype in ^X^]
|
||||
set incsearch nohlsearch " Search while typing, 'zx' toggles highlighting
|
||||
set helpheight=100 " Maximize help windows
|
||||
set shortmess=ato " Brief messages to avoid 'Hit Return' prompts
|
||||
set formatoptions=crqlo " Comment handling / Dont break while typing
|
||||
set history=100
|
||||
set viminfo='20,\"500 " Keep history listings across sessions
|
||||
set wildmenu " Show completion matches on statusline
|
||||
set wildmode=list:longest,full
|
||||
set complete=.,w,b,u,d " The ,t,i from the default was too much, now ,d
|
||||
set isfname-== " No = allows 'gf' in File=<Path> Constructs
|
||||
set shiftwidth=4
|
||||
set softtabstop=4
|
||||
set expandtab
|
||||
set spelllang=en_us
|
||||
set equalprg=csb
|
||||
set visualbell
|
||||
set printfont=:h7.5
|
||||
set printoptions=number:y,duplex:off,left:5mm,top:5mm,bottom:5mm,right:5mm
|
||||
|
||||
let c_gnu = 1
|
||||
let c_no_curly_error = 1
|
||||
"let &errorformat =
|
||||
|
||||
" For running edit-compile-edit (quickfix)
|
||||
nmap <Esc>n :cnext<CR>
|
||||
nmap <Esc>l :clist<CR>
|
||||
nmap <Esc>c :cc<CR>
|
||||
nmap <Esc>p :cprevious<CR>
|
||||
nmap <Esc>m :make<CR>
|
||||
|
||||
" Various utility keys
|
||||
nmap ( :bprev<CR>
|
||||
nmap ) :bnext<CR>
|
||||
nmap F :files<CR>
|
||||
nmap Q :bdelete<CR>
|
||||
nmap !Q :bdelete!<CR>
|
||||
nmap [f :bunload<CR>
|
||||
nmap zx :set invhlsearch<CR>
|
||||
nmap zs :set invspell<CR>
|
||||
nmap zn :set invnumber<CR>
|
||||
nmap zf :set invfoldenable<CR>
|
||||
nmap [s :exe "g/".@/."/p"<CR>
|
||||
|
||||
|
||||
" These seem to be suitable for hitting all keys in mapping within timeout
|
||||
set timeoutlen=500
|
||||
set ttimeoutlen=50
|
||||
|
||||
" Make cursor keys jump out of insert. Your preference may differ
|
||||
imap <Left> <Esc>
|
||||
imap <Right> <Esc>
|
||||
imap <Up> <Esc>
|
||||
imap <Down> <Esc>
|
||||
imap <S-Left> <Esc>
|
||||
imap <S-Right> <Esc>
|
||||
imap <S-Up> <Esc>
|
||||
imap <S-Down> <Esc>
|
||||
|
||||
" Movement with "2x3" block navigation keys. Customize to your liking
|
||||
nnoremap <PageUp> <C-U>
|
||||
nnoremap <PageDown> <C-D>
|
||||
nnoremap <Home> <C-Y>
|
||||
nnoremap <xHome> <C-Y>
|
||||
nnoremap <End> <C-E>
|
||||
nmap <Insert> [[z.
|
||||
nmap <Del> ]]z.
|
||||
nmap <kDel> ]]z.
|
||||
nmap <S-Up> {
|
||||
nmap <S-Down> }
|
||||
|
||||
" Insert some standard blobs
|
||||
map <F2> :r $SCCSHOME/SccsHeaders/static.hdr<CR>
|
||||
|
||||
" Always delete to left of cursor
|
||||
inoremap <Del> <C-H>
|
||||
cnoremap <Del> <C-H>
|
||||
|
||||
" List multiple matches at CTRL-]
|
||||
nmap <C-]> :T <C-R><C-W><CR>
|
||||
" Tag "preview" window
|
||||
nmap <C-X><C-]> :ptag <C-R><C-W><CR>
|
||||
nmap <C-X><Right> :ptnext<CR>
|
||||
nmap <C-X><Left> :ptprevious<CR>
|
||||
nmap <C-X><Down> :ppop<CR>
|
||||
nmap <C-X><Up> :ptag<CR>
|
||||
nmap <C-X>x :pclose<CR>
|
||||
|
||||
" Some coloring. These are _my_ preferences
|
||||
hi statusLine term=bold,reverse cterm=NONE ctermbg=7 gui=NONE guibg=grey
|
||||
hi statusLineNC term=reverse cterm=NONE ctermbg=8 gui=NONE guibg=darkgrey
|
||||
hi NonText ctermfg=lightgray
|
||||
hi Visual cterm=Inverse ctermfg=grey ctermbg=black
|
||||
|
||||
if &term == "ansi" || &term == "console" || &term == "linux"
|
||||
set background=dark
|
||||
hi statusLine ctermfg=black
|
||||
hi statusLineNC ctermfg=black ctermbg=yellow
|
||||
endif
|
||||
|
||||
" Use :T instead of :ta to see file names in ^D complete-lists
|
||||
command! -complete=tag_listfiles -nargs=1 T tjump <args>|
|
||||
\call histadd("cmd", "T <args>")
|
||||
|
||||
" File type dependent settings
|
||||
augroup Private
|
||||
" Use smartindent in these files.
|
||||
autocmd FileType tcl,postscr set nocindent smartindent|inoremap # X<BS>#
|
||||
" Use cindent for C files.
|
||||
autocmd FileType c,cpp set cindent cinoptions=(0,w1,u0,:1,=2|inoremap # #
|
||||
" Autowrap while typing in other types of files
|
||||
autocmd FileType * set formatoptions-=t|set formatoptions+=t
|
||||
" NO autowrap while typing in source code files
|
||||
autocmd FileType tcl,postscr,c,cpp set formatoptions-=t | call SetPathAdd()
|
||||
|
||||
" These are for CCI source files
|
||||
"autocmd BufRead * set ts=3 sts=3 sw=3
|
||||
" And _these_ are most sensible for VIM (ao. PD) source code
|
||||
"autocmd BufRead */src* set sts=4 sw=4 cinoptions&
|
||||
|
||||
" Handle global (non bufferspecific) options
|
||||
autocmd BufEnter * call BufEnterGlobalOpts()
|
||||
augroup end
|
||||
|
||||
function! SetPathAdd()
|
||||
let fpath = fnamemodify(expand("<afile>:p"), ":h")
|
||||
let SccsPath = $SCCSPATH
|
||||
let b:incdirs = ""
|
||||
while strlen(SccsPath) > 0
|
||||
let spc = match(SccsPath, " ")
|
||||
if spc >= 0
|
||||
let Part = strpart(SccsPath, 0, spc)
|
||||
let SccsPath = strpart(SccsPath, spc + 1)
|
||||
else
|
||||
let Part = SccsPath
|
||||
let SccsPath = ""
|
||||
endif
|
||||
if strlen(Part) > 0
|
||||
let b:incdirs = b:incdirs.",".$SCCSHOME."/".$REL.".".Part."/".fpath
|
||||
endif
|
||||
endwhile
|
||||
if strlen(b:incdirs) > 1
|
||||
let b:incdirs = strpart(b:incdirs, 1)
|
||||
else
|
||||
unlet b:incdirs
|
||||
endif
|
||||
endfunc
|
||||
|
||||
function! BufEnterGlobalOpts()
|
||||
" Avoid '#-in-1.-column' problem with cindent & smartindent
|
||||
if &filetype == 'c' || &filetype == 'cpp'
|
||||
inoremap # #
|
||||
" Dont highligh this as an error
|
||||
hi link cCommentStartError Comment
|
||||
else
|
||||
inoremap # X<BS>#
|
||||
endif
|
||||
|
||||
" Set up path for private include files - w. help from SetPathAdd()
|
||||
if exists("g:incdirs")
|
||||
if exists("b:incdirs")
|
||||
let &path = ".,".b:incdirs.",".g:incdirs
|
||||
else
|
||||
let &path = ".,".g:incdirs
|
||||
endif
|
||||
endif
|
||||
|
||||
let fpath = expand("<afile>:p")
|
||||
if fpath =~ '\f\/src\f' || fpath =~ '\f\/BUILD\f' || fpath =~ '\f-\d'
|
||||
setlocal patchmode=.orig " Always save original file
|
||||
else
|
||||
setlocal patchmode&
|
||||
endif
|
||||
endfunc
|
||||
|
||||
|
||||
" Pick a status line, or craft one yourself
|
||||
" statusline #1, two expressions -- Use a continuation line & quote SCCS keys
|
||||
set statusline=%<%f%=\ %([%1*%M\%*%n%R\%Y%{VarExists(',GZ','b:zipflag')}
|
||||
\]%)\ %02c%V(%02B)C\ %3l/%LL\ %P
|
||||
" statusline #2, zero expressions
|
||||
"set statusline=%<%f%=\ %([%n%Xm%Xr%&,HL&h]%)\ %-19(%3l,%02c%'%o%)'%02Xb'
|
||||
" statusline #3, the default one
|
||||
"set statusline&
|
||||
|
||||
" Coloring of the modified flag
|
||||
highlight User1 cterm=bold ctermfg=red ctermbg=gray gui=bold guifg=red guibg=gray
|
||||
|
||||
" Testing
|
||||
"set title titlestring=%<%F%=%l/%L-%P titlelen=70
|
||||
"set rulerformat=%l,%c%_%t-%P
|
||||
|
||||
function! VarExists(s,v)
|
||||
if exists(a:v)
|
||||
return a:s
|
||||
else
|
||||
return ""
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! Show_g_CTRLG()
|
||||
let col = col(".")
|
||||
let vcol = virtcol(".")
|
||||
let line = line(".")
|
||||
let lline = line("$")
|
||||
exe "normal $"
|
||||
let cole = col(".")
|
||||
let vcole = virtcol(".")
|
||||
exe "normal " vcol . "|"
|
||||
|
||||
let out_str = "Col " . col
|
||||
if col != vcol
|
||||
let out_str = out_str . "-" . vcol
|
||||
endif
|
||||
let out_str = out_str . " of " . cole
|
||||
if cole != vcole
|
||||
let out_str = out_str . "-" . vcole
|
||||
endif
|
||||
let out_str = out_str . "; Line " . line . " of " . lline
|
||||
let out_str = out_str . " (" . (line * 100 / lline) . "%)"
|
||||
let byte = line2byte(line) + col - 1
|
||||
let out_str = out_str . "; Char " . byte
|
||||
let lbyte = line2byte(lline) + strlen(getline(lline))
|
||||
let out_str = out_str . " of " . lbyte . " (" . (byte * 100 / lbyte) . "%)"
|
||||
echo out_str
|
||||
endfunction
|
||||
" This is _much_ faster than g<C-G> on large files. And it is more verbose
|
||||
map gK :call Show_g_CTRLG()<CR>
|
||||
|
||||
function! Incr()
|
||||
if ! exists("g:Incr")
|
||||
let g:Incr = 0
|
||||
else
|
||||
let g:Incr = g:Incr + 1
|
||||
endif
|
||||
return g:Incr
|
||||
endfunc
|
||||
|
||||
if filereadable($HOME."/.vimrc.priv")
|
||||
source $HOME/.vimrc.priv
|
||||
endif
|
||||
|
||||
if exists("load_less")
|
||||
set directory=
|
||||
set statusline=%3l/%LL\ %P\ %o/%{line2byte(line(\"$\")+1)-1}\ %=%<%f%a
|
||||
set cmdheight=1
|
||||
endif
|
||||
|
||||
let loaded_explorer=1 " Don't want plugin/explorer.vim
|
||||
" echo "DONE sourcing"
|
||||
|
||||
@@ -1,173 +0,0 @@
|
||||
"
|
||||
" Extra vim stuff
|
||||
"
|
||||
|
||||
map `h <Plug>jdocConvertHere
|
||||
map `c <Plug>jdocConvertCompact
|
||||
|
||||
nmap <F2> :call SetCHdr()<CR>
|
||||
|
||||
map gy "*y
|
||||
map gp "*p
|
||||
map g]p "*]p
|
||||
map g[P "*[P
|
||||
|
||||
function! SetCHdr()
|
||||
call append(0, ["/**",
|
||||
\ " * @file ".strpart(bufname("%"), strridx(bufname("%"), "/")+1),
|
||||
\ " * ABSTRACT HERE << ",
|
||||
\ " *",
|
||||
\ " * $Id$",
|
||||
\ " *",
|
||||
\ " * (C) Copyright ".strftime("%Y")." Amplex, ".$USER."@amplex.dk",
|
||||
\ " */"])
|
||||
call append(line('$'), ["", "// vim: set sw=3 sts=3 et:"])
|
||||
normal 5G$
|
||||
set sw=3 sts=3 et
|
||||
endfunction
|
||||
|
||||
function! TextEnableCodeSnip(filetype,start,end) abort
|
||||
let ft=toupper(a:filetype)
|
||||
let group='textGroup'.ft
|
||||
if exists('b:current_syntax')
|
||||
let s:current_syntax=b:current_syntax
|
||||
" Remove current syntax definition, as some syntax files (e.g. cpp.vim)
|
||||
" do nothing if b:current_syntax is defined.
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
execute 'syntax include @'.group.' syntax/'.a:filetype.'.vim'
|
||||
try
|
||||
execute 'syntax include @'.group.' after/syntax/'.a:filetype.'.vim'
|
||||
catch
|
||||
endtry
|
||||
if exists('s:current_syntax')
|
||||
let b:current_syntax=s:current_syntax
|
||||
else
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
exe 'syntax region textSnip'.ft.
|
||||
\ ' matchgroup=textSnip '.
|
||||
\ ' start="'.a:start.'" end="'.a:end.'" '.
|
||||
\ ' contains=@'.group.' containedin=ALL'
|
||||
hi link textSnip SpecialComment
|
||||
endfunction
|
||||
|
||||
autocmd Private FileType sh call TextEnableCodeSnip('lua', '--LUA--', '--EOF--') |
|
||||
\ call TextEnableCodeSnip('awk', '#AWK#', '#EOF#')
|
||||
|
||||
nmap gmd :Glimpse NodeType.<C-R><C-W><CR>
|
||||
|
||||
let vimrcdir = expand("<sfile>:h").".vim/macros"
|
||||
func! CciPostLoad(Pattern, File)
|
||||
augroup CciAutoLoad
|
||||
exe "autocmd BufNewFile ".a:Pattern "source ".g:vimrcdir."/".a:File
|
||||
\ ." |let b:isNew = 1 | autocmd! CciAutoLoad BufNewFile ".a:Pattern
|
||||
augroup CCIstart
|
||||
exe "autocmd BufNewFile ".a:Pattern "let b:autohdr = 1"
|
||||
augroup END
|
||||
endfunc
|
||||
call CciPostLoad("GLM::*", "srcmgr.vim")
|
||||
call CciPostLoad("GLW::*", "srcmgr.vim")
|
||||
delfunction CciPostLoad
|
||||
"exe "source ".expand("<sfile>:h")."/dot/usr/vim/"."utils.vim"
|
||||
"exe "source ".expand("<sfile>:h")."/dot/usr/vim/"."newfmgr.vim"
|
||||
|
||||
nmap gG :call OpenSpec("GLW::<C-R><C-W>")<CR>
|
||||
vmap gG :call VisualOpenSpec("GLM::")<CR>
|
||||
command! -nargs=1 Glimpse call OpenSpec("GLM::<args>")
|
||||
command! -nargs=1 GlimpseW call OpenSpec("GLW::<args>")
|
||||
|
||||
func! OpenSpec(str)
|
||||
let Str = a:str
|
||||
exe "edit ".Str
|
||||
call histadd("cmd", "edit ".Str)
|
||||
endfunction
|
||||
|
||||
func! VisualOpenSpec(Pre)
|
||||
let Col1 = col("'<")
|
||||
let Col2 = col("'>")
|
||||
if line("'<") != line("'>") | return | endif
|
||||
let Str = strpart(getline(line("'<")), Col1 - 1, Col2 - Col1)
|
||||
let Str = substitute(Str, " ", ".", "g")
|
||||
call OpenSpec(a:Pre.Str)
|
||||
endfunc
|
||||
|
||||
set statusline=%<%f%=\ %2*%{VimBuddy()}%*\ %([%1*%M\%*%n%R\%Y
|
||||
\%{VarExists(',GZ','b:zipflag')}]%)\ %02c%V(%02B)C\ %3l/%LL\ %P
|
||||
highlight User2 ctermfg=blue ctermbg=gray guifg=darkblue guibg=gray
|
||||
" OK. So here is the infamous VimBuddy. You can delete it, if it is not
|
||||
" referenced from your 'statusline'
|
||||
function! VimBuddy()
|
||||
" Take a copy for others to see the messages
|
||||
if ! exists("s:vimbuddy_msg")
|
||||
let s:vimbuddy_msg = v:statusmsg
|
||||
endif
|
||||
if ! exists("s:vimbuddy_warn")
|
||||
let s:vimbuddy_warn = v:warningmsg
|
||||
endif
|
||||
if ! exists("s:vimbuddy_err")
|
||||
let s:vimbuddy_err = v:errmsg
|
||||
endif
|
||||
if ! exists("s:vimbuddy_onemore")
|
||||
let s:vimbuddy_onemore = ""
|
||||
endif
|
||||
|
||||
if g:actual_curbuf != bufnr("%")
|
||||
" Not my buffer, sleeping
|
||||
return "|-o"
|
||||
elseif s:vimbuddy_err != v:errmsg
|
||||
let v:errmsg = v:errmsg . " "
|
||||
let s:vimbuddy_err = v:errmsg
|
||||
return ":-("
|
||||
elseif s:vimbuddy_warn != v:warningmsg
|
||||
let v:warningmsg = v:warningmsg . " "
|
||||
let s:vimbuddy_warn = v:warningmsg
|
||||
return "(-:"
|
||||
elseif s:vimbuddy_msg != v:statusmsg
|
||||
let v:statusmsg = v:statusmsg . " "
|
||||
let s:vimbuddy_msg = v:statusmsg
|
||||
let test = matchstr(v:statusmsg, 'lines *$')
|
||||
let num = substitute(v:statusmsg, '^\([0-9]*\).*', '\1', '') + 0
|
||||
" How impressed should we be
|
||||
if test != "" && num > 20
|
||||
let str = ":-O"
|
||||
elseif test != "" && num
|
||||
let str = ":-o"
|
||||
else
|
||||
let str = ":-/"
|
||||
endif
|
||||
let s:vimbuddy_onemore = str
|
||||
return str
|
||||
elseif s:vimbuddy_onemore != ""
|
||||
let str = s:vimbuddy_onemore
|
||||
let s:vimbuddy_onemore = ""
|
||||
return str
|
||||
endif
|
||||
|
||||
if ! exists("b:lastcol")
|
||||
let b:lastcol = col(".")
|
||||
endif
|
||||
if ! exists("b:lastlineno")
|
||||
let b:lastlineno = line(".")
|
||||
endif
|
||||
let num = b:lastcol - col(".")
|
||||
let b:lastcol = col(".")
|
||||
if (num == 1 || num == -1) && b:lastlineno == line(".")
|
||||
" Let VimBuddy rotate his nose
|
||||
let num = b:lastcol % 4
|
||||
if num == 0
|
||||
let ch = '/'
|
||||
elseif num == 1
|
||||
let ch = '-'
|
||||
elseif num == 2
|
||||
let ch = '\'
|
||||
else
|
||||
let ch = '|'
|
||||
endif
|
||||
return ":" . ch . ")"
|
||||
endif
|
||||
let b:lastlineno = line(".")
|
||||
|
||||
" Happiness is my favourite mood
|
||||
return ":-)"
|
||||
endfunction
|
||||
@@ -1,26 +0,0 @@
|
||||
|
||||
if &background == "dark"
|
||||
hi Comment term=bold ctermfg=Cyan guifg=#80a0ff
|
||||
hi Type term=underline ctermfg=Magenta guifg=#ffa0a0
|
||||
hi Special term=bold ctermfg=LightRed guifg=Orange
|
||||
hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff
|
||||
hi Statement term=bold ctermfg=Yellow guifg=#ffff60 gui=bold
|
||||
hi PreProc term=underline ctermfg=LightBlue guifg=#ff80ff
|
||||
hi Constant term=underline ctermfg=LightGreen guifg=#60ff60 gui=bold
|
||||
hi Ignore ctermfg=black guifg=bg
|
||||
else
|
||||
hi Comment term=bold ctermfg=DarkBlue guifg=DarkBlue
|
||||
hi Type term=underline ctermfg=Brown gui=NONE guifg=DarkRed
|
||||
hi Special term=bold ctermfg=DarkMagenta guifg=DarkMagenta
|
||||
hi Identifier term=underline ctermfg=DarkCyan guifg=DarkCyan
|
||||
hi Statement term=bold ctermfg=DarkRed guifg=DarkRed
|
||||
hi PreProc term=underline ctermfg=DarkMagenta guifg=DarkMagenta
|
||||
hi Constant term=underline ctermfg=DarkGreen guifg=DarkGreen gui=italic
|
||||
hi Ignore ctermfg=white guifg=bg
|
||||
hi NonText ctermfg=white
|
||||
hi! link NonText Ignore
|
||||
endif
|
||||
hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
|
||||
hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
|
||||
au! Syntax postscr source /usr/local2/share/vim/syntax/postscr.vim
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/kermit +
|
||||
set line /dev/ttyS0
|
||||
set speed 115200
|
||||
set flow none
|
||||
set modem none
|
||||
set carrier-watch off
|
||||
show communications
|
||||
connect
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
##
|
||||
# $Id$
|
||||
# (C) Copyright 2009 Amplex, fm@amplex.dk
|
||||
#
|
||||
# ABSTRACT: Global grep with prebuilt index
|
||||
##
|
||||
|
||||
Dir=$(pwd)
|
||||
while [ "$Dir" ] ;do
|
||||
[ -f $Dir/.glimpse_index ] && break
|
||||
Dir=${Dir%/*}
|
||||
done
|
||||
[ "$Dir" ] || { echo "No glimpse index in this directory branch" ; exit 1; }
|
||||
|
||||
echo "-- Paths relative to: $Dir"
|
||||
exec glimpse-tt -y -H $Dir "$@"
|
||||
|
||||
|
||||
// vim: set sw=3 sts=3 et:
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
exec make $CROSS_COMPILE_MAKE_ARGS $TOOLCHAIN_MAKE_ARGS "$@"
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/bin/bash
|
||||
Dir=.
|
||||
[ $# -gt 0 ] && Dir=$1
|
||||
cd $Dir
|
||||
rm -f .glimpse_filenames .glimpse_filenames_index .glimpse_filetimes \
|
||||
.glimpse_index .glimpse_messages .glimpse_partitions .glimpse_statistics
|
||||
find . \
|
||||
-name .svn -prune -o -name rootdisk -prune -o -name shadows -prune -o -name \*-pak -prune -o \
|
||||
-name doxygen -prune -o -type f -print | cut -c3- \
|
||||
| /bin/grep -v -E '^tags$|\.glimpse_|\.pdf$|\.o$|\.so$|\.so\.|\.a$|/mapfile$' \
|
||||
| while read L ;do
|
||||
read -n4 T < "$L"; [[ $T != ?ELF && $T != BZh* && $T != $'\x1f\x8b\x08'* ]] && echo "$L"
|
||||
done \
|
||||
| glimpseindex-tt -n -F -H $Dir | awk '!/^Indexing /'
|
||||
echo -n "Creating tags ... "
|
||||
ctags --recurse --exclude=.svn --exclude=rootdisk --exclude=\*-pak \
|
||||
--sort=no --links=no --excmd=number -f - --extra=+fq --totals=yes \
|
||||
| { X=$(mktemp); rm -f $X; ctags -f $X /dev/null; cat $X -; rm -f $X; } \
|
||||
| gawk -F '\t' '
|
||||
/^!_TAG_FILE_SORTED/ {sub(/[0-9]/, "2")}
|
||||
{print}
|
||||
$NF == "F" && $1 ~ /\.h$/ {
|
||||
file = $2
|
||||
#print "Searching " file " .." >"/dev/stderr"
|
||||
lno = 0
|
||||
while (getline l <file) {
|
||||
lno++
|
||||
if (l ~ /^MessageNodeType\(/) {
|
||||
split(substr(l, 17), arg, ",")
|
||||
tag = gensub(/^ */, "", 1, arg[1])
|
||||
print tag "\t" file "\t" lno " \"\tt"
|
||||
#tags=tags " " tag
|
||||
extra++
|
||||
}
|
||||
}
|
||||
}
|
||||
$NF == "f" && $1 ~ /:/ && $2 ~ /\.lua$/ {
|
||||
npath = split($1, pth, ":")
|
||||
print pth[npath] "\t" $2 "\t" $3 "\tf"
|
||||
}
|
||||
END {print extra+0 " extra tags added" tags >"/dev/stderr"}
|
||||
' > tags
|
||||
LC_ALL=C sort --ignore-case -o tags tags
|
||||
|
||||
echo done
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Mkp - Makepkg front for easy cleanup
|
||||
#
|
||||
|
||||
mkdir -p BUILD
|
||||
cp `ls -1 | grep -v '^BUILD$'` BUILD
|
||||
(cd BUILD; makepkg "$@"; rm PKGBUILD)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
for DEV in "TPPS/2 IBM TrackPoint" "Synaptics Inc. Composite TouchPad / TrackPoint" ;do
|
||||
xinput set-int-prop "$DEV" "Evdev Wheel Emulation" 8 1
|
||||
xinput set-int-prop "$DEV" "Evdev Wheel Emulation Button" 8 2
|
||||
xinput set-int-prop "$DEV" "Evdev Wheel Emulation Axes" 8 6 7 4 5
|
||||
done
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
declare -a BACKUP=( ampdev0 Backup )
|
||||
|
||||
if [[ $1 == "restore" ]] ;then
|
||||
fname=$(cut -d: -f1 <<< $2)
|
||||
pattern=$(cut -d: -f2 <<< $2)
|
||||
ssh ${BACKUP[0]} "cd ${BACKUP[1]}; cat b-$fname.cpio.lzo" | lzop -d | cpio -ivBdum $pattern
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#eval $(keychain --eval --quiet)
|
||||
|
||||
BackupName=$1
|
||||
cd ~/amplex
|
||||
for Dir in */backmeup */*/backmeup ;do
|
||||
Dir=${Dir%/*}
|
||||
[[ -d $Dir ]] || continue
|
||||
FDir=${Dir//\//_}
|
||||
(cd $Dir
|
||||
svn status | grep '^[AM]' | cut -c9- > /tmp/fn$$
|
||||
cat /tmp/fn$$ | cpio -o --quiet | lzop \
|
||||
| ssh ${BACKUP[0]} "cd ${BACKUP[1]}; cat >b-$FDir-$BackupName.cpio.lzo"
|
||||
scp -q /tmp/fn$$ ${BACKUP[0]}:${BACKUP[1]}/i-$FDir-$BackupName
|
||||
rm -f /tmp/fn$$
|
||||
)
|
||||
done
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/env lua
|
||||
|
||||
function system(command)
|
||||
local fd = io.popen(command, "r")
|
||||
string = fd:read("*all")
|
||||
fd:close()
|
||||
return (string.gsub(string, "\n$", ""))
|
||||
end
|
||||
|
||||
amppath = os.getenv("AMPROOT") or error("AMPROOT not defined")
|
||||
print((string.gsub(arg[1] or system("pwd"), "^"..amppath, "")))
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# This script is intended to be run as '~+flashboot.cu <args> from inside cu(1)
|
||||
#
|
||||
# Contact the debug port with 'cu -s 115200 -l /dev/ttyS0' or equivalent
|
||||
# You will of course need the cu(1) program (may be part of uucp).
|
||||
# You will need chat (from ppp), lsx (lrzsz) and gkermit too.
|
||||
# Devdump (for sn.txt) is in arm9/utils/devdump
|
||||
#
|
||||
# The file boot.bin must be in the current directory.
|
||||
# Copy the 'Files' directory from the AUTester to support bootstrap mode.
|
||||
# Create the file sn.txt as 7 numbers to have the serialnumber block programmed.
|
||||
#
|
||||
|
||||
TT=/opt/toolchain/utils/flash-scripts/files
|
||||
|
||||
say() { echo "$@" 1>&2; }
|
||||
die() { say "$@"; exit 1; }
|
||||
|
||||
say "Checking for bootstrap mode ..."
|
||||
if chat -t 3 -e CCC '\c' ;then
|
||||
[ -f loader.bin ] && P="" || P="$TT/"
|
||||
[ -f ${P}loader.bin ] \
|
||||
|| die "Board is in bootstrap mode but no boot files here!"
|
||||
|
||||
# Prepare for uboot
|
||||
lsx ${P}loader.bin
|
||||
|
||||
[ -f u-boot.bin ] && P="" || P="$TT/"
|
||||
[ -f ${P}u-boot.bin ] \
|
||||
|| die "Board is in bootstrap mode but no boot files here!"
|
||||
|
||||
# Send uboot.
|
||||
chat -t 5 -e CCC '\c' || die "Loader did not load"
|
||||
lsx ${P}u-boot.bin
|
||||
chat -e 'autoboot: ' '\rversion' || die "U-boot did not load"
|
||||
fi
|
||||
[ "$1" = "boot" ] && exit 0
|
||||
|
||||
chat -t 10 -e '' 'blah' 'boot>' 'loadb' || die "Not in u-boot mode"
|
||||
gkermit --x -s boot.bin
|
||||
|
||||
# Remove write protection for boot area in the flash chip
|
||||
chat -t 10 -e 'boot>' "protect off 10000000 10003fff" \
|
||||
'boot>' "erase 10000000 10003fff" \
|
||||
'Erasing' '\c' ECHO OFF \
|
||||
'Erased' '\c' ECHO ON ' 2 sectors' '\c' \
|
||||
|| die "Could not erase flash sectors"
|
||||
|
||||
# Copy boot.bin from SDRAM to flash. 0x21000000 ==> 0x10000000, 0x3D00 bytes
|
||||
chat -t 10 -e 'boot>' "cp.b 21000000 10000000 3D00" \
|
||||
' done' '\c' \
|
||||
|| die "Could not write to flash"
|
||||
|
||||
snSize=1c
|
||||
if [ -f sn.txt ] ;then
|
||||
# The sn.txt file is five decimal integers in 1 or more lines
|
||||
dumpdev -if sn.txt -iformat D4 -of sn.bin -bs 28
|
||||
if [ -f eth.txt ] ;then
|
||||
# The eth.txt file is six hex bytes in 1 or more lines
|
||||
dumpdev -if eth.txt -iformat H1 -bs 6 >> sn.bin
|
||||
snSize=22
|
||||
fi
|
||||
fi
|
||||
if [ -f sn.bin ] ;then
|
||||
# Program the serial number block too (34/0x1C bytes)
|
||||
chat -t 10 -e 'boot>' 'loadb' || die "Missing u-boot prompt ?!"
|
||||
gkermit --x -s sn.bin
|
||||
chat -t 10 -e 'boot>' "cp.b 21000000 10003D00 $snSize" \
|
||||
' done' '\c' \
|
||||
|| die "Could not write to flash"
|
||||
fi
|
||||
|
||||
# Reprotect the boot sectors in flash
|
||||
chat -t 10 -e 'boot>' "protect on 10000000 10003fff" \
|
||||
'Protected 2 sectors' 'blah' \
|
||||
|| die "Could not reprotect flash"
|
||||
#
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh -x
|
||||
|
||||
/usr/share/wicd/scripts/50-wicd-suspend.sh
|
||||
killall vpnc
|
||||
/etc/rc.d/dnsmasq stop
|
||||
rm -f /var/run/resolvconf/interfaces/*
|
||||
|
||||
echo -n mem >/sys/power/state
|
||||
|
||||
/etc/rc.d/dnsmasq start
|
||||
/usr/share/wicd/scripts/80-wicd-connect.sh
|
||||
sleep 2
|
||||
/etc/rc.d/tpfand restart
|
||||
sh -c 'sleep 10 ; /home/fm/bin/unbind-ultranav-touchpad' &
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
awk '$1 >= T1+0 && $1 <= T2+2' T1=`date -d "$1" +%s` T2=`date -d "$2" +%s` $3
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
##
|
||||
# $Id$
|
||||
# (C) Copyright 2006 Amplex, fm@amplex.dk
|
||||
#
|
||||
# ABSTRACT: Nice formatted hex dump in bytes, hex & ascii
|
||||
##
|
||||
exec hexdump -e '"%08.8_Ax\n"' \
|
||||
-e '"%08.8_ax " 8/1 "%02x " " " 8/1 "%02x "' \
|
||||
-e '" |" 16/1 "%_p" "|\n"' \
|
||||
"$@"
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
cd
|
||||
WINEPREFIX="/home/fm/.ies4linux/ie6" wine "/home/fm/.ies4linux/ie6/drive_c/Program Files/Internet Explorer/IEXPLORE.EXE" "$@"
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
export SSH_ASKPASS="/home/fm/bin/gksupass"
|
||||
#export SSH_ASKPASS=/usr/bin/gnome-ssh-askpass2
|
||||
export DISPLAY=:0
|
||||
|
||||
keyFile=$HOME/.ssh/id_dsa
|
||||
leaveTime=19:00:00
|
||||
leastMins=120
|
||||
|
||||
if [[ ! -f ~/.keychain/`uname -n`-lockf &&
|
||||
`/usr/bin/xscreensaver-command -time 2>&1` == *non-blanked* ]]
|
||||
then
|
||||
eval $(keychain --eval -q)
|
||||
if [[ `ssh-add -l` != *$keyFile* ]] ;then
|
||||
#mins=$(((($(date -d $leaveTime +%s) - $(date +%s)) / 60)))
|
||||
[[ $mins -lt $leastMins ]] && mins=$leastMins
|
||||
#keychain --lockwait 1 --quiet $keyFile --timeout $mins >/dev/null 2>&1
|
||||
keychain --lockwait 1 --quiet $keyFile >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
LUADIR=${LUA_CPATH%/?.so}
|
||||
LUADIR=${LUADIR##*;}
|
||||
EXEC $VALGRIND ${LUADIR}/lua-agent "$@"DIR
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
grep -v ^time $1 | awk -F $'\t' '{print strftime("%d-%m-%y %T", $1), "\t", $0}' | cut -d$'\t' -f1,3-
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
kfmclient openURL "$@"
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
enscript --columns=2 --landscape --borders --highlight "$@"
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
dcop kded wmiface findAllWindows '' Thunderbird-bin '' '' '' 0 \
|
||||
| xargs -l dcop kded wmiface forceActiveWindow
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
VENDOR=06cb
|
||||
PRODUCT=0009
|
||||
IF=1.0
|
||||
|
||||
while read VENDOR PRODUCT ;do
|
||||
for i in /sys/bus/usb/devices/* ; do
|
||||
if [ -e $i/idVendor ] && [ `cat $i/idVendor` = $VENDOR ] && \
|
||||
[ -e $i/idProduct ] && [ `cat $i/idProduct` = $PRODUCT ] && \
|
||||
[ -e $i\:$IF/driver/unbind ]
|
||||
then
|
||||
echo -n `basename $i`\:$IF > $i\:$IF/driver/unbind
|
||||
break
|
||||
fi
|
||||
done
|
||||
done << EOF
|
||||
06cb 0009
|
||||
0002 0007
|
||||
EOF
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
HTTOOLS=$HOME/amplex/ampep/HtTools
|
||||
|
||||
runBS() {
|
||||
BSSERVER=$1 $HTTOOLS/bsTest $HTTOOLS/bsh/$2.bsh
|
||||
}
|
||||
|
||||
mkTemp() {
|
||||
mktemp /tmp/.updssh-tmp.XXXXXXXXXX
|
||||
}
|
||||
|
||||
getList() {
|
||||
local F=`mkTemp`
|
||||
runBS $1 listBoxes > $F
|
||||
if grep --silent ANNOT: $F ;then
|
||||
awk '/\t/' $F | sort
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
rm $F
|
||||
}
|
||||
|
||||
updFile() {
|
||||
local Ip=`au-sshgw $1 hostip`
|
||||
local F=`mkTemp`
|
||||
[[ $1 == *-stg ]] && Ip=${Ip}:8000
|
||||
echo -n "Updating list for $1 ($Ip) ... "
|
||||
if getList $Ip > $2.tmp ;then
|
||||
mv -f $2.tmp $2
|
||||
echo 'DONE'
|
||||
else
|
||||
rm -f $2.tmp
|
||||
echo 'FAILED'
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ ! $1 ]] ;then
|
||||
echo 'Usage: upd-ssh-boxlists {<Server-list>|UPDATE}' 1>&2
|
||||
exit
|
||||
fi
|
||||
|
||||
if [[ $1 == UPDATE ]] ;then
|
||||
#sudo vpnc-disconnect
|
||||
#sudo vpnc amp-ae
|
||||
for i in `au-sshgw gwlist | grep ^ad-` ;do
|
||||
File=/opt/toolchain/utils/sshgw/files/boxes-${i}.db
|
||||
[[ -f $File ]] && updFile $i $File
|
||||
done
|
||||
#sudo vpnc-disconnect
|
||||
#sudo vpnc amp-ain
|
||||
for i in `au-sshgw gwlist | grep ^ain-` ;do
|
||||
File=/opt/toolchain/utils/sshgw/files/boxes-${i}.db
|
||||
[[ -f $File ]] && updFile $i $File
|
||||
done
|
||||
svn st /opt/toolchain/utils/sshgw/files
|
||||
#sudo vpnc-disconnect
|
||||
exit
|
||||
fi
|
||||
|
||||
for i ;do
|
||||
getList $i
|
||||
done
|
||||
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
exec valgrind --db-attach=yes --db-command='clewn -ga "%f %p"' "$@"
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
exec valgrind --db-attach=yes --db-command='ups %f %p' "$@"
|
||||
@@ -1 +0,0 @@
|
||||
/usr/bin/gvim
|
||||
@@ -1 +0,0 @@
|
||||
/usr/bin/gvim
|
||||
@@ -1,60 +0,0 @@
|
||||
#!/usr/bin/env lua
|
||||
|
||||
|
||||
local function copyrec(s, d)
|
||||
d = d or {}
|
||||
for k,v in pairs(s) do d[k] = v end
|
||||
return d
|
||||
end
|
||||
|
||||
local function findandset(line, pattern, ret)
|
||||
local t = { line:find(pattern) }
|
||||
return t[1] and copyrec({ start = t[1], stop = t[2], select(3, unpack(t)) }, ret)
|
||||
or nil
|
||||
end
|
||||
|
||||
local function regsub_s(t, reg, sub)
|
||||
local num
|
||||
t.s, num = string.gsub(t.s, reg, sub, 1234567890)
|
||||
return num > 0
|
||||
end
|
||||
|
||||
local line,file,modified,pid,running
|
||||
local pids = {}
|
||||
local fd = io.popen("sh -c 'vi -r 2>&1'", "r")
|
||||
while true do
|
||||
local t = {}
|
||||
|
||||
line = fd:read("*line")
|
||||
if not line then break end
|
||||
if findandset(line, "^ *In directory (.*)", t) then
|
||||
io.write(t[1].."\n")
|
||||
elseif findandset(line, "^ *file name: (.*)", t) then
|
||||
file = t[1]
|
||||
elseif findandset(line, "^ *modified: (%a*)", t) then
|
||||
modified = t[1] ~= "no"
|
||||
elseif findandset(line, "^ *process ID: (%d*)(.*)", t) then
|
||||
pid = t[1]
|
||||
tty = { s = "" }
|
||||
if string.find(t[2], "(still running)", 1, true) ~= nil then
|
||||
if pids["pid-"..pid] then
|
||||
tty.s = pids["pid-"..pid]
|
||||
else
|
||||
local ifd = io.popen("ps --no-headers --format tty --pid " .. pid, "r")
|
||||
tty.s = ":" .. ifd:read("*line")
|
||||
ifd:close()
|
||||
if regsub_s(tty, "tty", "") then
|
||||
elseif regsub_s(tty, "pts/", "pt") then
|
||||
elseif regsub_s(tty, "tts/", "t") then
|
||||
end
|
||||
pids["pid-"..pid] = tty.s
|
||||
end
|
||||
end
|
||||
if file and modified ~= nil then
|
||||
io.write(string.format("%s %5d%-5s %s\n", modified and "+" or "-",
|
||||
pid, tty.s, file))
|
||||
end
|
||||
line,file,modified,pid,running = nil
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
exec ck-launch-session startxfce4
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,28 +0,0 @@
|
||||
all: lint
|
||||
|
||||
lint: .linted
|
||||
|
||||
.linted: root/usr/bin/nmeamux
|
||||
LUA_EXTRA='../../agentframework/lua/?' /opt/toolchain/utils/scripts/bin/lualint $< && touch $@
|
||||
|
||||
pak:
|
||||
rm -rf amplight-solo-pak
|
||||
svn export amplight-solo amplight-solo-pak
|
||||
sed "s/-VVV-/$(shell pakversion gen amplight-solo )/" amplight-solo/pak-info > amplight-solo-pak/pak-info
|
||||
pak create amplight-solo-pak
|
||||
|
||||
pak-clean:
|
||||
rm -fr *-pak *.pak
|
||||
|
||||
doc:
|
||||
amp-doxygen -W
|
||||
|
||||
doc-clean:
|
||||
rm -rf doxygen
|
||||
|
||||
clean: pak-clean doc-clean
|
||||
rm -fr *.bxml
|
||||
rm -f ${OBJS} ${TARGETFILE} mapfile
|
||||
|
||||
.PHONY: all pak clean doc doc-clean
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
xx
|
||||
@@ -1,35 +0,0 @@
|
||||
#!/bin/ash
|
||||
##
|
||||
# $Id: pak-tasks 21627 2010-01-18 13:00:38Z fm $
|
||||
# (C) Copyright 2009 Amplex, fm@amplex.dk
|
||||
#
|
||||
# ABSTRACT: Solo kick-off & cleanup on unit
|
||||
##
|
||||
|
||||
export AGENTNAME="nmeamux"
|
||||
export AGENTBIN="/usr/bin/nmeamux"
|
||||
|
||||
start ()
|
||||
{
|
||||
start-stop --start --respawn $AGENTBIN
|
||||
return 0
|
||||
}
|
||||
|
||||
stop ()
|
||||
{
|
||||
start-stop --stop --respawn $AGENTBIN
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
cleanup ()
|
||||
{
|
||||
rm -f /var/log/$AGENTNAME.log*
|
||||
return 0
|
||||
}
|
||||
|
||||
remove ()
|
||||
{
|
||||
cleanup()
|
||||
return 0
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/ash
|
||||
DDNS_USER=themadsens
|
||||
DDNS_PW=nad3080
|
||||
DDNS_DOMAIN=sysummertime.dyndns.org
|
||||
wget -q -O /var/run/new.ip http://checkip.dyndns.com/index.html
|
||||
if [ "`cat /var/run/new.ip`" = "`cat /var/run/cur.ip`" ] ;then
|
||||
wget -q -O /dev/null "http://$DDNS_USER:$DDNS_PW@members.dyndns.org/nic/update?hostname=$DDNS_DOMAIN"
|
||||
fi
|
||||
mv -f /var/run/new.ip /var/run/cur.ip
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
ps | grep 'lua.agent.*nmeamux' | grep -v grep | awk '{print $1}' | xargs kill
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/bin/ash
|
||||
|
||||
exec 1>/dev/console 2>&1
|
||||
|
||||
P=/sys$DEVPATH
|
||||
[ -r $P/../../uevent ] && . $P/../../uevent
|
||||
[ -r $P/uevent ] && . $P/uevent
|
||||
|
||||
# Exit unless proper type
|
||||
[ $SUBSYSTEM = "usb-serial" -a -n "$DRIVER" ] || exit 0
|
||||
|
||||
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
|
||||
|
||||
ME=${0##*/}
|
||||
say ()
|
||||
{
|
||||
echo "$ME: $@"
|
||||
logger -t $ME "$@"
|
||||
}
|
||||
|
||||
MANU=$( ( test -r $P/../manufacturer && cat $P/../manufacturer ) || \
|
||||
( test -r $P/../../manufacturer && cat $P/../../manufacturer ) || echo "generic" )
|
||||
|
||||
PORT=$( cat $P/port_number )
|
||||
DEV_NM="$DRIVER-$(cat $P/../../idVendor)-$(cat $P/../../idProduct)"
|
||||
DEVP=/dev/ttyusb/$DEV_NM
|
||||
|
||||
if [ $ACTION = "add" ] ;then
|
||||
mkdir -p $DEVP
|
||||
ln -sf /dev/$MDEV $DEVP/$PORT
|
||||
say "ADD $DEVPATH MANU $MANU"
|
||||
say "Add $DEVP/$PORT -> /dev/$MDEV"
|
||||
if [ -n $DEVNAME ] ;then
|
||||
DEVADDR=$(echo $DEVNAME | tr / _)
|
||||
ln -sf /dev/$MDEV $DEVP/$DEVADDR:$(cat $P/../bInterfaceNumber)
|
||||
say "Add $DEVP/$DEVADDR -> /dev/$MDEV"
|
||||
fi
|
||||
elif [ $ACTION = "remove" ] ;then
|
||||
rm -f /dev/ttyusb/$MANU/$DEV_NM/$PORT
|
||||
say "REM $DEVPATH MANU $MANU"
|
||||
say "Rem $DEVP/$PORT -> /dev/$MDEV"
|
||||
else
|
||||
say "Unknown action $ACTION for $MDEV $MANU $DEV_NM PATH $DEVPATH"
|
||||
fi
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Beregn afhængigheder mellem moduler, opret modules.dep og load moduler fra /etc/modules.
|
||||
|
||||
. /etc/init.d/rcS-helper
|
||||
|
||||
start() {
|
||||
# This will work when busysbox is configured with MODPROBE_SMALL
|
||||
modprobe depmod-dummy 2>/dev/null
|
||||
|
||||
# Loop over every line in /etc/modules.
|
||||
dmesg -n 5
|
||||
echo -n 'Loading modules: '
|
||||
(cat /etc/modules; echo) | # The echo make sure there is a LF at the end.
|
||||
while read module args; do
|
||||
case "$module" in
|
||||
\#*|"") continue ;;
|
||||
esac
|
||||
echo -n "$module: "
|
||||
modprobe $module $args
|
||||
done
|
||||
echo ''
|
||||
dmesg -n 7
|
||||
}
|
||||
|
||||
stop() {
|
||||
:
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart|reload)
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
@@ -1,49 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Mdev coldplugging
|
||||
#
|
||||
|
||||
start() {
|
||||
# Autodetection of hardware
|
||||
|
||||
echo -n "Autodetecting hardware ."
|
||||
MODALIAS=`find /sys/devices -iname modalias -exec cat {} \;`
|
||||
while [ `echo "$MODALIAS"|wc -l` -gt `echo "$TMODALIAS"|wc -l` ]; do
|
||||
echo -n "."
|
||||
for i in $MODALIAS; do
|
||||
/sbin/modprobe $i 2>/dev/null
|
||||
done
|
||||
[ "$VERBOSE" ] && echo Loaded `echo "$MODALIAS"|wc -l` modaliases
|
||||
[ "$DRV_WAIT" -gt 0 ] && sleep $DRV_WAIT
|
||||
TMODALIAS="$MODALIAS"
|
||||
MODALIAS=`find /sys/devices -iname modalias -exec cat {} \;`
|
||||
done
|
||||
echo " done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
stop() {
|
||||
:
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart|reload)
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/ash
|
||||
|
||||
modprobe rfcomm
|
||||
rfcomm bind 0 00:0B:0D:6C:6B:EB
|
||||
|
||||
start-stop --start --respawn /usr/bin/nmeamux
|
||||
@@ -1,2 +0,0 @@
|
||||
sd[a-z] 0:0 660 - */sbin/hotplug usb
|
||||
ttyUSB[0-9]* 0:0 660 - */sbin/hotplug usbtty
|
||||
@@ -1,607 +0,0 @@
|
||||
#!/usr/bin/env lua-agent
|
||||
--[[
|
||||
- @file nmeamux
|
||||
- ABSTRACT HERE <<
|
||||
-
|
||||
- $Id$
|
||||
-
|
||||
- (C) Copyright 2011 Amplex, fm@amplex.dk
|
||||
--]]
|
||||
|
||||
require "stdlib" .include { "seq", "list" }
|
||||
require "posix"
|
||||
require "socket"
|
||||
require "Class"
|
||||
require "trace"
|
||||
local NIL = Class.NIL
|
||||
local list = _G.list
|
||||
local sampleConf
|
||||
|
||||
local iometa = getmetatable(io.stdin)
|
||||
if iometa.fileno and not iometa.getfd then iometa.getfd = iometa.fileno end
|
||||
|
||||
local function getMsecs()
|
||||
local now, mSec = appc.systemTime()
|
||||
return now * 1000 + mSec
|
||||
end
|
||||
|
||||
local L_OPEN_RETRY = 5 * 1000
|
||||
|
||||
local DutyCycle = Class(nil, "DutyCycle", {
|
||||
mInterval = 1,
|
||||
mPort = NIL,
|
||||
mPrefix = NIL,
|
||||
mTail = NIL,
|
||||
mLastLog = NIL,
|
||||
})
|
||||
|
||||
function DutyCycle.new(class, port, pfx)
|
||||
local now = getMsecs()
|
||||
return class:_new():_merge { mPort = port, mPrefix = pfx , mTail = tnew{}, mLastLog = now }
|
||||
end
|
||||
|
||||
---
|
||||
-- Keep track of bandwidth etc.
|
||||
function DutyCycle:add(str)
|
||||
local now = getMsecs()
|
||||
local start = now - math.floor(self.mInterval * 1000)
|
||||
local tail = self.mTail
|
||||
while #tail > 0 and tail[#tail].t < start do tail:remove() end
|
||||
self.mTail:insert(1, {t = now, s = str:sub(1,6), l = #str})
|
||||
|
||||
if self.mLastLog < start then
|
||||
local sum, sums = 0, {}
|
||||
for _,ent in ipairs(tail) do
|
||||
sum = sum + ent.l
|
||||
sums[ent.s] = 1 + (sums[ent.s] or 0)
|
||||
end
|
||||
local names = List(seq.all_keys(sums)):sort()
|
||||
log.notice(("PORT:%-12s %s:%3d%% %3d %s"):_(self.mPort.mName, self.mPrefix,
|
||||
idiv(sum * 1000, self.mPort.mSpeed), sum,
|
||||
List(seq.map(|n|("%s:%d"):_(n, sums[n]), list.iter(names))):concat(",")))
|
||||
self.mLastLog = now
|
||||
end
|
||||
end
|
||||
|
||||
local nodes = {}
|
||||
local sysmon
|
||||
local sysstat= {} -- pos, sog, cog, stw, hdg, dpt, wrv, wrb,
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- NmeaNode
|
||||
-- Handle node graph and telnet connections
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local NmeaNode = Class(nil, "NmeaNode", {
|
||||
mName = NIL,
|
||||
mInputs = NIL,
|
||||
mSinks = NIL,
|
||||
mPortNo = NIL,
|
||||
mPortSock = NIL,
|
||||
mListeners = NIL,
|
||||
mSubscriptions = NIL,
|
||||
})
|
||||
|
||||
---
|
||||
-- Create a generic node
|
||||
function NmeaNode.new(_class, name, cfg)
|
||||
return _class:_new():_merge {
|
||||
mName = name,
|
||||
mInputs = cfg.inputs,
|
||||
mSinks = {},
|
||||
mPortNo = cfg.port,
|
||||
mListeners = {},
|
||||
mSubscriptions = {},
|
||||
}
|
||||
end
|
||||
|
||||
---
|
||||
-- Data forwarding
|
||||
function NmeaNode:processInput(str)
|
||||
-- Simple relay
|
||||
log.debug(||("NODE:%-12s READ: %t"):_(self.mName, str))
|
||||
for sink, ix in pairs(self.mSinks) do
|
||||
sink:processInput(str, ix)
|
||||
end
|
||||
for l,_ in pairs(self.mListeners) do
|
||||
l:send(str.."\r\n")
|
||||
end
|
||||
end
|
||||
|
||||
---
|
||||
-- Register a data sink
|
||||
function NmeaNode:addSink(new, ix)
|
||||
-- Simple relay
|
||||
self.mSinks[new] = ix
|
||||
end
|
||||
|
||||
---
|
||||
-- Read input from a connected peer.
|
||||
-- Override and embed in derived classes to read input
|
||||
function NmeaNode:readClient(subscr, inp)
|
||||
local res, err = posix.read(inp:getfd())
|
||||
log.debugonly(||("PORT:%-12s NET:%d:%s: %s"):
|
||||
_(self.mName, inp:getfd(), err or "OK", (res or ""):quotebin()))
|
||||
if not res or res == "" then
|
||||
log.notice(("PORT:%-12s Connection %d closed"):_(self.mName, inp:getfd()))
|
||||
self.mListeners[inp] = nil
|
||||
self.mSubscriptions[subscr] = nil
|
||||
subscr:clear()
|
||||
inp:close()
|
||||
return nil
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
---
|
||||
-- Startup system interaction
|
||||
function NmeaNode:start(str)
|
||||
for ix,s in ipairs(self.mInputs or {}) do
|
||||
assert(nodes[s], ("No input: %s"):_(s)):addSink(self, ix)
|
||||
end
|
||||
if not self.mPortNo then return end
|
||||
|
||||
if self.mPortNo then
|
||||
local sock, err = socket.bind("0.0.0.0", self.mPortNo)
|
||||
self.mPortSock = assert(sock, ("Can not open listen on %d: %t"):_(self.mPortNo, err))
|
||||
local subscr = appc.addFileIO(self.mPortSock:getfd(), function(subscr)
|
||||
local inp = self.mPortSock:accept()
|
||||
log.notice(("PORT:%-12s Connection %d opened from %t"):
|
||||
_(self.mName, inp:getfd(), inp:getpeername()))
|
||||
local subscr = appc.addFileIO(inp:getfd(), function(subscr)
|
||||
self:readClient(subscr, inp)
|
||||
end)
|
||||
self.mSubscriptions[subscr] = true
|
||||
self.mListeners[inp] = true
|
||||
end)
|
||||
self.mSubscriptions[subscr] = true
|
||||
end
|
||||
end
|
||||
|
||||
---
|
||||
-- Cleanup subscriptions & listeners
|
||||
function NmeaNode:clear()
|
||||
for l,_ in pairs(self.mSubscriptions) do l:clear() end
|
||||
for l,_ in pairs(self.mListeners) do l:close() end
|
||||
self.mSubscriptions = NIL
|
||||
self.mListeners = NIL
|
||||
if self.mPortSock then self.mPortSock:close() end
|
||||
self.mPortSock = nil
|
||||
end
|
||||
function NmeaNode:__gc() return self:clear() end
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- NmeaOutput
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local NmeaOutput = Class(NmeaNode, "NmeaOutput", {
|
||||
mOutput = NIL,
|
||||
})
|
||||
|
||||
---
|
||||
-- Create an output node
|
||||
function NmeaOutput.new(_class, name, cfg)
|
||||
return NmeaOutput:getSuper().new(_class, name, cfg):_merge {
|
||||
mOutput = assert(cfg.output)
|
||||
}
|
||||
end
|
||||
|
||||
---
|
||||
-- Startup system interaction
|
||||
function NmeaOutput:start(str)
|
||||
NmeaOutput:getSuper().start(self, str)
|
||||
self:addSink(nodes[self.mOutput], 1)
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- NmeaPort
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local NmeaPort = Class(NmeaNode, "NmeaPort", {
|
||||
mPath = NIL,
|
||||
mSpeed = NIL,
|
||||
mDutyIn = NIL,
|
||||
mDutyOut = NIL,
|
||||
mSerialPort = NIL,
|
||||
mLineBuffer = NIL,
|
||||
})
|
||||
local RawPort
|
||||
|
||||
function NmeaPort.new(_class, name, cfg)
|
||||
local new = RawPort.new(_class, name, cfg)
|
||||
return new:_merge {
|
||||
mDutyOut = DutyCycle(new, "O"),
|
||||
mDutyIn = DutyCycle(new, "I"),
|
||||
mLineBuffer = tnew {},
|
||||
}
|
||||
end
|
||||
|
||||
---
|
||||
-- Startup system interaction
|
||||
function NmeaPort:start(str)
|
||||
NmeaPort:getSuper().start(self, str)
|
||||
return self:reOpen()
|
||||
end
|
||||
|
||||
local function nmeaReadPort(self, port, subscr)
|
||||
local str, err = posix.read(port:getfd())
|
||||
if not str or str == "" then
|
||||
log.error(("PORT:%-12s REOPEN: Failed to read %t: %t"):_(self.mName, self.mPath, err))
|
||||
port:close()
|
||||
self.mSerialPort = nil
|
||||
subscr:clear()
|
||||
self.mSubscriptions[subscr] = nil
|
||||
appc.addTimer(L_OPEN_RETRY, function() self:reOpen() end)
|
||||
return
|
||||
end
|
||||
-- TODO: Reopen on error
|
||||
log.debugonly(||("PPPPORT:%-12s INP:%d:%s: %s"):
|
||||
_(self.mName, port:getfd(), err or "OK", (str or ""):quotebin()))
|
||||
if self.mLineBuffer then
|
||||
local where,whend = str:find("[\r\n]+")
|
||||
if where then
|
||||
while where do
|
||||
self.mLineBuffer:append(str:sub(1, where - 1))
|
||||
local line = self.mLineBuffer:concat()
|
||||
if #line > 0 then
|
||||
--NmeaPort:getSuper().processInput(self, ("%d%s"):_(#self.mLineBuffer,line))
|
||||
self.mDutyIn:add(str)
|
||||
NmeaPort:getSuper().processInput(self, line)
|
||||
end
|
||||
str = str:sub(whend + 1, -1)
|
||||
where,whend = str:find("[\r\n]+")
|
||||
self.mLineBuffer = tnew {}
|
||||
end
|
||||
self.mLineBuffer = tnew { str }
|
||||
else
|
||||
self.mLineBuffer:append(str)
|
||||
end
|
||||
else
|
||||
log.debugonly(||("PORT:%-12s INP:%d:%s: %s"):
|
||||
_(self.mName, port:getfd(), err or "OK", (str or ""):quotebin()))
|
||||
for l,_ in pairs(self.mListeners) do
|
||||
l:send(str)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---
|
||||
-- Startup system interaction
|
||||
function NmeaPort:reOpen()
|
||||
local port, err = io.open(self.mPath, "r+")
|
||||
log.debugonly(||("REOPEN:%s %s -> %t, %t"):_(self.mName, self.mPath, port, err))
|
||||
if not port then
|
||||
log.error(("PORT:%-12s Failed to open %s: %s"):_(self.mName, self.mPath, err))
|
||||
appc.addTimer(L_OPEN_RETRY, function() self:reOpen() end)
|
||||
return
|
||||
end
|
||||
self.mSerialPort = port
|
||||
if self.mSpeed and self.mSpeed > 0 then
|
||||
os.execute(("stty %d raw -echo -parenb cs8 min 50 time 1 < %s"):_(self.mSpeed, self.mPath))
|
||||
end
|
||||
local subscr = appc.addFileIO(self.mSerialPort:getfd(), function(subscr)
|
||||
return nmeaReadPort(self, port, subscr)
|
||||
end)
|
||||
self.mSubscriptions[subscr] = true
|
||||
end
|
||||
|
||||
---
|
||||
-- Cleanup subscriptions & listeners
|
||||
function NmeaPort:clear()
|
||||
NmeaPort:getSuper().clear(self)
|
||||
if self.mSerialPort then self.mSerialPort:close() end
|
||||
self.mSerialPort = nil
|
||||
end
|
||||
|
||||
|
||||
---
|
||||
-- Data forwarding
|
||||
function NmeaPort:processInput(str)
|
||||
if self.mDutyOut then self.mDutyOut:add(str) end
|
||||
log.debug(||("OUTP:%-12s W: %t"):_(self.mName, str))
|
||||
posix.write(self.mSerialPort:getfd(), str.."\r\n")
|
||||
-- if self.mLineBuffer then sysmon:addOut(self, str:sub(1,6)) end
|
||||
end
|
||||
|
||||
---
|
||||
-- Read input from a connected peer.
|
||||
function NmeaPort:readClient(subscr, inp)
|
||||
local str = NmeaPort:getSuper().readClient(self, subscr, inp)
|
||||
local fd = self.mSerialPort:getfd()
|
||||
if str and not self.mLineBuffer then
|
||||
log.debugonly(||("PORT:%-12s OUT:%d:%s: %s"):
|
||||
_(self.mName, fd, err or "OK", (str or ""):quotebin()))
|
||||
posix.write(fd, str)
|
||||
end
|
||||
end
|
||||
|
||||
-- Must delay 'til after NmeaPort methods dur to Class.lua idiosyncasies
|
||||
-- Create a NmeaNode sans the mLineBufer etc
|
||||
RawPort = Class(NmeaPort, "RawPort", {})
|
||||
---
|
||||
-- Create an output node
|
||||
function RawPort.new(_class, name, cfg)
|
||||
return NmeaNode.new(_class, name, cfg):_merge {
|
||||
mPath = assert(cfg.path),
|
||||
mSpeed = assert(cfg.speed),
|
||||
}
|
||||
end
|
||||
|
||||
function RawPort:processInput(str)
|
||||
log.debug(||("OUTRAW:%-12s W: %t"):_(self.mName, str))
|
||||
posix.write(self.mSerialPort:getfd(), str)
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- NmeaFilter
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local NmeaFilter = Class(NmeaNode, "NmeaFilter", {
|
||||
mPosList = NIL,
|
||||
mNegList = NIL,
|
||||
mAuxList = NIL,
|
||||
mPrioTout = NIL,
|
||||
mPrioList = NIL,
|
||||
})
|
||||
|
||||
---
|
||||
-- Create an output node
|
||||
function NmeaFilter.new(_class, name, cfg)
|
||||
return NmeaFilter:getSuper().new(_class, name, cfg):_merge {
|
||||
mPosList = cfg.pos,
|
||||
mNegList = cfg.neg,
|
||||
mAuxList = cfg.aux,
|
||||
mPrioTout = cfg.prio_delay,
|
||||
mPrioList = {},
|
||||
}
|
||||
end
|
||||
|
||||
---
|
||||
-- Startup system interaction
|
||||
function NmeaFilter:start(str)
|
||||
NmeaFilter:getSuper().start(self, str)
|
||||
self.mAuxList = List(seq.map(function(cls) return cls() end, self.mAuxList or {}))
|
||||
end
|
||||
|
||||
---
|
||||
-- Data forwarding
|
||||
function NmeaFilter:processInput(str, ix)
|
||||
if self.mNegList then
|
||||
for _,p in ipairs(self.mNegList) do
|
||||
if str:find(p) then
|
||||
log.debug(||("NREJ:%-12s NEG:%s: %t"):_(self.mName, p, str))
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
if self.mPosList then
|
||||
local pass
|
||||
for _,p in ipairs(self.mPosList) do
|
||||
if str:find(p) then
|
||||
pass = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if not pass then
|
||||
log.debug(||("PREJ:%-12s READ: %t"):_(self.mName, str))
|
||||
return
|
||||
end
|
||||
end
|
||||
if self.mAuxList then
|
||||
for _,aux in ipairs(self.mAuxList) do
|
||||
aux:process(self, str, function(str) self:passItOn(str, ix) end)
|
||||
end
|
||||
else
|
||||
self:passItOn(str, ix)
|
||||
end
|
||||
end
|
||||
|
||||
---
|
||||
-- Implement priority shadowing
|
||||
function NmeaFilter:passItOn(str, ix)
|
||||
if self.mPrioTout then
|
||||
local now = getMsecs()
|
||||
local stmt = str:sub(1,6)
|
||||
local old = self.mPrioList[stmt]
|
||||
if old and (now - old.timeStamp) < self.mPrioTout and old.prio < ix then
|
||||
log.debug(||("TREJ:%-12s READ: %t"):_(self.mName, str))
|
||||
return -- He wins
|
||||
end
|
||||
self.mPrioList[stmt] = { timeStamp = now, prio = ix }
|
||||
end
|
||||
return NmeaFilter:getSuper().processInput(self, str, ix)
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- NilFilter
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local NilFilter = Class(nil, "NilFilter", {})
|
||||
|
||||
function NilFilter:process(port, str, out)
|
||||
out(str)
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- AisFilter
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local AisFilter = Class(NilFilter, "AisFilter", {mDb = NIL})
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- GpsComp
|
||||
--------------------------------------------------------------------
|
||||
--
|
||||
local GpsComp = Class(NilFilter, "GpsComp", {mDb = NIL})
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- MONITOR
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local SysMon= Class(nil, "SysMon", {
|
||||
mPort = NIL,
|
||||
mQueue = NIL,
|
||||
mTimer = NIL,
|
||||
mIndex = NIL,
|
||||
})
|
||||
|
||||
function SysMon:runTimer()
|
||||
end
|
||||
|
||||
local SysMonTon = Class(nil, "SysMonTon", {
|
||||
mSysMons = NIL,
|
||||
mNames = NIL,
|
||||
mListeners = NIL,
|
||||
mSocket = NIL,
|
||||
})
|
||||
|
||||
function SysMonTon:openPort(port)
|
||||
end
|
||||
|
||||
function SysMonTon:addIn(port, snt, out)
|
||||
local q = self.mSysMons[port].mQueue[out and 2 or 1]
|
||||
q:insert(snt)
|
||||
sysmon:LineStat(self.mSysMons[port], out)
|
||||
self.mSysMons[port]:runTimer()
|
||||
end
|
||||
|
||||
function SysMonTon:addOut(port, snt)
|
||||
return self:addIn(port, snt, true)
|
||||
end
|
||||
|
||||
function SysMonTon:addPort(port)
|
||||
if self.mSysMons[port] then return end
|
||||
|
||||
self.mNames:insert(port.mName)
|
||||
self.mNames:sort()
|
||||
for ix,nm in ipairs(self.mNames) do
|
||||
if nm == port.mName then
|
||||
self.mSysMons[port] = SysMon { mIndex = ix, mQueue = {{}, {}}, mPort = port }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function startMonitor(port)
|
||||
sysmon = SysMonTon { mSysMons = {}, mListeners = {}, mNames = tnew {} }
|
||||
sysmon:openPort(port)
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- SYSTEM
|
||||
--------------------------------------------------------------------
|
||||
|
||||
local testConf
|
||||
--[[
|
||||
= {
|
||||
outputs = {
|
||||
testout = { inputs = { "testfilter" }, output = "rawport", port=27002 },
|
||||
},
|
||||
nmeaports = {
|
||||
testgps = { path = "/dev/ttyUSB0", speed=4800 , port=26001},
|
||||
testport = { path = "/dev/ttyUSB1", speed=4800 , port=26002},
|
||||
},
|
||||
rawports = {
|
||||
rawport = { path = "/dev/ttyUSB2", speed=38400 , port=25006},
|
||||
},
|
||||
filter = {
|
||||
testfilter = { inputs = { "testport", "testgps" } , port=28001,
|
||||
neg = { "^...GGA", }, prio_delay=2500, aux = {AisFilter} },
|
||||
},
|
||||
}
|
||||
--]]
|
||||
|
||||
---
|
||||
-- Startup system after all nodes are brought into existence
|
||||
local function startSystem()
|
||||
for name,n in pairs(nodes) do
|
||||
n:start(name)
|
||||
end
|
||||
end
|
||||
|
||||
local function getConf()
|
||||
-- TODO: Find a configuration
|
||||
end
|
||||
|
||||
local function configure(config)
|
||||
for cfgNode, classFactory in pairs {
|
||||
nmeaports = NmeaPort,
|
||||
rawports = RawPort,
|
||||
outputs = NmeaOutput,
|
||||
filter = NmeaFilter,
|
||||
}
|
||||
do
|
||||
for name, cfg in pairs(config[cfgNode] or {}) do
|
||||
assert(nodes[name] == nil)
|
||||
nodes[name] = classFactory(name, cfg)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function runGC()
|
||||
collectgarbage("collect")
|
||||
log.notice(("! MEM: %.2f"):_(collectgarbage("count")))
|
||||
appc.addTimer(10 * 1000, runGC)
|
||||
end
|
||||
|
||||
local function main(args)
|
||||
--trace.on()
|
||||
local conf = getConf() or testConf or sampleConf
|
||||
if not log.debug() and args[1] and args[1] == "trace" then
|
||||
local traceLog = log.create("nmeamux-trace.log", 0, false, 8000)
|
||||
log.debugonly = function() end
|
||||
log.debug = function(str)
|
||||
if not str then return false end
|
||||
if type(str) == "function" then str = str() end
|
||||
return traceLog:log(str)
|
||||
end
|
||||
else
|
||||
log.debugonly = log.debug
|
||||
end
|
||||
configure(conf)
|
||||
startMonitor(117)
|
||||
startSystem()
|
||||
runGC()
|
||||
end
|
||||
|
||||
local NM_GPS = { "^...GGA", "^...GSA", "^...RMC", "^...GSV", }
|
||||
sampleConf = {
|
||||
outputs = {
|
||||
instruments = { inputs = {"p_lospeed_1", "nogps", "autopilot"} , port=27001,
|
||||
output = "p_lospeed_1" },
|
||||
--sfeed = { inputs = { "gps_bkhousemux" }, output = "p_lospeed_2", port=27002 },
|
||||
gpsfeed = { inputs = { "gpsmin" }, output = "p_lospeed_2", port=27002 },
|
||||
garmin_nmea = { inputs = { "p_lospeed_1", "p_lospeed_2", "aisfilter", "nogps", "gps" },
|
||||
output = "p_hispeed", port=27003 },
|
||||
},
|
||||
nmeaports = {
|
||||
p_lospeed_1 = { path = "/dev/ttyusb/mos7840-9710-7840/0", speed=4800 , port=26001},
|
||||
p_lospeed_2 = { path = "/dev/ttyusb/mos7840-9710-7840/1", speed=4800 , port=26002},
|
||||
p_hispeed = { path = "/dev/ttyusb/mos7840-9710-7840/2", speed=38400 , port=26003},
|
||||
p_gps = { path = "/dev/rfcomm0", speed=38400 , port=26004},
|
||||
p_ais = { path = "/dev/ttyusb/ftdi_sio-0403-6001/0", speed=38400 , port=25001},
|
||||
-- p_ais = { path = "/dev/ttyS1", speed=38400 , port=25001},
|
||||
-- p_gps = { path = "/dev/ttyS1", speed=38400 , port=26004},
|
||||
p_bkhousemux = { path = "/dev/ttyusb/pl2303-067b-2303/bus_usb_001_009:00",
|
||||
speed=38400 , port=25005},
|
||||
},
|
||||
rawports = {
|
||||
p_pactor = { path = "/dev/ttyusb/ftdi_sio-0403-d010/0", speed=9600 , port=25002},
|
||||
p_garmin1 = { path = "/dev/ttyusb/mos7840-9710-7840/3", speed=9600 , port=25003},
|
||||
p_garmin2 = { path = "/dev/ttyS1", speed=9600 , port=25004},
|
||||
p_navtex = { path = "/dev/ttyusb/pl2303-067b-2303/bus_usb_001_010:00",
|
||||
speed=38400 , port=25006},
|
||||
},
|
||||
filter = {
|
||||
nogps = { inputs = { "p_bkhousemux" }, neg = NM_GPS , port=28001, },
|
||||
gps = { inputs = { "p_gps", "p_bkhousemux", "aisfilter"} , port=28002,
|
||||
pos = NM_GPS, aux={GpsComp}, prio_delay=2500 },
|
||||
gpsmin = { inputs = { "gps", pos = { "^...RMC" } } },
|
||||
autopilot = { inputs = { "p_hispeed" } , port=28003,
|
||||
pos = { "^...XTE", "^...WPT" } },
|
||||
aisfilter = { inputs = { "p_ais" } , port=28004,
|
||||
aux = {AisFilter} }
|
||||
},
|
||||
}
|
||||
|
||||
return ac.ADDR_TRANSIENT, main
|
||||
-- vim: set sw=3 sts=3 et nu:
|
||||
Binary file not shown.
File renamed without changes.
Reference in new issue
Block a user