mid-kid
7 years ago
33 changed files with 714 additions and 17 deletions
@ -0,0 +1,3 @@ |
|||||
|
ctrl_interface=/var/run/wpa_supplicant |
||||
|
ctrl_interface_group=netdev |
||||
|
update_config=1 |
@ -0,0 +1,2 @@ |
|||||
|
ctrl_interface=/var/run/wpa_supplicant |
||||
|
ctrl_interface_group=root |
@ -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 |
||||
|
} |
@ -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 |
||||
|
} |
@ -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 |
@ -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…
Reference in new issue