diff --git a/readme.txt b/readme.txt index b56f2a7..dcc5771 100644 --- a/readme.txt +++ b/readme.txt @@ -1,11 +1,3 @@ -Notes: - -Some config changes are done in patched packages: -- wpa_supplicant -- vim - -Packages I usually remove from a slackware base install are listed in the blacklist file in this folder. - Changes: /etc/rc.d/rc.M: @@ -47,11 +39,24 @@ Changes: /etc/cron.hourly/psd: - Resync /etc/rc.d/rc.psd on a hourly basis, if enabled. +/etc/slackpkg/blacklist: +- List of packages I usually remove from a slackware base install + /etc/dhcpcd.conf: - Removed nohook for wpa_supplicant, to run it on every wireless interface +/etc/wpa_supplicant.conf: +- Set ctrl_interface_group to netdev, to allow non-root users to connect to the daemon +- Allow the config to be updated by the daemon + /etc/ntp.conf: - Uncommented all default NTP servers. /etc/X11/xinit/xinitrc.i3: - Added xinitrc file for the i3 window system + +/usr/share/vim/vimrc: +- Don't create backup or undo files + +/usr/libexec/slackpkg/functions.d/post-functions.sh: +- Adapted the looknew() algorithm to find all the .new files. diff --git a/rocket-config.SlackBuild b/rocket-config.SlackBuild index 1017f04..980a55e 100755 --- a/rocket-config.SlackBuild +++ b/rocket-config.SlackBuild @@ -19,25 +19,29 @@ cat $CWD/doinst.sh > $PKG/install/doinst.sh # Install package docs mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION cat $CWD/readme.txt > $PKG/usr/doc/$PKGNAM-$VERSION/readme.txt -cat $CWD/blacklist > $PKG/usr/doc/$PKGNAM-$VERSION/blacklist # Install all config files -find $CWD/etc -type f ! -name '*.orig' -printf '%P\n' | while read config; do - echo Installing /etc/$config - install -Dm644 $CWD/etc/$config $PKG/etc/$config.new +find $CWD/root -type f ! -name '*.orig' -printf '%P\n' | while read config; do + echo Installing /$config + install -Dm644 $CWD/root/$config $PKG/$config.new # Add config lines to doinst.sh - if [ -r $CWD/etc/$config.orig ]; then - echo config etc/$config.new $(cat $CWD/etc/$config.orig | md5sum | cut -d ' ' -f 1) >> $PKG/install/doinst.sh + if [ -r $CWD/root/$config.orig ]; then + echo config $config.new $(md5sum $CWD/root/$config.orig | cut -d ' ' -f 1) >> $PKG/install/doinst.sh else - echo config etc/$config.new >> $PKG/install/doinst.sh + echo config $config.new >> $PKG/install/doinst.sh fi done # Set some special permissions -chmod 755 $PKG/etc/rc.d/rc.* $PKG/etc/X11/xinit/* $PKG/etc/profile.d/* $PKG/etc/cron.*/* +chmod 755 $PKG/etc/rc.d/rc.* \ + $PKG/etc/X11/xinit/* \ + $PKG/etc/profile.d/* \ + $PKG/etc/cron.*/* \ + $PKG/usr/libexec/slackpkg/functions.d/* chmod 750 $PKG/etc/sudoers.d chmod 440 $PKG/etc/sudoers.d/* +chmod 600 $PKG/etc/wpa_supplicant.conf.new cd $PKG /sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/etc/X11/xinit/xinitrc.i3 b/root/etc/X11/xinit/xinitrc.i3 similarity index 100% rename from etc/X11/xinit/xinitrc.i3 rename to root/etc/X11/xinit/xinitrc.i3 diff --git a/etc/astronaut.conf b/root/etc/astronaut.conf similarity index 100% rename from etc/astronaut.conf rename to root/etc/astronaut.conf diff --git a/etc/cron.hourly/psd b/root/etc/cron.hourly/psd similarity index 100% rename from etc/cron.hourly/psd rename to root/etc/cron.hourly/psd diff --git a/etc/default/dhcpcd b/root/etc/default/dhcpcd similarity index 100% rename from etc/default/dhcpcd rename to root/etc/default/dhcpcd diff --git a/etc/default/psd b/root/etc/default/psd similarity index 100% rename from etc/default/psd rename to root/etc/default/psd diff --git a/etc/dhcpcd.conf b/root/etc/dhcpcd.conf similarity index 100% rename from etc/dhcpcd.conf rename to root/etc/dhcpcd.conf diff --git a/etc/dhcpcd.conf.orig b/root/etc/dhcpcd.conf.orig similarity index 100% rename from etc/dhcpcd.conf.orig rename to root/etc/dhcpcd.conf.orig diff --git a/etc/ntp.conf b/root/etc/ntp.conf similarity index 100% rename from etc/ntp.conf rename to root/etc/ntp.conf diff --git a/etc/ntp.conf.orig b/root/etc/ntp.conf.orig similarity index 100% rename from etc/ntp.conf.orig rename to root/etc/ntp.conf.orig diff --git a/etc/profile.d/unset-less.sh b/root/etc/profile.d/unset-less.sh similarity index 100% rename from etc/profile.d/unset-less.sh rename to root/etc/profile.d/unset-less.sh diff --git a/etc/profile.d/wheel-path.sh b/root/etc/profile.d/wheel-path.sh similarity index 100% rename from etc/profile.d/wheel-path.sh rename to root/etc/profile.d/wheel-path.sh diff --git a/etc/profile.d/xdg-runtime-dir.sh b/root/etc/profile.d/xdg-runtime-dir.sh similarity index 100% rename from etc/profile.d/xdg-runtime-dir.sh rename to root/etc/profile.d/xdg-runtime-dir.sh diff --git a/etc/rc.d/rc.6 b/root/etc/rc.d/rc.6 similarity index 100% rename from etc/rc.d/rc.6 rename to root/etc/rc.d/rc.6 diff --git a/etc/rc.d/rc.6.orig b/root/etc/rc.d/rc.6.orig similarity index 100% rename from etc/rc.d/rc.6.orig rename to root/etc/rc.d/rc.6.orig diff --git a/etc/rc.d/rc.M b/root/etc/rc.d/rc.M similarity index 100% rename from etc/rc.d/rc.M rename to root/etc/rc.d/rc.M diff --git a/etc/rc.d/rc.M.orig b/root/etc/rc.d/rc.M.orig similarity index 100% rename from etc/rc.d/rc.M.orig rename to root/etc/rc.d/rc.M.orig diff --git a/etc/rc.d/rc.S b/root/etc/rc.d/rc.S similarity index 100% rename from etc/rc.d/rc.S rename to root/etc/rc.d/rc.S diff --git a/etc/rc.d/rc.S.orig b/root/etc/rc.d/rc.S.orig similarity index 100% rename from etc/rc.d/rc.S.orig rename to root/etc/rc.d/rc.S.orig diff --git a/etc/rc.d/rc.alsa b/root/etc/rc.d/rc.alsa similarity index 100% rename from etc/rc.d/rc.alsa rename to root/etc/rc.d/rc.alsa diff --git a/etc/rc.d/rc.alsa.orig b/root/etc/rc.d/rc.alsa.orig similarity index 100% rename from etc/rc.d/rc.alsa.orig rename to root/etc/rc.d/rc.alsa.orig diff --git a/etc/rc.d/rc.dhcpcd b/root/etc/rc.d/rc.dhcpcd similarity index 85% rename from etc/rc.d/rc.dhcpcd rename to root/etc/rc.d/rc.dhcpcd index 80c54b6..bb67757 100644 --- a/etc/rc.d/rc.dhcpcd +++ b/root/etc/rc.d/rc.dhcpcd @@ -4,7 +4,7 @@ # # Start/stop the DHCP daemon. # -# This script doesn't do anything other than starting dhcpcp for the specified interfaces (or all of them). For more functionality see rc.inet1. +# This script doesn't do anything other than starting dhcpcd for the specified interfaces (or all of them). For more functionality see rc.inet1. IFACES="" if [ -f /etc/default/dhcpcd ]; then diff --git a/etc/rc.d/rc.psd b/root/etc/rc.d/rc.psd similarity index 100% rename from etc/rc.d/rc.psd rename to root/etc/rc.d/rc.psd diff --git a/blacklist b/root/etc/slackpkg/blacklist similarity index 99% rename from blacklist rename to root/etc/slackpkg/blacklist index 787c61a..fcbf092 100644 --- a/blacklist +++ b/root/etc/slackpkg/blacklist @@ -9,6 +9,7 @@ f kde kdei t +#tcl xfce y diff --git a/etc/sudoers.d/wheel b/root/etc/sudoers.d/wheel similarity index 100% rename from etc/sudoers.d/wheel rename to root/etc/sudoers.d/wheel diff --git a/etc/sysctl.d/swappiness.conf b/root/etc/sysctl.d/swappiness.conf similarity index 100% rename from etc/sysctl.d/swappiness.conf rename to root/etc/sysctl.d/swappiness.conf diff --git a/root/etc/wpa_supplicant.conf b/root/etc/wpa_supplicant.conf new file mode 100644 index 0000000..b13c565 --- /dev/null +++ b/root/etc/wpa_supplicant.conf @@ -0,0 +1,3 @@ +ctrl_interface=/var/run/wpa_supplicant +ctrl_interface_group=netdev +update_config=1 diff --git a/root/etc/wpa_supplicant.conf.orig b/root/etc/wpa_supplicant.conf.orig new file mode 100644 index 0000000..4dbbf96 --- /dev/null +++ b/root/etc/wpa_supplicant.conf.orig @@ -0,0 +1,2 @@ +ctrl_interface=/var/run/wpa_supplicant +ctrl_interface_group=root diff --git a/root/usr/libexec/slackpkg/functions.d/post-functions.sh b/root/usr/libexec/slackpkg/functions.d/post-functions.sh new file mode 100644 index 0000000..ca1a721 --- /dev/null +++ b/root/usr/libexec/slackpkg/functions.d/post-functions.sh @@ -0,0 +1,230 @@ +showdiff() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e ${FULLNAME} ]; then + diff -u ${FULLNAME} ${FULLNAME}.new | $MORECMD + else + echo "file $FULLNAME doesn't exist" + fi +} + +showmenu() { + echo -e "$1 - \c" + tput sc + shift + while [ $# -gt 0 ]; do + echo -e "$1" + tput rc + shift + done +} + +mergenew() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e "${FULLNAME}" ]; then + # in media res. we do the merging right away, but we later allow the user to redo it, if not satisfied with the results. + rm -f "${FULLNAME}.smerge" + echo "Enter '?' in the prompt (%) to display help." + cp -p "${FULLNAME}.new" "${FULLNAME}.smerge" # <- this is so that the installed merged file will have the same permissions as the .new file + sdiff -s -o "${FULLNAME}.smerge" "${FULLNAME}" "${FULLNAME}.new" + + GOEXM=0 + while [ $GOEXM -eq 0 ]; do + showmenu $i "(E)dit the merged file" "(I)nstall the merged file" "View a diff between the merged and the (N)ew file" "View a diff between the (O)ld and the merged file" "(R)edo the merge" "(V)iew the merged file" "(B)ack to previous menu, and delete the merged file" + read ANSWER + case "$ANSWER" in + E|e) + if [ -f "${FULLNAME}.smerge" ]; then + $EDITCMD "${FULLNAME}.smerge" + else + echo -e "Nothing was merged yet..." + fi + ;; + I|i) + if [ -f "${FULLNAME}.smerge" ]; then + if [ -e "${FULLNAME}" ]; then + mv "${FULLNAME}" "${FULLNAME}.orig" + fi + mv "${FULLNAME}.smerge" "${FULLNAME}" + rm -f "${FULLNAME}.new" + GOEXM=1 + GOEX=1 + else + echo -e "Nothing was merged yet..." + fi + ;; + N|n) + if [ -f "${FULLNAME}.smerge" ]; then + diff -u "${FULLNAME}.smerge" "${FULLNAME}.new" | $MORECMD + else + echo -e "Nothing was merged yet..." + fi + ;; + O|o) + if [ -f "${FULLNAME}.smerge" ]; then + diff -u "${FULLNAME}" "${FULLNAME}.smerge" | $MORECMD + else + echo -e "Nothing was merged yet..." + fi + ;; + R|r) + rm -f "${FULLNAME}.smerge" + echo "Enter '?' in the prompt (%) to display help." + cp -p "${FULLNAME}.new" "${FULLNAME}.smerge" # <- this is so that the installed merged file will have the same permissions as the .new file + sdiff -s -o "${FULLNAME}.smerge" "${FULLNAME}" "${FULLNAME}.new" + ;; + V|v) + if [ -f "${FULLNAME}.smerge" ]; then + $MORECMD "${FULLNAME}.smerge" + else + echo -e "Nothing was merged yet..." + fi + ;; + B|b) + rm -f "${FULLNAME}.smerge" + GOEXM=1 + ;; + esac + done + else + echo "file $FULLNAME doesn't exist" + fi +} + +overold() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e ${FULLNAME} ]; then + mv ${FULLNAME} ${FULLNAME}.orig + fi + mv ${FULLNAME}.new ${FULLNAME} +} + +removeold() { + rm $i +} + +looknew() { + + # with ONLY_NEW_DOTNEW set, slackpkg will search only for + # .new files installed in actual slackpkg's execution + if [ "$ONLY_NEW_DOTNEW" = "on" ]; then + ONLY_NEW_DOTNEW="-cnewer $TMPDIR/timestamp" + else + ONLY_NEW_DOTNEW="" + fi + + echo -e "\nSearching for NEW configuration files" + FILES="" + + find /var/log/packages -maxdepth 1 -type f ${ONLY_NEW_DOTNEW} | xargs sed -n -e '/^FILE LIST:$/,/^$/p' | fgrep -xv 'FILE LIST:' > $TMPDIR/allfiles + + local IFS=$'\n' + for f in $(grep '\.new$' $TMPDIR/allfiles | sed -e 's/\.new$//'); do + x=$f.new + if [ -f "/$f" -a -f "/$x" ]; then + if ! fgrep -x "$f" $TMPDIR/allfiles 1> /dev/null 2>&1; then + FILES+="/$x +" + fi + fi + done + + if [ "$FILES" != "" ]; then + echo -e "\n\ +Some packages had new configuration files installed. +You have four choices: + + (K)eep the old files and consider .new files later + + (O)verwrite all old files with the new ones. The + old files will be stored with the suffix .orig + + (R)emove all .new files + + (P)rompt K, O, R selection for every single file + +What do you want (K/O/R/P)?" + answer + case $ANSWER in + K|k) + break + ;; + O|o) + for i in $FILES; do + overold $i + done + break + ;; + R|r) + for i in $FILES; do + removeold $i + done + break + ;; + P|p) + echo "Select what you want file-by-file" + for i in $FILES; do + GOEX=0 + while [ $GOEX -eq 0 ]; do + echo + showmenu $i "(K)eep" "(O)verwrite" "(R)emove" "(D)iff" "(M)erge" + read ANSWER + case $ANSWER in + O|o) + overold $i + GOEX=1 + ;; + R|r) + removeold $i + GOEX=1 + ;; + D|d) + showdiff $1 + ;; + M|m) + mergenew $1 + ;; + K|k|*) + GOEX=1 + ;; + esac + done + done + break + ;; + *) + echo "OK! Your choice is nothing! slackpkg will Keep the old files for you to deal with later" + ;; + esac + else + echo -e "\t\tNo .new files found." + fi +} + +lookkernel() { + NEWKERNELMD5=$(md5sum /boot/vmlinuz 2>/dev/null) + if [ "$KERNELMD5" != "$NEWKERNELMD5" ]; then + if [ -x /sbin/lilo ]; then + echo -e "\n +Your kernel image was updated. We highly recommend you run: lilo +Do you want slackpkg to run lilo now? (Y/n)" + answer + if [ "$ANSWER" != "n" ] && [ "$ANSWER" != "N" ]; then + /sbin/lilo + fi + else + echo -e "\n +Your kernel image was updated and lilo is not found on your system. +You may need to adjust your boot manager(like GRUB) to boot appropriate +kernel." + fi + fi +} diff --git a/root/usr/libexec/slackpkg/functions.d/post-functions.sh.orig b/root/usr/libexec/slackpkg/functions.d/post-functions.sh.orig new file mode 100644 index 0000000..2eb023b --- /dev/null +++ b/root/usr/libexec/slackpkg/functions.d/post-functions.sh.orig @@ -0,0 +1,221 @@ +showdiff() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e ${FULLNAME} ]; then + diff -u ${FULLNAME} ${FULLNAME}.new | $MORECMD + else + echo "file $FULLNAME doesn't exist" + fi +} + +showmenu() { + echo -e "$1 - \c" + tput sc + shift + while [ $# -gt 0 ]; do + echo -e "$1" + tput rc + shift + done +} + +mergenew() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e "${FULLNAME}" ]; then + # in media res. we do the merging right away, but we later allow the user to redo it, if not satisfied with the results. + rm -f "${FULLNAME}.smerge" + echo "Enter '?' in the prompt (%) to display help." + cp -p "${FULLNAME}.new" "${FULLNAME}.smerge" # <- this is so that the installed merged file will have the same permissions as the .new file + sdiff -s -o "${FULLNAME}.smerge" "${FULLNAME}" "${FULLNAME}.new" + + GOEXM=0 + while [ $GOEXM -eq 0 ]; do + showmenu $i "(E)dit the merged file" "(I)nstall the merged file" "View a diff between the merged and the (N)ew file" "View a diff between the (O)ld and the merged file" "(R)edo the merge" "(V)iew the merged file" "(B)ack to previous menu, and delete the merged file" + read ANSWER + case "$ANSWER" in + E|e) + if [ -f "${FULLNAME}.smerge" ]; then + $EDITCMD "${FULLNAME}.smerge" + else + echo -e "Nothing was merged yet..." + fi + ;; + I|i) + if [ -f "${FULLNAME}.smerge" ]; then + if [ -e "${FULLNAME}" ]; then + mv "${FULLNAME}" "${FULLNAME}.orig" + fi + mv "${FULLNAME}.smerge" "${FULLNAME}" + rm -f "${FULLNAME}.new" + GOEXM=1 + GOEX=1 + else + echo -e "Nothing was merged yet..." + fi + ;; + N|n) + if [ -f "${FULLNAME}.smerge" ]; then + diff -u "${FULLNAME}.smerge" "${FULLNAME}.new" | $MORECMD + else + echo -e "Nothing was merged yet..." + fi + ;; + O|o) + if [ -f "${FULLNAME}.smerge" ]; then + diff -u "${FULLNAME}" "${FULLNAME}.smerge" | $MORECMD + else + echo -e "Nothing was merged yet..." + fi + ;; + R|r) + rm -f "${FULLNAME}.smerge" + echo "Enter '?' in the prompt (%) to display help." + cp -p "${FULLNAME}.new" "${FULLNAME}.smerge" # <- this is so that the installed merged file will have the same permissions as the .new file + sdiff -s -o "${FULLNAME}.smerge" "${FULLNAME}" "${FULLNAME}.new" + ;; + V|v) + if [ -f "${FULLNAME}.smerge" ]; then + $MORECMD "${FULLNAME}.smerge" + else + echo -e "Nothing was merged yet..." + fi + ;; + B|b) + rm -f "${FULLNAME}.smerge" + GOEXM=1 + ;; + esac + done + else + echo "file $FULLNAME doesn't exist" + fi +} + +overold() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e ${FULLNAME} ]; then + mv ${FULLNAME} ${FULLNAME}.orig + fi + mv ${FULLNAME}.new ${FULLNAME} +} + +removeold() { + rm $i +} + +looknew() { + + # with ONLY_NEW_DOTNEW set, slackpkg will search only for + # .new files installed in actual slackpkg's execution + if [ "$ONLY_NEW_DOTNEW" = "on" ]; then + ONLY_NEW_DOTNEW="-cnewer $TMPDIR/timestamp" + else + ONLY_NEW_DOTNEW="" + fi + + echo -e "\nSearching for NEW configuration files" + FILES=$(find /etc -name "*.new" ${ONLY_NEW_DOTNEW} \ + -not -name "rc.inet1.conf.new" \ + -not -name "group.new" \ + -not -name "passwd.new" \ + -not -name "shadow.new" \ + -not -name "gshadow.new" 2>/dev/null) + if [ "$FILES" != "" ]; then + echo -e "\n\ +Some packages had new configuration files installed. +You have four choices: + + (K)eep the old files and consider .new files later + + (O)verwrite all old files with the new ones. The + old files will be stored with the suffix .orig + + (R)emove all .new files + + (P)rompt K, O, R selection for every single file + +What do you want (K/O/R/P)?" + answer + case $ANSWER in + K|k) + break + ;; + O|o) + for i in $FILES; do + overold $i + done + break + ;; + R|r) + for i in $FILES; do + removeold $i + done + break + ;; + P|p) + echo "Select what you want file-by-file" + for i in $FILES; do + GOEX=0 + while [ $GOEX -eq 0 ]; do + echo + showmenu $i "(K)eep" "(O)verwrite" "(R)emove" "(D)iff" "(M)erge" + read ANSWER + case $ANSWER in + O|o) + overold $i + GOEX=1 + ;; + R|r) + removeold $i + GOEX=1 + ;; + D|d) + showdiff $1 + ;; + M|m) + mergenew $1 + ;; + K|k|*) + GOEX=1 + ;; + esac + done + done + break + ;; + *) + echo "OK! Your choice is nothing! slackpkg will Keep the old files for you to deal with later" + ;; + esac + else + echo -e "\t\tNo .new files found." + fi +} + +lookkernel() { + NEWKERNELMD5=$(md5sum /boot/vmlinuz 2>/dev/null) + if [ "$KERNELMD5" != "$NEWKERNELMD5" ]; then + if [ -x /sbin/lilo ]; then + echo -e "\n +Your kernel image was updated. We highly recommend you run: lilo +Do you want slackpkg to run lilo now? (Y/n)" + answer + if [ "$ANSWER" != "n" ] && [ "$ANSWER" != "N" ]; then + /sbin/lilo + fi + else + echo -e "\n +Your kernel image was updated and lilo is not found on your system. +You may need to adjust your boot manager(like GRUB) to boot appropriate +kernel." + fi + fi +} diff --git a/root/usr/share/vim/vimrc b/root/usr/share/vim/vimrc new file mode 100644 index 0000000..d71b92d --- /dev/null +++ b/root/usr/share/vim/vimrc @@ -0,0 +1,114 @@ +" An example for a vimrc file. +" +" Maintainer: Bram Moolenaar +" Last change: 2016 Apr 05 +" +" To use it, copy it to +" for Unix and OS/2: ~/.vimrc +" for Amiga: s:.vimrc +" for MS-DOS and Win32: $VIM\_vimrc +" for OpenVMS: sys$login:.vimrc + +" When started as "evim", evim.vim will already have done these settings. +if v:progname =~? "evim" + finish +endif + +" Use Vim settings, rather than Vi settings (much better!). +" This must be first, because it changes other options as a side effect. +set nocompatible + +" allow backspacing over everything in insert mode +set backspace=indent,eol,start + +if has("vms") + set nobackup " do not keep a backup file, use versions instead +endif +set history=50 " keep 50 lines of command line history +set ruler " show the cursor position all the time +set showcmd " display incomplete commands +set incsearch " do incremental searching + +" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries +" let &guioptions = substitute(&guioptions, "t", "", "g") + +" Don't use Ex mode, use Q for formatting +map Q gq + +" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, +" so that you can undo CTRL-U after inserting a line break. +inoremap u + +" In many terminal emulators the mouse works just fine, thus enable it. +if has('mouse') + set mouse=a +endif + +" Switch syntax highlighting on when the terminal has colors or when using the +" GUI (which always has colors). +if &t_Co > 2 || has("gui_running") + syntax on + + " Also switch on highlighting the last used search pattern. + set hlsearch + + " I like highlighting strings inside C comments. + let c_comment_strings=1 +endif + +" Only do this part when compiled with support for autocommands. +if has("autocmd") + + " Enable file type detection. + " Use the default filetype settings, so that mail gets 'tw' set to 72, + " 'cindent' is on in C files, etc. + " Also load indent files, to automatically do language-dependent indenting. + filetype plugin indent on + + " Put these in an autocmd group, so that we can delete them easily. + augroup vimrcEx + au! + + " For all text files set 'textwidth' to 78 characters. + autocmd FileType text setlocal textwidth=78 + + " When editing a file, always jump to the last known cursor position. + " Don't do it when the position is invalid or when inside an event handler + " (happens when dropping a file on gvim). + autocmd BufReadPost * + \ if line("'\"") >= 1 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif + + augroup END + +else + + set autoindent " always set autoindenting on + +endif " has("autocmd") + +" Make vim work with the 'crontab -e' command +set backupskip+=/var/spool/cron/* + +" Convenient command to see the difference between the current buffer and the +" file it was loaded from, thus the changes you made. +" Only define it when not defined already. +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis + \ | wincmd p | diffthis +endif + +if has('langmap') && exists('+langnoremap') + " Prevent that the langmap option applies to characters that result from a + " mapping. If unset (default), this may break plugins (but it's backward + " compatible). + set langnoremap +endif + + +" Add optional packages. +" +" The matchit plugin makes the % command work better, but it is not backwards +" compatible. +packadd matchit diff --git a/root/usr/share/vim/vimrc.orig b/root/usr/share/vim/vimrc.orig new file mode 100644 index 0000000..9f44660 --- /dev/null +++ b/root/usr/share/vim/vimrc.orig @@ -0,0 +1,117 @@ +" An example for a vimrc file. +" +" Maintainer: Bram Moolenaar +" Last change: 2016 Apr 05 +" +" To use it, copy it to +" for Unix and OS/2: ~/.vimrc +" for Amiga: s:.vimrc +" for MS-DOS and Win32: $VIM\_vimrc +" for OpenVMS: sys$login:.vimrc + +" When started as "evim", evim.vim will already have done these settings. +if v:progname =~? "evim" + finish +endif + +" Use Vim settings, rather than Vi settings (much better!). +" This must be first, because it changes other options as a side effect. +set nocompatible + +" allow backspacing over everything in insert mode +set backspace=indent,eol,start + +if has("vms") + set nobackup " do not keep a backup file, use versions instead +else + set backup " keep a backup file (restore to previous version) + set undofile " keep an undo file (undo changes after closing) +endif +set history=50 " keep 50 lines of command line history +set ruler " show the cursor position all the time +set showcmd " display incomplete commands +set incsearch " do incremental searching + +" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries +" let &guioptions = substitute(&guioptions, "t", "", "g") + +" Don't use Ex mode, use Q for formatting +map Q gq + +" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, +" so that you can undo CTRL-U after inserting a line break. +inoremap u + +" In many terminal emulators the mouse works just fine, thus enable it. +if has('mouse') + set mouse=a +endif + +" Switch syntax highlighting on when the terminal has colors or when using the +" GUI (which always has colors). +if &t_Co > 2 || has("gui_running") + syntax on + + " Also switch on highlighting the last used search pattern. + set hlsearch + + " I like highlighting strings inside C comments. + let c_comment_strings=1 +endif + +" Only do this part when compiled with support for autocommands. +if has("autocmd") + + " Enable file type detection. + " Use the default filetype settings, so that mail gets 'tw' set to 72, + " 'cindent' is on in C files, etc. + " Also load indent files, to automatically do language-dependent indenting. + filetype plugin indent on + + " Put these in an autocmd group, so that we can delete them easily. + augroup vimrcEx + au! + + " For all text files set 'textwidth' to 78 characters. + autocmd FileType text setlocal textwidth=78 + + " When editing a file, always jump to the last known cursor position. + " Don't do it when the position is invalid or when inside an event handler + " (happens when dropping a file on gvim). + autocmd BufReadPost * + \ if line("'\"") >= 1 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif + + augroup END + +else + + set autoindent " always set autoindenting on + +endif " has("autocmd") + +" Make vim work with the 'crontab -e' command +set backupskip+=/var/spool/cron/* + +" Convenient command to see the difference between the current buffer and the +" file it was loaded from, thus the changes you made. +" Only define it when not defined already. +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis + \ | wincmd p | diffthis +endif + +if has('langmap') && exists('+langnoremap') + " Prevent that the langmap option applies to characters that result from a + " mapping. If unset (default), this may break plugins (but it's backward + " compatible). + set langnoremap +endif + + +" Add optional packages. +" +" The matchit plugin makes the % command work better, but it is not backwards +" compatible. +packadd matchit