Browse Source

Added a bunch of new configs, moved configs from patched packages here

rocket-config
mid-kid 7 years ago
parent
commit
50fb9d7c22
  1. 21
      readme.txt
  2. 20
      rocket-config.SlackBuild
  3. 0
      root/etc/X11/xinit/xinitrc.i3
  4. 0
      root/etc/astronaut.conf
  5. 0
      root/etc/cron.hourly/psd
  6. 0
      root/etc/default/dhcpcd
  7. 0
      root/etc/default/psd
  8. 0
      root/etc/dhcpcd.conf
  9. 0
      root/etc/dhcpcd.conf.orig
  10. 0
      root/etc/ntp.conf
  11. 0
      root/etc/ntp.conf.orig
  12. 0
      root/etc/profile.d/unset-less.sh
  13. 0
      root/etc/profile.d/wheel-path.sh
  14. 0
      root/etc/profile.d/xdg-runtime-dir.sh
  15. 0
      root/etc/rc.d/rc.6
  16. 0
      root/etc/rc.d/rc.6.orig
  17. 0
      root/etc/rc.d/rc.M
  18. 0
      root/etc/rc.d/rc.M.orig
  19. 0
      root/etc/rc.d/rc.S
  20. 0
      root/etc/rc.d/rc.S.orig
  21. 0
      root/etc/rc.d/rc.alsa
  22. 0
      root/etc/rc.d/rc.alsa.orig
  23. 2
      root/etc/rc.d/rc.dhcpcd
  24. 0
      root/etc/rc.d/rc.psd
  25. 1
      root/etc/slackpkg/blacklist
  26. 0
      root/etc/sudoers.d/wheel
  27. 0
      root/etc/sysctl.d/swappiness.conf
  28. 3
      root/etc/wpa_supplicant.conf
  29. 2
      root/etc/wpa_supplicant.conf.orig
  30. 230
      root/usr/libexec/slackpkg/functions.d/post-functions.sh
  31. 221
      root/usr/libexec/slackpkg/functions.d/post-functions.sh.orig
  32. 114
      root/usr/share/vim/vimrc
  33. 117
      root/usr/share/vim/vimrc.orig

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

20
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

0
etc/X11/xinit/xinitrc.i3 → root/etc/X11/xinit/xinitrc.i3

0
etc/astronaut.conf → root/etc/astronaut.conf

0
etc/cron.hourly/psd → root/etc/cron.hourly/psd

0
etc/default/dhcpcd → root/etc/default/dhcpcd

0
etc/default/psd → root/etc/default/psd

0
etc/dhcpcd.conf → root/etc/dhcpcd.conf

0
etc/dhcpcd.conf.orig → root/etc/dhcpcd.conf.orig

0
etc/ntp.conf → root/etc/ntp.conf

0
etc/ntp.conf.orig → root/etc/ntp.conf.orig

0
etc/profile.d/unset-less.sh → root/etc/profile.d/unset-less.sh

0
etc/profile.d/wheel-path.sh → root/etc/profile.d/wheel-path.sh

0
etc/profile.d/xdg-runtime-dir.sh → root/etc/profile.d/xdg-runtime-dir.sh

0
etc/rc.d/rc.6 → root/etc/rc.d/rc.6

0
etc/rc.d/rc.6.orig → root/etc/rc.d/rc.6.orig

0
etc/rc.d/rc.M → root/etc/rc.d/rc.M

0
etc/rc.d/rc.M.orig → root/etc/rc.d/rc.M.orig

0
etc/rc.d/rc.S → root/etc/rc.d/rc.S

0
etc/rc.d/rc.S.orig → root/etc/rc.d/rc.S.orig

0
etc/rc.d/rc.alsa → root/etc/rc.d/rc.alsa

0
etc/rc.d/rc.alsa.orig → root/etc/rc.d/rc.alsa.orig

2
etc/rc.d/rc.dhcpcd → 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

0
etc/rc.d/rc.psd → root/etc/rc.d/rc.psd

1
blacklist → root/etc/slackpkg/blacklist

@ -9,6 +9,7 @@ f
kde
kdei
t
#tcl
xfce
y

0
etc/sudoers.d/wheel → root/etc/sudoers.d/wheel

0
etc/sysctl.d/swappiness.conf → root/etc/sysctl.d/swappiness.conf

3
root/etc/wpa_supplicant.conf

@ -0,0 +1,3 @@
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=netdev
update_config=1

2
root/etc/wpa_supplicant.conf.orig

@ -0,0 +1,2 @@
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root

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

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

114
root/usr/share/vim/vimrc

@ -0,0 +1,114 @@
" An example for a vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" 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 <C-U> <C-G>u<C-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

117
root/usr/share/vim/vimrc.orig

@ -0,0 +1,117 @@
" An example for a vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" 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 <C-U> <C-G>u<C-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
Loading…
Cancel
Save