Sync from SUSE:SLFO:Main vim revision 68dd4be74f07dce8b65942311916b4c9

This commit is contained in:
Adrian Schröter 2024-05-04 01:45:07 +02:00
commit ef00154fea
43 changed files with 19957 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

24
README.Japanese-XIM Normal file
View File

@ -0,0 +1,24 @@
To select the style of XIM Input the following command line arguments,
which are handled by GTK internally, are available:
--xim-preedit [none|nothing|area|position|callbacks]
--xim-status [none|nothing|area|callbacks]
To use OnTheSpot input style, start gvim like
~$ gvim [--xim-preedit callbacks] [--xim-status callbacks]
This is also the default, which you will get without any command line arguments.
To use OverTheSpot input style, start gvim like
~$ gvim --xim-preedit position [--xim-status callbacks]
OnTheSpot input is still buggy and does not yet work right for Japanese,
therefore it is recommended to use OverTheSpot input style for Japanese.
(For Korean, OnTheSpot input style works well).
Fri Jan 26 17:57:39 2001 Mike Fabian <mfabian@suse.de>

287
apparmor.vim Normal file
View File

@ -0,0 +1,287 @@
" generated from apparmor.vim.in by create-apparmor.vim.py
" do not edit this file - edit apparmor.vim.in or create-apparmor.vim.py instead
" ----------------------------------------------------------------------
" Copyright (c) 2005 Novell, Inc. All Rights Reserved.
" Copyright (c) 2006-2012 Christian Boltz. All Rights Reserved.
"
" This program is free software; you can redistribute it and/or
" modify it under the terms of version 2 of the GNU General Public
" License as published by the Free Software Foundation.
"
" This program is distributed in the hope that it will be useful,
" but WITHOUT ANY WARRANTY; without even the implied warranty of
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
" GNU General Public License for more details.
"
" You should have received a copy of the GNU General Public License
" along with this program; if not, contact Novell, Inc.
"
" To contact Novell about this file by physical or electronic mail,
" you may find current contact information at www.novell.com.
"
" To contact Christian Boltz about this file by physical or electronic
" mail, you may find current contact information at www.cboltz.de/en/kontakt.
"
" If you want to report a bug via bugzilla.novell.com, please assign it
" to suse-beta[AT]cboltz.de (replace [AT] with @).
" ----------------------------------------------------------------------
"
" stick this file into ~/.vim/syntax/ and add these commands into your .vimrc
" to have vim automagically use this syntax file for these directories:
"
" autocmd BufNewFile,BufRead /etc/apparmor.d/* set syntax=apparmor
" autocmd BufNewFile,BufRead /usr/share/apparmor/extra-profiles/* set syntax=apparmor
" profiles are case sensitive
syntax case match
" color setup...
" adjust colors according to the background
" switching colors depending on the background color doesn't work
" unfortunately, so we use colors that work with light and dark background.
" Patches welcome ;-)
"if &background == "light"
" light background
hi sdProfileName ctermfg=lightblue
hi sdHatName ctermfg=darkblue
hi sdExtHat ctermfg=darkblue
" hi sdComment2 ctermfg=darkblue
hi sdGlob ctermfg=darkmagenta
hi sdAlias ctermfg=darkmagenta
hi sdEntryWriteExec ctermfg=black ctermbg=yellow
hi sdEntryUX ctermfg=darkred cterm=underline
hi sdEntryUXe ctermfg=darkred
hi sdEntryIX ctermfg=darkcyan
hi sdEntryM ctermfg=darkcyan
hi sdEntryPX ctermfg=darkgreen cterm=underline
hi sdEntryPXe ctermfg=darkgreen
hi sdEntryW ctermfg=darkyellow
hi sdCap ctermfg=lightblue
hi sdSetCap ctermfg=black ctermbg=yellow
hi sdNetwork ctermfg=lightblue
hi sdNetworkDanger ctermfg=darkred
hi sdCapKey cterm=underline ctermfg=lightblue
hi sdCapDanger ctermfg=darkred
hi sdRLimit ctermfg=lightblue
hi def link sdEntryR Normal
hi def link sdEntryK Normal
hi def link sdFlags Normal
hi sdEntryChangeProfile ctermfg=darkgreen cterm=underline
"else
" dark background
" hi sdProfileName ctermfg=white
" hi sdHatName ctermfg=white
" hi sdGlob ctermfg=magenta
" hi sdEntryWriteExec ctermfg=black ctermbg=yellow
" hi sdEntryUX ctermfg=red cterm=underline
" hi sdEntryUXe ctermfg=red
" hi sdEntryIX ctermfg=cyan
" hi sdEntryM ctermfg=cyan
" hi sdEntryPX ctermfg=green cterm=underline
" hi sdEntryPXe ctermfg=green
" hi sdEntryW ctermfg=yellow
" hi sdCap ctermfg=lightblue
" hi sdCapKey cterm=underline ctermfg=lightblue
" hi def link sdEntryR Normal
" hi def link sdFlags Normal
" hi sdCapDanger ctermfg=red
"endif
hi def link sdInclude Include
high def link sdComment Comment
"high def link sdComment2 Comment
high def link sdFlagKey TODO
high def link sdError ErrorMsg
" always sync from the start. should be relatively quick since we don't have
" that many rules and profiles shouldn't be _extremely_ large...
syn sync fromstart
syn keyword sdFlagKey complain debug
" highlight invalid syntax
syn match sdError /{/ contained
syn match sdError /}/
syn match sdError /^.*$/ contains=sdComment "highlight all non-valid lines as error
" TODO: do not mark lines containing only whitespace as error
" TODO: the sdGlob pattern is not anchored with ^ and $, so it matches all lines matching ^@{...}.*
" This allows incorrect lines also and should be checked better.
" This also (accidently ;-) includes variable definitions (@{FOO}=/bar)
" TODO: make a separate pattern for variable definitions, then mark sdGlob as contained
syn match sdGlob /\v\?|\*|\{.*,.*\}|[[^\]]\+\]|\@\{[a-zA-Z][a-zA-Z0-9_]*\}/
syn match sdAlias /\v^\s*alias\s+(\/|\@\{\S*\})\S*\s+-\>\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment
" syn match sdComment /#.*/
syn cluster sdEntry contains=sdEntryWriteExec,sdEntryR,sdEntryW,sdEntryIX,sdEntryPX,sdEntryPXe,sdEntryUX,sdEntryUXe,sdEntryM,sdCap,sdSetCap,sdExtHat,sdRLimit,sdNetwork,sdNetworkDanger,sdEntryChangeProfile
" TODO: support audit and deny keywords for all rules (not only for files)
" TODO: higlight audit and deny keywords everywhere
" Capability line
" normal capabilities - really keep this list? syn match sdCap should be enough... (difference: sdCapKey words would loose underlining)
syn keyword sdCapKey audit_read block_suspend bpf checkpoint_restore chown dac_override dac_read_search fowner fsetid ipc_lock ipc_owner kill lease linux_immutable mknod net_admin net_bind_service net_broadcast net_raw perfmon setgid setpcap setuid syslog sys_boot sys_chroot sys_nice sys_pacct sys_ptrace sys_resource sys_time sys_tty_config wake_alarm
" dangerous capabilities - highlighted separately
syn keyword sdCapDanger audit_control audit_write mac_override mac_admin setfcap sys_admin sys_module sys_rawio
" full line. Keywords are from sdCapKey + sdCapDanger
syn match sdCap /\v^\s*(audit\s+)?(deny\s+|allow\s+)?capability\s+((audit_control|audit_read|audit_write|block_suspend|bpf|checkpoint_restore|chown|dac_override|dac_read_search|fowner|fsetid|ipc_lock|ipc_owner|kill|lease|linux_immutable|mac_admin|mac_override|mknod|net_admin|net_bind_service|net_broadcast|net_raw|perfmon|setfcap|setgid|setpcap|setuid|syslog|sys_admin|sys_boot|sys_chroot|sys_module|sys_nice|sys_pacct|sys_ptrace|sys_rawio|sys_resource|sys_time|sys_tty_config|wake_alarm)\s+)*(audit_control|audit_read|audit_write|block_suspend|bpf|checkpoint_restore|chown|dac_override|dac_read_search|fowner|fsetid|ipc_lock|ipc_owner|kill|lease|linux_immutable|mac_admin|mac_override|mknod|net_admin|net_bind_service|net_broadcast|net_raw|perfmon|setfcap|setgid|setpcap|setuid|syslog|sys_admin|sys_boot|sys_chroot|sys_module|sys_nice|sys_pacct|sys_ptrace|sys_rawio|sys_resource|sys_time|sys_tty_config|wake_alarm)\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdCapKey,sdCapDanger,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" all capabilities ('capability' without any keyword)
syn match sdCapDanger /\v^\s*(audit\s+)?(deny\s+|allow\s+)?capability\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" Network line
" Syntax: network domain (inet, ...) type (stream, ...) protocol (tcp, ...)
" TODO: 'owner' isn't supported, but will be (JJ, 2011-01-11)
syn match sdNetwork /\v^\s*(audit\s+)?(deny\s+|allow\s+)?network(\s+(unspec|unix|inet|ax25|ipx|appletalk|netrom|bridge|atmpvc|x25|inet6|rose|netbeui|security|key|netlink|packet|ash|econet|atmsvc|rds|sna|irda|pppox|wanpipe|llc|ib|mpls|can|tipc|bluetooth|iucv|rxrpc|isdn|phonet|ieee802154|caif|alg|nfc|vsock|kcm|qipcrtr|smc|xdp|mctp))?(\s+(stream|dgram|seqpacket|rdm|packet))?(\s+tcp|\s+udp|\s+icmp)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" network rules containing 'raw'
syn match sdNetworkDanger /\v^\s*(audit\s+)?(deny\s+|allow\s+)?network(\s+(unspec|unix|inet|ax25|ipx|appletalk|netrom|bridge|atmpvc|x25|inet6|rose|netbeui|security|key|netlink|packet|ash|econet|atmsvc|rds|sna|irda|pppox|wanpipe|llc|ib|mpls|can|tipc|bluetooth|iucv|rxrpc|isdn|phonet|ieee802154|caif|alg|nfc|vsock|kcm|qipcrtr|smc|xdp|mctp))?(\s+(raw))(\s+tcp|\s+udp|\s+icmp)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" 'all networking' includes raw -> mark as dangerous
syn match sdNetworkDanger /\v^\s*(audit\s+)?(deny\s+|allow\s+)?network\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" Change Profile
syn match sdEntryChangeProfile /\v^\s*(audit\s+)?(deny\s+|allow\s+)?change_profile\s+(safe\s+[/@]\S+|unsafe\s+[/@]\S+|[/@]\S+)?\s*(-\>\s*\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" bare change_profile rule
syn match sdEntryChangeProfile /\v^\s*(audit\s+)?(deny\s+|allow\s+)?change_profile\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" rlimit
" TODO: audit and deny support will be added (JJ, 2011-01-11)
"
"syn match sdRLimit /\v^\s*rlimit\s+()\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
syn match sdRLimit /\v^\s*set\s+rlimit\s+(nofile|ofile|nproc|rtprio)\s+\<\=\s+[0-9]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
syn match sdRLimit /\v^\s*set\s+rlimit\s+(locks|sigpending)\s+\<\=\s+[0-9]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
syn match sdRLimit /\v^\s*set\s+rlimit\s+(fsize|data|stack|core|rss|as|memlock|msgqueue)\s+\<\=\s+[0-9]+([KMG]B)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
syn match sdRLimit /\v^\s*set\s+rlimit\s+nice\s+\<\=\s+(-1?[0-9]|-20|1?[0-9])\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
syn match sdRLimit /\v^\s*set\s+rlimit\s+cpu\s+\<\=\s+[0-9]+(seconds|minutes|hours|days)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
syn match sdRLimit /\v^\s*set\s+rlimit\s+rttime\s+\<\=\s+[0-9]+(ms|seconds|minutes)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
syn match sdRLimit /\v^\s*set\s+rlimit\s+(cpu|rttime|nofile|nproc|rtprio|locks|sigpending|fsize|data|stack|core|rss|as|memlock|msgqueue|nice)\s+\<\=\s+infinity\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment
" link rules
syn match sdEntryW /\v^\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?link\s+(subset\s+)?(\/|\@\{\S*\})\S*\s+-\>\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment
syn match sdExtHat /\v^\s+(\^|hat\s+|profile\s+)\S+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment " hat without {...}
syn match sdProfileName /\v^((profile\s+)?\/\S+|profile\s+([a-zA-Z0-9]\S*\s)?\S+)\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ contains=sdProfileStart,sdHatName,sdFlags,sdComment,sdGlob
syn match sdProfileStart /{/ contained
syn match sdProfileEnd /^}\s*(#.*)?$/ contained " TODO: syn region does not (yet?) allow usage of comment in end=
" TODO: Removing the $ mark from end= will allow non-comments also :-(
syn match sdHatName /\v^\s+(\^|hat\s+|profile\s+)\S+\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ contains=sdProfileStart,sdFlags,sdComment
syn match sdHatStart /{/ contained
syn match sdHatEnd /}/ contained " TODO: allow comments + [same as for syn match sdProfileEnd]
syn match sdFlags /\v((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)/ contained contains=sdFlagKey
syn match sdComment /\s*#.*$/
" NOTE: contains=sdComment changes #include highlighting to comment color.
" NOTE: Comment highlighting still works without contains=sdComment.
syn match sdInclude /\s*#include\s<\S*>/ " TODO: doesn't check until $
syn match sdInclude /\s*include\s<\S*>/ " TODO: doesn't check until $
syn match sdInclude /\s*#include\sif\sexists\s<\S*>/ " TODO: doesn't check until $
syn match sdInclude /\s*include\sif\sexists\s<\S*>/ " TODO: doesn't check until $
syn match sdInclude /\s*abi\s<\S*>\s*,/ contains=sdComment " TODO: doesn't check until $
" basic profile block...
" \s+ does not work in end=, therefore using \s\s*
syn region Normal start=/\v^(profile\s+)?\S+\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ matchgroup=sdProfileEnd end=/^}\s*$/ contains=sdProfileName,Hat,@sdEntry,sdComment,sdError,sdInclude
syn region Hat start=/\v^\s+(\^|hat\s+|profile\s+)\S+\s+((flags\s*\=\s*)?\(\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted))*\s*\)\s+)=\{/ matchgroup=sdHatEnd end=/^\s\s*}\s*$/ contains=sdHatName,@sdEntry,sdComment,sdError,sdInclude
" file permissions
" file rules added with create_file_rule()
" write + exec/mmap - danger! (known bug: accepts aw to keep things simple)
syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryWriteExec /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" ux(mr) - unconstrained entry, flag the line red. also includes pux which is unconstrained if no profile exists
syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryUX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" Ux(mr) and PUx(mr) - like ux + clean environment
syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryUXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" px/cx/pix/cix(mrk) - standard exec entry, flag the line blue
syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryPX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" Px/Cx/Pix/Cix(mrk) - like px/cx + clean environment
syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryPXe /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" ix(mr) - standard exec entry, flag the line green
syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryIX /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" mr - mmap with PROT_EXEC
syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryM /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" special case: deny x is allowed (does not need to be ix, px, ux or cx)
syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryM /\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" write + append is an error
syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdError /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" write entry, flag the line yellow
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|w|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|w|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" append entry, flag the line yellow
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|a|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|a|k)+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|a|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryW /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|a|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" read entry + locking, currently no highlighting
syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rlk]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rlk]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rlk]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryK /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rlk]+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" read entry, no highlighting
syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rl]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rl]+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rl]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
syn match sdEntryR /\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rl]+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude

12
gvim.desktop Normal file
View File

@ -0,0 +1,12 @@
[Desktop Entry]
Encoding=UTF-8
Name=Vi IMproved
Categories=GTK;Application;Utility;TextEditor;
GenericName=Text Editor
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=gvim -f %f
Icon=gvim
Type=Application
Terminal=false
X-KDE-StartupNotify=true
X-KDE-AuthorizeAction=shell_access

53
gvim.svg Normal file
View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="282" height="282" viewBox="0 0 282 282">
<defs>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 0.707031 0.570312 L 281.578125 0.570312 L 281.578125 281.445312 L 0.707031 281.445312 Z M 0.707031 0.570312 "/>
</clipPath>
</defs>
<g clip-path="url(#clip-0)">
<path fill-rule="evenodd" fill="rgb(13.729858%, 12.159729%, 12.548828%)" fill-opacity="1" d="M 281.472656 139.566406 L 139.703125 0.679688 L 0.816406 142.375 L 139.703125 281.335938 L 281.472656 139.566406 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 2814.726562 1424.335938 L 1397.03125 2813.203125 L 8.164062 1396.25 L 1397.03125 6.640625 Z M 2814.726562 1424.335938 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
</g>
<path fill-rule="evenodd" fill="rgb(19.747925%, 38.182068%, 32.107544%)" fill-opacity="1" d="M 267.289062 139.566406 L 275.785156 139.566406 L 139.703125 275.648438 L 139.703125 267.152344 L 267.289062 139.566406 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 2672.890625 1424.335938 L 2757.851562 1424.335938 L 1397.03125 63.515625 L 1397.03125 148.476562 Z M 2672.890625 1424.335938 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(22.206116%, 43.157959%, 36.126709%)" fill-opacity="1" d="M 6.503906 142.375 L 15 142.375 L 139.703125 267.152344 L 139.703125 275.648438 L 6.503906 142.375 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 65.039062 1396.25 L 150 1396.25 L 1397.03125 148.476562 L 1397.03125 63.515625 Z M 65.039062 1396.25 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(40.040588%, 79.243469%, 65.275574%)" fill-opacity="1" d="M 139.703125 14.792969 L 139.703125 6.367188 L 6.503906 142.375 L 15 142.375 L 139.703125 14.792969 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1397.03125 2672.070312 L 1397.03125 2756.328125 L 65.039062 1396.25 L 150 1396.25 Z M 1397.03125 2672.070312 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(27.148438%, 73.228455%, 23.704529%)" fill-opacity="1" d="M 139.703125 6.367188 L 139.703125 14.792969 L 267.289062 139.566406 L 275.785156 139.566406 L 139.703125 6.367188 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1397.03125 2756.328125 L 1397.03125 2672.070312 L 2672.890625 1424.335938 L 2757.851562 1424.335938 Z M 1397.03125 2756.328125 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(26.049805%, 50.93689%, 42.410278%)" fill-opacity="1" d="M 139.703125 267.152344 L 267.289062 139.566406 L 139.703125 14.792969 L 15 142.375 L 139.703125 267.152344 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1397.03125 148.476562 L 2672.890625 1424.335938 L 1397.03125 2672.070312 L 150 1396.25 Z M 1397.03125 148.476562 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(13.729858%, 12.159729%, 12.548828%)" fill-opacity="1" d="M 166.199219 43.160156 L 174.695312 51.726562 L 116.089844 111.199219 L 116.089844 51.726562 L 121.777344 51.726562 L 130.273438 43.160156 L 130.273438 20.550781 L 121.777344 11.984375 L 27.3125 11.984375 L 18.816406 20.550781 L 18.816406 43.160156 L 27.3125 51.726562 L 33.933594 51.726562 L 33.933594 244.472656 L 44.304688 252.96875 L 73.609375 252.96875 L 276.71875 43.160156 L 276.71875 20.550781 L 268.226562 11.984375 L 175.632812 11.984375 L 166.199219 20.550781 L 166.199219 43.160156 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1661.992188 2388.398438 L 1746.953125 2302.734375 L 1160.898438 1708.007812 L 1160.898438 2302.734375 L 1217.773438 2302.734375 L 1302.734375 2388.398438 L 1302.734375 2614.492188 L 1217.773438 2700.15625 L 273.125 2700.15625 L 188.164062 2614.492188 L 188.164062 2388.398438 L 273.125 2302.734375 L 339.335938 2302.734375 L 339.335938 375.273438 L 443.046875 290.3125 L 736.09375 290.3125 L 2767.1875 2388.398438 L 2767.1875 2614.492188 L 2682.265625 2700.15625 L 1756.328125 2700.15625 L 1661.992188 2614.492188 Z M 1661.992188 2388.398438 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 30.121094 46.039062 L 24.429688 40.351562 L 24.429688 23.359375 L 30.121094 17.671875 L 118.96875 17.601562 L 124.585938 23.359375 L 118.96875 26.097656 L 116.089844 23.359375 L 30.121094 37.472656 L 30.121094 46.039062 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 301.210938 2359.609375 L 244.296875 2416.484375 L 244.296875 2586.40625 L 301.210938 2643.28125 L 1189.6875 2643.984375 L 1245.859375 2586.40625 L 1189.6875 2559.023438 L 1160.898438 2586.40625 L 301.210938 2445.273438 Z M 301.210938 2359.609375 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 47.113281 247.28125 L 40.488281 241.59375 L 40.488281 45.96875 L 47.113281 40.351562 L 47.113281 247.28125 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 471.132812 347.1875 L 404.882812 404.0625 L 404.882812 2360.3125 L 471.132812 2416.484375 Z M 471.132812 347.1875 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 188.878906 46.039062 L 194.566406 40.351562 L 194.566406 51.726562 L 100.03125 148.0625 L 110.472656 125.382812 L 188.878906 46.039062 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1888.789062 2359.609375 L 1945.664062 2416.484375 L 1945.664062 2302.734375 L 1000.3125 1339.375 L 1104.726562 1566.171875 Z M 1888.789062 2359.609375 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(56.697083%, 55.909729%, 56.105042%)" fill-opacity="1" d="M 49.054688 37.542969 L 47.113281 40.351562 L 40.488281 46.039062 L 30.121094 46.039062 L 30.121094 34.664062 L 49.054688 37.542969 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 490.546875 2444.570312 L 471.132812 2416.484375 L 404.882812 2359.609375 L 301.210938 2359.609375 L 301.210938 2473.359375 Z M 490.546875 2444.570312 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(56.697083%, 55.909729%, 56.105042%)" fill-opacity="1" d="M 110.472656 46.039062 L 110.472656 125.382812 L 100.03125 147.992188 L 100.03125 40.28125 L 116.089844 40.28125 L 118.96875 37.472656 L 116.089844 23.359375 L 124.585938 23.359375 L 124.585938 40.351562 L 118.96875 46.039062 L 110.472656 46.039062 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1104.726562 2359.609375 L 1104.726562 1566.171875 L 1000.3125 1340.078125 L 1000.3125 2417.1875 L 1160.898438 2417.1875 L 1189.6875 2445.273438 L 1160.898438 2586.40625 L 1245.859375 2586.40625 L 1245.859375 2416.484375 L 1189.6875 2359.609375 Z M 1104.726562 2359.609375 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 177.503906 46.039062 L 171.886719 40.351562 L 171.886719 23.359375 L 178.441406 17.671875 L 264.480469 17.671875 L 271.105469 23.359375 L 261.601562 31.855469 L 177.503906 37.472656 L 177.503906 46.039062 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1775.039062 2359.609375 L 1718.867188 2416.484375 L 1718.867188 2586.40625 L 1784.414062 2643.28125 L 2644.804688 2643.28125 L 2711.054688 2586.40625 L 2616.015625 2501.445312 L 1775.039062 2445.273438 Z M 1775.039062 2359.609375 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(56.697083%, 55.909729%, 56.105042%)" fill-opacity="1" d="M 271.105469 40.351562 L 71.664062 247.28125 L 47.113281 247.28125 L 47.113281 238.785156 L 65.113281 238.785156 L 264.480469 34.664062 L 261.601562 23.359375 L 271.105469 23.359375 L 271.105469 40.351562 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 2711.054688 2416.484375 L 716.640625 347.1875 L 471.132812 347.1875 L 471.132812 432.148438 L 651.132812 432.148438 L 2644.804688 2473.359375 L 2616.015625 2586.40625 L 2711.054688 2586.40625 Z M 2711.054688 2416.484375 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(56.697083%, 55.909729%, 56.105042%)" fill-opacity="1" d="M 196.441406 37.542969 L 194.496094 40.351562 L 188.878906 46.039062 L 177.503906 46.039062 L 177.503906 34.664062 L 196.441406 37.542969 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1964.414062 2444.570312 L 1944.960938 2416.484375 L 1888.789062 2359.609375 L 1775.039062 2359.609375 L 1775.039062 2473.359375 Z M 1964.414062 2444.570312 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(82.751465%, 82.437134%, 82.514954%)" fill-opacity="1" d="M 100.03125 147.992188 L 100.03125 40.28125 L 116.089844 40.28125 L 118.96875 37.472656 L 118.96875 26.097656 L 116.089844 23.289062 L 32.925781 23.289062 L 30.121094 26.097656 L 30.121094 37.472656 L 32.925781 40.28125 L 47.113281 40.28125 L 47.113281 238.785156 L 50.785156 241.59375 L 66.984375 241.59375 L 265.414062 34.664062 L 265.414062 26.527344 L 262.535156 23.289062 L 180.382812 23.289062 L 177.503906 26.097656 L 177.503906 37.542969 L 180.382812 40.351562 L 194.566406 40.351562 L 194.566406 51.726562 L 100.03125 147.992188 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1000.3125 1340.078125 L 1000.3125 2417.1875 L 1160.898438 2417.1875 L 1189.6875 2445.273438 L 1189.6875 2559.023438 L 1160.898438 2587.109375 L 329.257812 2587.109375 L 301.210938 2559.023438 L 301.210938 2445.273438 L 329.257812 2417.1875 L 471.132812 2417.1875 L 471.132812 432.148438 L 507.851562 404.0625 L 669.84375 404.0625 L 2654.140625 2473.359375 L 2654.140625 2554.726562 L 2625.351562 2587.109375 L 1803.828125 2587.109375 L 1775.039062 2559.023438 L 1775.039062 2444.570312 L 1803.828125 2416.484375 L 1945.664062 2416.484375 L 1945.664062 2302.734375 Z M 1000.3125 1340.078125 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(13.729858%, 12.159729%, 12.548828%)" fill-opacity="1" d="M 151.585938 148.136719 L 158.207031 142.449219 L 175.199219 142.449219 L 179.953125 148.136719 L 174.265625 165.128906 L 167.710938 170.816406 L 150.71875 170.816406 L 145.894531 165.128906 L 151.585938 148.136719 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1515.859375 1338.632812 L 1582.070312 1395.507812 L 1751.992188 1395.507812 L 1799.53125 1338.632812 L 1742.65625 1168.710938 L 1677.109375 1111.835938 L 1507.1875 1111.835938 L 1458.945312 1168.710938 Z M 1515.859375 1338.632812 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(13.729858%, 12.159729%, 12.548828%)" fill-opacity="1" d="M 157.273438 241.664062 L 174.335938 190.6875 L 168.648438 190.6875 L 174.335938 173.625 L 199.753906 173.625 L 205.441406 179.3125 L 209.257812 179.3125 L 214.871094 173.625 L 233.808594 173.625 L 239.496094 179.3125 L 243.238281 179.3125 L 248.929688 173.625 L 269.664062 173.625 L 277.222656 185 L 264.839844 225.320312 L 270.457031 225.320312 L 264.984375 241.664062 L 230.929688 241.664062 L 244.246094 201.992188 L 235.753906 201.992188 L 227.902344 225.175781 L 233.519531 225.175781 L 228.191406 241.664062 L 194.136719 241.664062 L 207.382812 201.992188 L 198.886719 201.992188 L 190.96875 225.320312 L 196.65625 225.320312 L 191.328125 241.664062 L 157.273438 241.664062 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1572.734375 403.359375 L 1743.359375 913.125 L 1686.484375 913.125 L 1743.359375 1083.75 L 1997.539062 1083.75 L 2054.414062 1026.875 L 2092.578125 1026.875 L 2148.710938 1083.75 L 2338.085938 1083.75 L 2394.960938 1026.875 L 2432.382812 1026.875 L 2489.296875 1083.75 L 2696.640625 1083.75 L 2772.226562 970 L 2648.398438 566.796875 L 2704.570312 566.796875 L 2649.84375 403.359375 L 2309.296875 403.359375 L 2442.460938 800.078125 L 2357.539062 800.078125 L 2279.023438 568.242188 L 2335.195312 568.242188 L 2281.914062 403.359375 L 1941.367188 403.359375 L 2073.828125 800.078125 L 1988.867188 800.078125 L 1909.6875 566.796875 L 1966.5625 566.796875 L 1913.28125 403.359375 Z M 1572.734375 403.359375 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(82.751465%, 82.437134%, 82.514954%)" fill-opacity="1" d="M 267.070312 179.3125 L 271.464844 185.578125 L 257.496094 230.359375 L 263.113281 230.359375 L 261.238281 235.976562 L 238.558594 235.976562 L 251.808594 196.304688 L 231.9375 196.304688 L 220.632812 230.359375 L 226.246094 230.359375 L 224.375 235.976562 L 201.695312 235.976562 L 214.945312 196.304688 L 195.070312 196.304688 L 183.769531 230.359375 L 189.457031 230.359375 L 187.511719 235.976562 L 164.832031 235.976562 L 181.894531 185 L 176.207031 185 L 178.078125 179.3125 L 198.886719 179.3125 L 204.574219 185 L 210.191406 185 L 215.878906 179.3125 L 232.871094 179.3125 L 238.558594 185 L 244.246094 185 L 249.9375 179.3125 L 267.070312 179.3125 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 2670.703125 1026.875 L 2714.648438 964.21875 L 2574.960938 516.40625 L 2631.132812 516.40625 L 2612.382812 460.234375 L 2385.585938 460.234375 L 2518.085938 856.953125 L 2319.375 856.953125 L 2206.328125 516.40625 L 2262.460938 516.40625 L 2243.75 460.234375 L 2016.953125 460.234375 L 2149.453125 856.953125 L 1950.703125 856.953125 L 1837.695312 516.40625 L 1894.570312 516.40625 L 1875.117188 460.234375 L 1648.320312 460.234375 L 1818.945312 970 L 1762.070312 970 L 1780.78125 1026.875 L 1988.867188 1026.875 L 2045.742188 970 L 2101.914062 970 L 2158.789062 1026.875 L 2328.710938 1026.875 L 2385.585938 970 L 2442.460938 970 L 2499.375 1026.875 Z M 2670.703125 1026.875 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(13.729858%, 12.159729%, 12.548828%)" fill-opacity="1" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1714.570312 1083.75 L 1541.054688 567.539062 L 1600.078125 567.539062 L 1543.90625 403.359375 L 1204.0625 403.359375 L 1373.984375 913.125 L 1317.109375 913.125 Z M 1317.109375 913.125 L 1373.984375 1083.75 L 1714.570312 1083.75 Z M 1317.109375 913.125 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(82.751465%, 82.437134%, 82.514954%)" fill-opacity="1" d="M 150.648438 235.976562 L 152.519531 230.359375 L 146.832031 230.359375 L 163.894531 179.3125 L 140.28125 179.3125 L 138.335938 185 L 144.960938 185 L 127.96875 235.976562 L 150.648438 235.976562 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1506.484375 460.234375 L 1525.195312 516.40625 L 1468.320312 516.40625 L 1638.945312 1026.875 L 1402.8125 1026.875 L 1383.359375 970 L 1449.609375 970 L 1279.6875 460.234375 Z M 1506.484375 460.234375 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
<path fill-rule="evenodd" fill="rgb(82.751465%, 82.437134%, 82.514954%)" fill-opacity="1" d="M 169.511719 162.320312 L 173.328125 150.945312 L 171.457031 148.136719 L 160.078125 148.136719 L 156.335938 150.945312 L 152.519531 162.320312 L 154.464844 165.128906 L 165.839844 165.128906 L 169.511719 162.320312 "/>
<path fill="none" stroke-width="2.16" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(13.729858%, 12.159729%, 12.548828%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1695.117188 1196.796875 L 1733.28125 1310.546875 L 1714.570312 1338.632812 L 1600.78125 1338.632812 L 1563.359375 1310.546875 L 1525.195312 1196.796875 L 1544.648438 1168.710938 L 1658.398438 1168.710938 Z M 1695.117188 1196.796875 " transform="matrix(0.1, 0, 0, -0.1, 0, 282)"/>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

BIN
gvim_128.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gvim_24.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gvim_256.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gvim_32.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gvim_48.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gvim_512.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gvim_64.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
gvim_96.png (Stored with Git LFS) Normal file

Binary file not shown.

48
spec.skeleton Normal file
View File

@ -0,0 +1,48 @@
#
# spec file for package specRPM_CREATION_NAME
#
# Copyright (c) specCURRENT_YEAR SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: specRPM_CREATION_NAME
Version:
Release: 0
Summary:
# FIXME: Select a correct license from https://github.com/openSUSE/spec-cleaner#spdx-licenses
License:
URL:
Source:
BuildRequires:
%description
%prep
%autosetup
%build
%configure
%make_build
%install
%make_install
%post
%postun
%files
%license COPYING
%doc ChangeLog README
%changelog

40
spec.vim Normal file
View File

@ -0,0 +1,40 @@
if exists("loaded_spec") || &cp
finish
endif
let loaded_spec = 1
function! SKEL_spec()
0r /usr/share/vim/current/skeletons/skeleton.spec
language time en_US
if $USER != ''
let login = $USER
elseif $LOGNAME != ''
let login = $LOGNAME
else
let login = 'unknown'
endif
let newline = stridx(login, "\n")
if newline != -1
let login = strpart(login, 0, newline)
endif
if $HOSTNAME != ''
let hostname = $HOSTNAME
else
let hostname = system('hostname -f')
if v:shell_error
let hostname = 'localhost'
endif
endif
let newline = stridx(hostname, "\n")
if newline != -1
let hostname = strpart(hostname, 0, newline)
endif
exe "%s/specCURRENT_YEAR/" . strftime("%Y") . "/ge"
exe "%s/specRPM_CREATION_DATE/" . strftime("%a\ %b\ %d\ %Y") . "/ge"
exe "%s/specRPM_CREATION_AUTHOR_MAIL/" . login . "@" . hostname . "/ge"
exe "%s/specRPM_CREATION_NAME/" . expand("%:t:r") . "/ge"
setf spec
endfunction
" Skeleton for spec files
autocmd BufNewFile *.spec call SKEL_spec()

168
suse.gvimrc Normal file
View File

@ -0,0 +1,168 @@
"
" /etc/gvimrc
"
" from original source copied and modified by Klaus Franken
" Version: 21.1.97
" other settings:
:se guipty
:se guioptions=amr
" Menues:
" copied and modified from:
" *vim_menu.txt* For Vim version 4.5. Last modification: 1996 Oct 12
"
" These menu commands should recreate the default Vim menus.
" You can use this as a start for your own set of menus.
" The colons at the start of each line are just to indicate these are colon
" commands, they could be omitted.
" If the <Esc> and <CR> string appear literally in the output of ":menu", you
" need to remove the '<' flag from 'cpoptions' |'cpoptions'|
" First remove any menus that are currently present
:unmenu *
:unmenu! *
" Help menu
" Note that the help commands use <Esc> to leave Insert/Visual/Command-line
" mode
:nnoremenu Help.Overview\ \ <F1> :help<CR>
:vnoremenu Help.Overview\ \ <F1> <Esc>:help<CR>
:noremenu! Help.Overview\ \ <F1> <Esc>:help<CR>
:nnoremenu Help.How\ to\.\.\. :help how_to<CR>
:vnoremenu Help.How\ to\.\.\. <Esc>:help how_to<CR>
:noremenu! Help.How\ to\.\.\. <Esc>:help how_to<CR>
:nnoremenu Help.GUI :help gui<CR>
:vnoremenu Help.GUI <Esc>:help gui<CR>
:noremenu! Help.GUI <Esc>:help gui<CR>
:nnoremenu Help.Version :version<CR>
:vnoremenu Help.Version <Esc>:version<CR>
:noremenu! Help.Version <Esc>:version<CR>
:nnoremenu Help.Credits :help credits<CR>
:vnoremenu Help.Credits <Esc>:help credits<CR>
:noremenu! Help.Credits <Esc>:help credits<CR>
:nnoremenu Help.Copying :help uganda<CR>
:vnoremenu Help.Copying <Esc>:help uganda<CR>
:noremenu! Help.Copying <Esc>:help uganda<CR>
" File menu
:nnoremenu File.Save\ \ \ \ \ \ \ :w :w<CR>
:inoremenu File.Save\ \ \ \ \ \ \ :w <C-O>:w<CR>
:nnoremenu File.Close\ \ \ \ \ \ :q :q<CR>
:vnoremenu File.Close\ \ \ \ \ \ :q <Esc>:q<CR>
:noremenu! File.Close\ \ \ \ \ \ :q <Esc>:q<CR>
:nnoremenu File.Quit\ \ \ \ \ \ \ :qa :qa<CR>
:vnoremenu File.Quit\ \ \ \ \ \ \ :qa <Esc>:qa<CR>
:noremenu! File.Quit\ \ \ \ \ \ \ :qa <Esc>:qa<CR>
:nnoremenu File.Save-Quit\ \ :wqa :wqa<CR>
:vnoremenu File.Save-Quit\ \ :wqa <Esc>:wqa<CR>
:noremenu! File.Save-Quit\ \ :wqa <Esc>:wqa<CR>
" Edit menu
:nnoremenu Edit.Undo u
:nnoremenu Edit.Redo <C-R>
:vnoremenu Edit.Cut x
:vnoremenu Edit.Copy y
:nnoremenu Edit.Put\ Before [p
:inoremenu Edit.Put\ Before <C-O>[p
:nnoremenu Edit.Put\ After ]p
:inoremenu Edit.Put\ After <C-O>]p
:nnoremenu Edit.Paste i<C-R>*<Esc>
:noremenu! Edit.Paste <C-R>*
" new kfr@suse.de
" MenuNamen:
" :nnoremenu Normal
" :vnoremenu Visual
" :noremenu! Input?
:nnoremenu File.Reload\ \ \ \ \ :e! :e!<CR>
:vnoremenu File.Reload\ \ \ \ \ :e! <Esc>:e!<CR>
:noremenu! File.Reload\ \ \ \ \ :e! <Esc>:e!<CR>
:nnoremenu File.Quit\ All!\ \ :qa! :qa!<CR>
:nnoremenu Settings.Show :se<CR>
:nnoremenu Settings.Autoindent.off\ F7 :se noautoindent<CR>
:nnoremenu Settings.Autoindent.on\ \ F8 :se autoindent<CR>
:nnoremenu Settings.Tabs.Expand\ on :se expandtab<CR>
:nnoremenu Settings.Tabs.Expand\ off :se noexpandtab<CR>
:nnoremenu Settings.Tabs.2 :se tabstop=2<CR>:se shiftwidth=2<CR>
:nnoremenu Settings.Tabs.4 :se tabstop=4<CR>:se shiftwidth=4<CR>
:nnoremenu Settings.Tabs.8 :se tabstop=8<CR>:se shiftwidth=8<CR>
:nnoremenu Settings.Mouse.All :se mouse=a<CR>
:nnoremenu Settings.Mouse.Visual :se mouse=v<CR>
:nnoremenu Settings.Mouse.Insert :se mouse=i<CR>
:nnoremenu Settings.Mouse.Command-line :se mouse=c<CR>
:nnoremenu Settings.Textwidth.off :se textwidth=0<CR>
:nnoremenu Settings.Textwidth.70 :se textwidth=70<CR>
:nnoremenu Settings.Textwidth.75 :se textwidth=75<CR>
:nnoremenu Settings.Textwidth.80 :se textwidth=80<CR>
:nnoremenu Settings.Wrap.on :se wrap<CR>
:nnoremenu Settings.Wrap.off :se nowrap<CR>
:nnoremenu Settings.Numbers.on :se nu<CR>
:nnoremenu Settings.Numbers.off :se nonu<CR>
:nnoremenu Settings.Search\ case-sensitiv.on :se ignorecase<CR>
:nnoremenu Settings.Search\ case-sensitiv.off :se noignorecase<CR>
:nnoremenu Settings.Scrollbar.Right :se guioptions=mr<CR>
:nnoremenu Settings.Scrollbar.Right+Bottom :se guioptions=mrb<CR>
:nnoremenu Settings.Scrollbar.Left :se guioptions=ml<CR>
:nnoremenu Settings.Scrollbar.Left+Bottom :se guioptions=mlb<CR>
:nnoremenu Settings.RightLeft.Show\ -> :se norightleft<CR>
:nnoremenu Settings.RightLeft.Show\ <- :se rightleft<CR>
:nnoremenu Settings.RightLeft.Input\ -> :se norevins<CR>
:nnoremenu Settings.RightLeft.Input\ <- :se revins<CR>
:nnoremenu Settings.RightLeft.Hebrew\ mapping :se hkmap<CR>
:nnoremenu Settings.RightLeft.Normal\ mapping :se nohkmap<CR>
:nnoremenu Window.Buffer\ Next :bnext<CR>
:nnoremenu Window.Buffer\ Prev :bNext<CR>
:nnoremenu Window.Buffer\ All :ball<CR>
:nnoremenu Window.Zoom :only<CR>
:nnoremenu Window.Show\ Buffers :buffers<CR>
:nnoremenu Window.Go\ Buffer.1 :buf1<CR>
:nnoremenu Window.Go\ Buffer.2 :buf2<CR>
:nnoremenu Window.Go\ Buffer.3 :buf3<CR>
:nnoremenu Window.Go\ Buffer.4 :buf4<CR>
:nnoremenu Window.Go\ Buffer.5 :buf5<CR>
:nnoremenu Window.New :new<CR>
:nnoremenu Window.Split :split<CR>
:nnoremenu Window.Close :close<CR>
:nnoremenu Input.Return <CR>
:nnoremenu Help.40 :help vim_40.txt<CR>
:nnoremenu Help.ami :help vim_ami.txt<CR>
:nnoremenu Help.arch :help vim_arch.txt<CR>
:nnoremenu Help.diff :help vim_diff.txt<CR>
:nnoremenu Help.digr :help vim_digr.txt<CR>
:nnoremenu Help.dos :help vim_dos.txt<CR>
:nnoremenu Help.gui :help vim_gui.txt<CR>
:nnoremenu Help.help :help vim_help.txt<CR>
:nnoremenu Help.idx :help vim_idx.txt<CR>
:nnoremenu Help.kcc :help vim_kcc.txt<CR>
:nnoremenu Help.mac :help vim_mac.txt<CR>
:nnoremenu Help.menu :help vim_menu.txt<CR>
:nnoremenu Help.mint :help vim_mint.txt<CR>
:nnoremenu Help.os2 :help vim_os2.txt<CR>
:nnoremenu Help.ref :help vim_ref.txt<CR>
:nnoremenu Help.rlh :help vim_rlh.txt<CR>
:nnoremenu Help.tags :help vim_tags<CR>
:nnoremenu Help.tips :help vim_tips.txt<CR>
:nnoremenu Help.unix :help vim_unix.txt<CR>
:nnoremenu Help.w32 :help vim_w32.txt<CR>
:nnoremenu Help.win :help vim_win.txt<CR>

318
suse.vimrc Normal file
View File

@ -0,0 +1,318 @@
" /usr/etc/vimrc (configuration file for vim only)
" author: Klaus Franken <kfr@suse.de>
" author: Werner Fink <werner@suse.de>
" author: Florian La Roche <florian@suse.de>
" version: 2021/02/22
" commented lines start with `"'
" enable syntax highlighting
if &t_Co > 2 || has("gui_running")
syntax on
endif
" automatically indent lines (default)
" set noautoindent
" select case-insenitiv search (not default)
" set ignorecase
" show cursor line and column in the status line
set ruler
" show matching brackets
set showmatch
" display mode INSERT/REPLACE/...
set showmode
" changes special characters in search patterns (default)
" set magic
" Required to be able to use keypad keys and map missed escape sequences
set esckeys
" get easier to use and more user friendly vim defaults
" CAUTION: This option breaks some vi compatibility.
" Switch it off if you prefer real vi compatibility
set nocompatible
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
" Complete longest common string, then each full match
" enable this for bash compatible behaviour
" set wildmode=longest,full
" Try to get the correct main terminal type
if &term =~ "xterm"
let myterm = "xterm"
elseif &term =~ "screen"
let myterm = "screen"
else
let myterm = &term
endif
if has('eval')
let myterm = substitute(myterm, "cons[0-9][0-9].*$", "linux", "")
let myterm = substitute(myterm, "cons[0-9][0-9].*$", "linux", "")
let myterm = substitute(myterm, "vt1[0-9][0-9].*$", "vt100", "")
let myterm = substitute(myterm, "vt2[0-9][0-9].*$", "vt220", "")
let myterm = substitute(myterm, "\\([^-]*\\)[_-].*$", "\\1", "")
endif
" Here we define the keys of the NumLock in keyboard transmit mode of xterm
" which misses or hasn't activated Alt/NumLock Modifiers. Often not defined
" within termcap/terminfo and we should map the character printed on the keys.
if myterm == "xterm" || myterm == "kvt" || myterm == "gnome"
" keys in insert/command mode.
map! <ESC>Oo :
map! <ESC>Oj *
map! <ESC>Om -
map! <ESC>Ok +
map! <ESC>Ol ,
map! <ESC>OM
map! <ESC>Ow 7
map! <ESC>Ox 8
map! <ESC>Oy 9
map! <ESC>Ot 4
map! <ESC>Ou 5
map! <ESC>Ov 6
map! <ESC>Oq 1
map! <ESC>Or 2
map! <ESC>Os 3
map! <ESC>Op 0
map! <ESC>On .
" 8bit control characters
map! <Char-0x8F>o :
map! <Char-0x8F>j *
map! <Char-0x8F>m -
map! <Char-0x8F>k +
map! <Char-0x8F>l ,
map! <Char-0x8F>M
map! <Char-0x8F>w 7
map! <Char-0x8F>x 8
map! <Char-0x8F>y 9
map! <Char-0x8F>t 4
map! <Char-0x8F>u 5
map! <Char-0x8F>v 6
map! <Char-0x8F>q 1
map! <Char-0x8F>r 2
map! <Char-0x8F>s 3
map! <Char-0x8F>p 0
map! <Char-0x8F>n .
" keys in normal mode
map <ESC>Oo :
map <ESC>Oj *
map <ESC>Om -
map <ESC>Ok +
map <ESC>Ol ,
map <ESC>OM
map <ESC>Ow 7
map <ESC>Ox 8
map <ESC>Oy 9
map <ESC>Ot 4
map <ESC>Ou 5
map <ESC>Ov 6
map <ESC>Oq 1
map <ESC>Or 2
map <ESC>Os 3
map <ESC>Op 0
map <ESC>On .
" 8bit control characters
map <Char-0x8F>o :
map <Char-0x8F>j *
map <Char-0x8F>m -
map <Char-0x8F>k +
map <Char-0x8F>l ,
map <Char-0x8F>M
map <Char-0x8F>w 7
map <Char-0x8F>x 8
map <Char-0x8F>y 9
map <Char-0x8F>t 4
map <Char-0x8F>u 5
map <Char-0x8F>v 6
map <Char-0x8F>q 1
map <Char-0x8F>r 2
map <Char-0x8F>s 3
map <Char-0x8F>p 0
map <Char-0x8F>n .
endif
" xterm but without activated keyboard transmit mode
" and therefore not defined in termcap/terminfo.
if myterm == "xterm" || myterm == "kvt" || myterm == "gnome"
" keys in insert/command mode.
map! <Esc>[H <Home>
map! <Esc>[F <End>
map! <Char-0x8F>H <Home>
map! <Char-0x8F>F <End>
" Home/End: older xterms do not fit termcap/terminfo.
map! <Esc>[1~ <Home>
map! <Esc>[4~ <End>
" Up/Down/Right/Left
map! <Esc>[A <Up>
map! <Esc>[B <Down>
map! <Esc>[C <Right>
map! <Esc>[D <Left>
" 8bit control characters
map! <Char-0x8F>A <Up>
map! <Char-0x8F>B <Down>
map! <Char-0x8F>C <Right>
map! <Char-0x8F>D <Left>
map! <Char-0x9B>5~ <PageUp>
map! <Char-0x9B>6~ <PageDown>
map! <Char-0x9B>2~ <Insert>
map! <Char-0x9B>3~ <Delete>
" KP_5 (NumLock off)
map! <Esc>[E <Insert>
" keys in normal mode
map <ESC>[H 0
map <ESC>[F $
map <Char-0x8F>H 0
map <Char-0x8F>F $
" Home/End: older xterms do not fit termcap/terminfo.
map <ESC>[1~ 0
map <ESC>[4~ $
" Up/Down/Right/Left
map <ESC>[A k
map <ESC>[B j
map <ESC>[C l
map <ESC>[D h
" 8bit control characters
map <Char-0x8F>A k
map <Char-0x8F>B j
map <Char-0x8F>C l
map <Char-0x8F>D h
map <Char-0x9B>5~ <PageUp>
map <Char-0x9B>6~ <PageDown>
map <Char-0x9B>2~ <Insert>
map <Char-0x9B>3~ <Delete>
" KP_5 (NumLock off)
map <ESC>[E i
map <Char-0x8F>E i
endif
" xterm/kvt but with activated keyboard transmit mode.
" Sometimes not or wrong defined within termcap/terminfo.
if myterm == "xterm" || myterm == "kvt" || myterm == "gnome"
" keys in insert/command mode.
map! <Esc>OH <Home>
map! <Esc>OF <End>
map! <ESC>O2H <Home>
map! <ESC>O2F <End>
map! <ESC>O5H <Home>
map! <ESC>O5F <End>
" Cursor keys which works mostly
" map! <Esc>OA <Up>
" map! <Esc>OB <Down>
" map! <Esc>OC <Right>
" map! <Esc>OD <Left>
map! <Esc>[2;2~ <Insert>
map! <Esc>[3;2~ <Delete>
map! <Esc>[2;5~ <Insert>
map! <Esc>[3;5~ <Delete>
map! <Esc>O2A <PageUp>
map! <Esc>O2B <PageDown>
map! <Esc>O2C <S-Right>
map! <Esc>O2D <S-Left>
map! <Esc>O5A <PageUp>
map! <Esc>O5B <PageDown>
map! <Esc>O5C <S-Right>
map! <Esc>O5D <S-Left>
" KP_5 (NumLock off)
map! <Esc>OE <Insert>
" keys in normal mode
map <ESC>OH 0
map <ESC>OF $
map <ESC>O2H 0
map <ESC>O2F $
map <ESC>O5H 0
map <ESC>O5F $
" Cursor keys which works mostly
" map <ESC>OA k
" map <ESC>OB j
" map <ESC>OD h
" map <ESC>OC l
map <Esc>[2;2~ i
map <Esc>[3;2~ x
map <Esc>[2;5~ i
map <Esc>[3;5~ x
map <ESC>O2A ^B
map <ESC>O2B ^F
map <ESC>O2D b
map <ESC>O2C w
map <ESC>O5A ^B
map <ESC>O5B ^F
map <ESC>O5D b
map <ESC>O5C w
" KP_5 (NumLock off)
map <ESC>OE i
endif
if myterm == "linux"
" keys in insert/command mode.
map! <Esc>[G <Insert>
" KP_5 (NumLock off)
" keys in normal mode
" KP_5 (NumLock off)
map <ESC>[G i
endif
if myterm == "screen"
map! <ESC>[1;2D <S-Left>
map! <ESC>[1;2C <S-Right>
map! <ESC>[1;2A <S-Up>
map! <ESC>[1;2B <S-Down>
map! <ESC>[1;2H <Home>
map! <ESC>[1;2F <End>
map! <ESC>[2;2~ <Insert>
map! <ESC>[3;2~ <Delete>
map! <ESC>[5;2~ <PageUp>
map! <ESC>[6;2~ <PageDown>
map! <ESC>[1;5D <C-Left>
map! <ESC>[1;5C <C-Right>
map! <ESC>[1;5A <C-Up>
map! <ESC>[1;5B <C-Down>
map! <ESC>[1;5H <Home>
map! <ESC>[1;5F <End>
map! <ESC>[2;5~ <Insert>
map! <ESC>[3;5~ <Delete>
map! <ESC>[5;5~ <PageUp>
map! <ESC>[6;5~ <PageDown>
map! <ESC>[1;3D <A-Left>
map! <ESC>[1;3C <A-Right>
map! <ESC>[1;3A <A-Up>
map! <ESC>[1;3B <A-Down>
map! <ESC>[1;3H <Home>
map! <ESC>[1;3F <End>
map! <ESC>[2;3~ <Insert>
map! <ESC>[3;3~ <Delete>
map! <ESC>[5;3~ <PageUp>
map! <ESC>[6;3~ <PageDown>
endif
" This escape sequence is the well known ANSI sequence for
" Remove Character Under The Cursor (RCUTC[tm])
if !has("gui_running") && myterm == "xterm"
map! <Esc>[3~ <Delete>
map <ESC>[3~ x
endif
" Only do this part when compiled with support for autocommands.
if has("autocmd")
"Remember the positions in files with some git-specific exceptions"
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$")
\ && expand("%") !~ "COMMIT_EDITMSG"
\ && expand("%") !~ "ADD_EDIT.patch"
\ && expand("%") !~ "addp-hunk-edit.diff"
\ && expand("%") !~ "git-rebase-todo" |
\ exe "normal g`\"" |
\ endif
endif " has("autocmd")
" Changed default required by SuSE security team--be aware if enabling this
" that it potentially can open for malicious users to do harmful things.
set nomodeline
" get easier to use and more user friendly vim defaults
" /etc/vimrc ends here

View File

@ -0,0 +1,60 @@
Index: vim-8.2.2411/runtime/filetype.vim
===================================================================
--- vim-8.2.2411.orig/runtime/filetype.vim
+++ vim-8.2.2411/runtime/filetype.vim
@@ -320,6 +320,9 @@ au BufNewFile,BufRead *.css setf css
" Century Term Command Scripts (*.cmd too)
au BufNewFile,BufRead *.con setf cterm
+" SuSE .changes file
+au BufNewFile,BufRead *.changes setf changes
+
" Changelog
au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch,*/debian/changelog
\ setf debchangelog
Index: vim-8.2.2411/runtime/syntax/changes.vim
===================================================================
--- /dev/null
+++ vim-8.2.2411/runtime/syntax/changes.vim
@@ -0,0 +1,41 @@
+" Vim syntax file
+" Filename: changes.vim
+" Language: SuSE package changes
+" Maintainer: Michal Svec <msvec@suse.cz>
+" Last change: 20.8.2003
+
+" We shouldn't insert tabs
+" https://bugzilla.opensuse.org/show_bug.cgi?id=900839
+set expandtab
+
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" Keywords
+syn keyword ChangesArch i386 i486 i586 i686 athlon ia64 xa86_64
+syn keyword ChangesArch I386 I486 I586 I686 ATHLON IA64 XA86_64
+syn keyword ChangesArch ppc axp mips armv4l s390 s390x S/390 s/390
+syn keyword ChangesArch PPC AXP MIPS ARMV4L S390 S390x S390X
+syn keyword sparc sparc64 Sparc Sparc64 SPARC SPARC64 noarch NOARCH
+
+" Highlights
+syn match ChangesDate "^[A-Z][a-z][a-z] [A-Z][a-z][a-z] [ 0-9][0-9] [0-9:]\{8\} [A-Z]\+ [0-9]\+"
+syn match ChangesDate "^[A-Z][a-z][a-z] [A-Z][a-z][a-z] [ 0-9][0-9] [0-9:]\{8\} [0-9]\+"
+syn match ChangesMail " - \<[[:alnum:\.]\+@[[:alnum:]\.]\+\>$"
+syn match ChangesMailText "\<[[:alnum:]\.]\+@[[:alnum:]\.]\+\>"
+syn match ChangesSeparator "^-\{40,78\}$"
+syn match ChangesBug "#[0-9]\+\>"
+
+" Colors
+hi ChangesArch ctermfg=blue ctermbg=NONE
+hi ChangesDate ctermfg=darkgreen ctermbg=NONE
+hi ChangesMail ctermfg=darkred ctermbg=NONE
+hi ChangesMailText ctermfg=darkred ctermbg=NONE
+hi ChangesSeparator ctermfg=darkgreen ctermbg=NONE
+hi ChangesBug ctermfg=red ctermbg=NONE
+
+" Syntax name
+let b:current_syntax = "changes"

View File

@ -0,0 +1,53 @@
Index: vim-8.2.2411/runtime/filetype.vim
===================================================================
--- vim-8.2.2411.orig/runtime/filetype.vim
+++ vim-8.2.2411/runtime/filetype.vim
@@ -2312,3 +2312,7 @@ endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
+
+" FreeMarker templates
+au BufNewFile,BufRead *.ftl setf ftl
+
Index: vim-8.2.2411/runtime/syntax/ftl.vim
===================================================================
--- /dev/null
+++ vim-8.2.2411/runtime/syntax/ftl.vim
@@ -0,0 +1,36 @@
+" Vim syntax file
+" Language: FreeMarker Template Language (FTL)
+" Maintainer: Stephan Müller <stephan@chaquotay.net>
+" Last Change: 2003 Oct 7
+
+syn case match
+
+" directives and interpolations
+syn region ftlStartDirective start=+<#+ end=+>+ contains=ftlKeyword, ftlDirective, ftlString, ftlComment
+syn region ftlEndDirective start=+</#+ end=+>+ contains=ftlDirective
+syn region ftlStartUserDirective start=+<@+ end=+>+ contains=ftlString, ftlComment
+syn region ftlEndUserDirective start=+</@+ end=+>+
+syn region ftlInterpolation start=+${+ end=+}+
+syn region ftlInterpolation2 start=+#{+ end=+}+
+syn region ftlString contained start=+"+ end=+"+
+syn region ftlComment start=+<#--+ end=+-->+
+
+" keywords
+syn keyword ftlDirective contained list if else macro import include switch case break
+syn keyword ftlDirective contained assign local global nested recurse fallback visit
+syn keyword ftlDirective contained function return t rt lt nt ftl
+syn keyword ftlKeyword contained as in using
+
+" highlighting
+highlight link ftlKeyword Statement
+highlight link ftlDirective Statement
+highlight link ftlStartDirective Function
+highlight link ftlEndDirective Function
+highlight link ftlStartUserDirective Function
+highlight link ftlEndUserDirective Function
+highlight link ftlInterpolation Constant
+highlight link ftlInterpolation2 Constant
+highlight link ftlString Constant
+highlight link ftlComment Comment
+
+

View File

@ -0,0 +1,26 @@
Index: vim-8.2.2411/runtime/filetype.vim
===================================================================
--- vim-8.2.2411.orig/runtime/filetype.vim
+++ vim-8.2.2411/runtime/filetype.vim
@@ -1639,7 +1639,7 @@ au BufNewFile,BufRead *.rules call dis
au BufNewFile,BufRead *.rq,*.sparql setf sparql
" Spec (Linux RPM)
-au BufNewFile,BufRead *.spec setf spec
+au BufNewFile,BufRead *.spec,*.spec.in setf spec
" Speedup (AspenTech plant simulator)
au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup
Index: vim-8.2.2411/runtime/syntax/spec.vim
===================================================================
--- vim-8.2.2411.orig/runtime/syntax/spec.vim
+++ vim-8.2.2411/runtime/syntax/spec.vim
@@ -102,7 +102,7 @@ syn case ignore
"%% PreAmble Section %%
"Copyright and Serial were deprecated by License and Epoch
syn region specPreAmbleDeprecated oneline matchgroup=specError start='^\(Copyright\|Serial\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
-syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Recommends\|Suggests\|Supplements\|Enhances\|Icon\|URL\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
+syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Recommends\|Suggests\|Supplements\|Enhances\|Icon\|URL\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\|Recommends\|Suggests\|Freshens\|EssentialFor\|Supplements\|Enhances\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
"%% Description Section %%
syn region specDescriptionArea matchgroup=specSection start='^%description' end='^%'me=e-1 contains=specDescriptionOpts,specEmail,specURL,specNumber,specMacroIdentifier,specComment

View File

@ -0,0 +1,44 @@
Index: vim-8.2.2411/runtime/gvimrc_example.vim
===================================================================
--- vim-8.2.2411.orig/runtime/gvimrc_example.vim
+++ vim-8.2.2411/runtime/gvimrc_example.vim
@@ -15,9 +15,6 @@
" Make external commands work through a pipe instead of a pseudo-tty
"set noguipty
-" set the X11 font to use
-" set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1
-
set ch=2 " Make command line two lines high
set mousehide " Hide the mouse when typing text
@@ -53,3 +50,29 @@ if version >= 500
highlight Special gui=NONE guibg=grey95
endif
+
+" Determine the LC_CTYPE locale category setting and try to set guifontset accordingly:
+
+let tmplang = $LC_ALL
+if tmplang =~ "^$"
+ let tmplang = $LC_CTYPE
+endif
+if tmplang =~ "^$"
+ let tmplang = $LANG
+endif
+if tmplang =~ "^$"
+ let tmplang = "en_US"
+endif
+
+if tmplang =~ "^ko"
+ set guifont=Luxi\ Mono
+elseif tmplang =~ "^ja"
+ set guifont=Luxi\ Mono
+elseif tmplang =~ "^zh"
+ set guifont=Luxi\ Mono
+else
+ set guifont=monospace
+endif
+
+
+" /etc/gvimrc ends here

12
vim-7.3-help_tags.patch Normal file
View File

@ -0,0 +1,12 @@
Index: vim-8.2.2411/runtime/doc/Makefile
===================================================================
--- vim-8.2.2411.orig/runtime/doc/Makefile
+++ vim-8.2.2411/runtime/doc/Makefile
@@ -331,6 +331,7 @@ CONVERTED = \
all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
# Use Vim to generate the tags file. Can only be used when Vim has been
+ export VIMRUNTIME=../; \
# compiled and installed. Supports multiple languages.
vimtags: $(DOCS)
@$(VIMEXE) --clean -esX -V1 -u doctags.vim

View File

@ -0,0 +1,14 @@
Index: vim-8.2.2411/src/vimtutor
===================================================================
--- vim-8.2.2411.orig/src/vimtutor
+++ vim-8.2.2411/src/vimtutor
@@ -24,8 +24,7 @@ xx=$1
export xx
# We need a temp file for the copy. First try using a standard command.
-tmp="${TMPDIR-/tmp}"
-TUTORCOPY=`mktemp $tmp/tutorXXXXXX || tempfile -p tutor || echo none`
+TUTORCOPY=`mktemp /tmp/tutorXXXXXX || echo /tmp/tutor$$`
# If the standard commands failed then create a directory to put the copy in.
# That is a secure way to make a temp file.

18
vim-7.3-name_vimrc.patch Normal file
View File

@ -0,0 +1,18 @@
Index: vim-8.2.2411/src/feature.h
===================================================================
--- vim-8.2.2411.orig/src/feature.h
+++ vim-8.2.2411/src/feature.h
@@ -813,11 +813,12 @@
* SYS_VIMRC_FILE Name of the system-wide .vimrc file.
*/
// #define SYS_VIMRC_FILE "/etc/vimrc"
-
+#define SYS_VIMRC_FILE "/etc/vimrc"
/*
* SYS_GVIMRC_FILE Name of the system-wide .gvimrc file.
*/
// #define SYS_GVIMRC_FILE "/etc/gvimrc"
+#define SYS_GVIMRC_FILE "/etc/gvimrc"
/*
* DFLT_HELPFILE Name of the help file.

18
vim-7.3-sh_is_bash.patch Normal file
View File

@ -0,0 +1,18 @@
Index: vim-8.2.2411/runtime/syntax/sh.vim
===================================================================
--- vim-8.2.2411.orig/runtime/syntax/sh.vim
+++ vim-8.2.2411/runtime/syntax/sh.vim
@@ -74,6 +74,13 @@ if exists("b:is_dash")
let b:is_posix= 1
endif
+" Neither is_kornshell nor is_bash was explicitly set, and
+" /bin/sh is a bash on SUSE LINUX.
+if exists("b:is_sh")
+ let b:is_bash= 1
+ unlet b:is_sh
+endif
+
" set up default g:sh_fold_enabled {{{1
" ================================
if !exists("g:sh_fold_enabled")

10
vim-7.3-use_awk.patch Normal file
View File

@ -0,0 +1,10 @@
Index: vim-8.2.2411/runtime/tools/mve.awk
===================================================================
--- vim-8.2.2411.orig/runtime/tools/mve.awk
+++ vim-8.2.2411/runtime/tools/mve.awk
@@ -1,4 +1,4 @@
-#!/usr/bin/nawk -f
+#!/usr/bin/awk -f
#
# Change "nawk" to "awk" or "gawk" if you get errors.
#

View File

@ -0,0 +1,28 @@
Index: vim-8.2.2411/src/po/Make_all.mak
===================================================================
--- vim-8.2.2411.orig/src/po/Make_all.mak
+++ vim-8.2.2411/src/po/Make_all.mak
@@ -24,7 +24,6 @@ LANGUAGES = \
lv \
nb \
nl \
- no \
pl \
pl.UTF-8 \
pl.cp1250 \
@@ -109,7 +108,6 @@ MOFILES = \
lv.mo \
nb.mo \
nl.mo \
- no.mo \
pl.mo \
pt_BR.mo \
ru.mo \
@@ -159,7 +157,6 @@ CHECKFILES = \
lv.ck \
nb.ck \
nl.ck \
- no.ck \
pl.UTF-8.ck \
pl.ck \
pl.cp1250.ck \

View File

@ -0,0 +1,15 @@
Index: vim-8.2.2411/runtime/filetype.vim
===================================================================
--- vim-8.2.2411.orig/runtime/filetype.vim
+++ vim-8.2.2411/runtime/filetype.vim
@@ -104,6 +104,10 @@ au BufNewFile,BufRead *.ino,*.pde setf
au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache
au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache
+" AppArmor
+au BufNewFile,BufRead */etc/apparmor.d/* setf apparmor
+au BufNewFile,BufRead */etc/apparmor/profiles/* setf apparmor
+
" XA65 MOS6510 cross assembler
au BufNewFile,BufRead *.a65 setf a65

View File

@ -0,0 +1,13 @@
Index: vim-8.2.2411/runtime/filetype.vim
===================================================================
--- vim-8.2.2411.orig/runtime/filetype.vim
+++ vim-8.2.2411/runtime/filetype.vim
@@ -17,7 +17,7 @@ augroup filetypedetect
" Ignored extensions
if exists("*fnameescape")
-au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew
+au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.mine,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew
\ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
au BufNewFile,BufRead *~
\ let s:name = expand("<afile>") |

View File

@ -0,0 +1,13 @@
Index: vim-9.0.1188/runtime/syntax/fstab.vim
===================================================================
--- vim-9.0.1188.orig/runtime/syntax/fstab.vim
+++ vim-9.0.1188/runtime/syntax/fstab.vim
@@ -35,7 +35,7 @@ syn match fsOperator /[,=:#]/
" Device
syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
-syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs
+syn keyword fsDeviceKeyword contained none proc linproc tmpfs debugfs devpts devtmpfs sysfs usbfs
syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
syn keyword fsDeviceKeyword contained PARTLABEL nextgroup=fsDevicePARTLABEL

2
vim-7.4-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
addFilter("vim-data.* file-not-in-%lang")

View File

@ -0,0 +1,27 @@
Index: vim-8.2.2411/runtime/defaults.vim
===================================================================
--- vim-8.2.2411.orig/runtime/defaults.vim
+++ vim-8.2.2411/runtime/defaults.vim
@@ -77,13 +77,15 @@ inoremap <C-U> <C-G>u<C-U>
" can position the cursor, Visually select and scroll with the mouse.
" Only xterm can grab the mouse events when using the shift key, for other
" terminals use ":", select text and press Esc.
-if has('mouse')
- if &term =~ 'xterm'
- set mouse=a
- else
- set mouse=nvi
- endif
-endif
+" disabled in (open)SUSE to make copy&pase work as most people
+" except it boo#1079185
+"if has('mouse')
+" if &term =~ 'xterm'
+" set mouse=a
+" else
+" set mouse=nvi
+" endif
+"endif
" Only do this part when Vim was compiled with the +eval feature.
if 1

View File

@ -0,0 +1,16 @@
Index: vim-8.2.2411/src/main.c
===================================================================
--- vim-8.2.2411.orig/src/main.c
+++ vim-8.2.2411/src/main.c
@@ -3130,7 +3130,10 @@ source_startup_scripts(mparm_T *parmp)
* Get system wide defaults, if the file name is defined.
*/
#ifdef SYS_VIMRC_FILE
- (void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE, NULL);
+ if (do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE, NULL) == FAIL)
+ {
+ (void)do_source((char_u *)"$VIMRUNTIME/suse.vimrc", FALSE, DOSO_NONE, NULL);
+ }
#endif
#ifdef MACOS_X
(void)do_source((char_u *)"$VIMRUNTIME/macmap.vim", FALSE,

BIN
vim-9.1.0111.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

16
vim-changelog.sh Normal file
View File

@ -0,0 +1,16 @@
#!/usr/bin/env zsh
directory=https://ftp.nluug.nl/pub/vim/patches/
version=9.0
if [ $# -ne 2 ]; then
echo "usage: $0 <old-minor-version> <new-minor-version>" 1>&2
exit 1
fi
echo "Updated to version $version.$(echo $2 | sed 's/^*//'), fixes the following problems"
for i in $(seq -w $1 $2); do
curl $directory/$version/$version.$i -s | grep -v "Binary file (standard input) matches" | \
tr -d '\n' | grep -oP "Problem:.*Solution:" | sed s,"Problem: "," * ", | sed s,"Solution:",, | \
tr '\t' '\n' | sed s,' ','', | fmt -w 80
done

16001
vim.changes Normal file

File diff suppressed because it is too large Load Diff

789
vim.spec Normal file
View File

@ -0,0 +1,789 @@
#
# spec file for package vim
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define pkg_version 9.1
%define patchlevel 0111
%define patchlevel_compact %{patchlevel}
%define VIM_SUBDIR vim91
%define site_runtimepath %{_datadir}/vim/site
%define make make VIMRCLOC=%{_sysconfdir} VIMRUNTIMEDIR=%{_datadir}/vim/current MAKE="make -e" %{?_smp_mflags}
%if 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
%bcond_without python2
Name: vim
Version: %{pkg_version}.%{patchlevel_compact}
Release: 0
Summary: Vi IMproved
License: Vim
URL: https://www.vim.org/
Source: https://github.com/vim/vim/archive/v%{pkg_version}.%{patchlevel}.tar.gz#/vim-%{pkg_version}.%{patchlevel}.tar.gz
Source3: suse.vimrc
Source4: vimrc_example1
Source5: vimrc_example2
Source8: suse.gvimrc
Source10: README.Japanese-XIM
Source13: vitmp.c
Source14: vitmp.1
Source15: vim132
Source19: gvim.desktop
Source20: spec.skeleton
Source21: spec.vim
Source23: apparmor.vim
# Generated using: epstopdf runtime/vimlogo.eps && pdf2svg runtime/vimlogo.pdf gvim.svg
Source24: gvim.svg
# Section Bitmap icons generated from gvim.svg using rsvg-convert
Source25: gvim_24.png
Source26: gvim_32.png
Source27: gvim_48.png
Source28: gvim_64.png
Source29: gvim_96.png
Source30: gvim_128.png
Source31: gvim_256.png
Source32: gvim_512.png
# /Section
Source98: vim-changelog.sh
Source99: %{name}-7.4-rpmlintrc
Patch3: %{name}-7.4-disable_lang_no.patch
Patch4: %{name}-7.3-gvimrc_fontset.patch
Patch5: %{name}-7.4-highlight_fstab.patch
Patch6: %{name}-7.3-sh_is_bash.patch
Patch7: %{name}-7.3-filetype_ftl.patch
Patch8: %{name}-7.3-help_tags.patch
Patch9: %{name}-7.3-use_awk.patch
Patch10: %{name}-7.3-name_vimrc.patch
Patch11: %{name}-7.3-mktemp_tutor.patch
Patch15: %{name}-7.4-filetype_apparmor.patch
Patch18: %{name}-7.3-filetype_spec.patch
Patch21: %{name}-7.3-filetype_changes.patch
Patch22: %{name}-7.4-filetype_mine.patch
Patch100: vim73-no-static-libpython.patch
Patch101: vim-8.0.1568-defaults.patch
Patch104: vim-8.2.2411-globalvimrc.patch
BuildRequires: autoconf
BuildRequires: db-devel
BuildRequires: fdupes
BuildRequires: gettext-devel
BuildRequires: gpm-devel
BuildRequires: libtool
BuildRequires: perl
BuildRequires: pkgconfig
BuildRequires: ruby-devel
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(form)
BuildRequires: pkgconfig(formw)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(libacl)
BuildRequires: pkgconfig(lua)
BuildRequires: pkgconfig(menu)
BuildRequires: pkgconfig(menuw)
BuildRequires: pkgconfig(ncurses)
BuildRequires: pkgconfig(ncurses++)
BuildRequires: pkgconfig(ncurses++w)
BuildRequires: pkgconfig(ncursesw)
BuildRequires: pkgconfig(panel)
BuildRequires: pkgconfig(panelw)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(tic)
BuildRequires: pkgconfig(tinfo)
BuildRequires: pkgconfig(xt)
Requires: vim-data-common = %{version}-%{release}
Requires: xxd = %{version}-%{release}
Recommends: vim-data = %{version}-%{release}
Conflicts: vim-base < 8.2
Provides: vi
Provides: vim-base = %{version}-%{release}
Provides: vim-enhanced = %{version}-%{release}
Provides: vim-python = %{version}-%{release}
Obsoletes: vim-base < %{version}-%{release}
Obsoletes: vim-enhanced < %{version}-%{release}
Obsoletes: vim-python < %{version}-%{release}
Provides: vim_client
%{?libperl_requires}
%if %{with libalternatives}
Requires: alts
%else
Requires(post): update-alternatives
Requires(postun):update-alternatives
%endif
%if %{with python2}
BuildRequires: python2-devel
%endif
%description
Vim (Vi IMproved) is an almost compatible version of the UNIX editor
vi. Almost every possible command can be performed using only ASCII
characters. Only the 'Q' command is missing (you do not need it). Many
new features have been added: multilevel undo, command line history,
file name completion, block operations, and editing of binary data.
%package data
Summary: Data files needed for extended vim functionality
Requires: vim-data-common = %{version}-%{release}
# Used to be in vim-plugins package
Obsoletes: vim-plugin-matchit <= 1.13.2
Provides: vim-plugin-matchit = 1.13.2
# conflicts with nginx own plugin
Obsoletes: vim-plugin-nginx < %{version}
Provides: vim-plugin-nginx = %{version}
BuildArch: noarch
%description data
This package contains optional runtime & syntax files for vim.
%package data-common
Summary: Common Data files for vim & gvim
BuildArch: noarch
%description data-common
This package contains basic runtime & syntax files for vim
%package -n gvim
Summary: A GUI for Vi
Requires: gvim_client
Requires: vim-data = %{version}-%{release}
Requires: xxd = %{version}-%{release}
Conflicts: gvim < 8.2
Provides: gvim-base = %{version}-%{release}
Provides: gvim-enhanced = %{version}-%{release}
Obsoletes: gvim-base < %{version}-%{release}
Obsoletes: gvim-enhanced < %{version}-%{release}
Provides: gvim_client
Provides: vi
Provides: vim_client
%if %{with libalternatives}
BuildRequires: alts
Requires: alts
%else
Requires(post): update-alternatives
Requires(postun):update-alternatives
%endif
%description -n gvim
Package gvim contains the largest set of features of vim, which is
graphical windows and language interpreter, like python, ruby, or perl.
You need package vim for the help and other documentation too. If you
want less features, you might want to install vim instead.
%package small
Summary: Vim with reduced features
Requires: vim-data-common = %{version}-%{release}
Provides: vi
Provides: vim_client
%if %{with libalternatives}
BuildRequires: alts
Requires: alts
%else
Requires(post): update-alternatives
Requires(postun):update-alternatives
%endif
%description small
Vim compiled with reduced feature set such as no script
interpreters built in
%package -n xxd
Summary: A hex dump utility
Conflicts: vim <= 9.0.1418
%description -n xxd
xxd creates a hex dump of a given file or standard input. It can also convert
a hex dump back to its original binary form.
%prep
%setup -q -n %{name}-%{pkg_version}.%{patchlevel}
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
%patch -P 7 -p1
%patch -P 8 -p1
%patch -P 9 -p1
%patch -P 10 -p1
%patch -P 11 -p1
cp %{SOURCE23} runtime/syntax/apparmor.vim
%patch -P 15 -p1
%patch -P 18 -p1
%patch -P 21 -p1
%patch -P 22 -p1
%patch -P 100 -p1
%patch -P 101 -p1
%patch -P 104 -p1
cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .
%build
export CFLAGS="%{optflags} -Wall -pipe -fno-strict-aliasing"
export CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/-D_FORTIFY_SOURCE=1}
export COMMON_OPTIONS="\
--with-vim-name=vim \
--with-ex-name=ex \
--with-view-name=view \
--enable-cscope \
--enable-multibyte \
--with-compiledby='http://www.opensuse.org/' \
--with-tlib=tinfo \
--with-global-runtime=%{site_runtimepath} \
"
# yeah kind of weird to call this small when we then use the
# "normal" set. Calling the package vim-normal is weird though as
# huge is our default.
export SMALL_OPTIONS="\
$COMMON_OPTIONS \
--with-features=small \
--enable-luainterp=no \
--enable-pythoninterp=no \
--enable-perlinterp=no \
--enable-python3interp=no \
--enable-rubyinterp=no"
export HUGE_OPTIONS="\
$COMMON_OPTIONS \
--with-features=huge \
--enable-luainterp=dynamic \
--enable-perlinterp=yes \
--enable-python3interp=dynamic \
--enable-rubyinterp=dynamic
--enable-pythoninterp=%{?with_python2:yes}%{!?with_python2:no}"
export GUI_OPTIONS="\
--disable-icon-cache-update \
--enable-xim \
--enable-fontset \
--enable-gui=gtk3"
export NOGUI_OPTIONS="\
--disable-gui \
--disable-gpm \
--with-x=no \
"
pushd src
autoconf
popd
# build smaller vim
%configure ${SMALL_OPTIONS} ${NOGUI_OPTIONS}
sed -i -e 's|define HAVE_DATE_TIME 1|undef HAVE_DATE_TIME|' src/auto/config.h
%make_build
cp src/vim vim-small
# build normal vim
%make_build -j1 distclean
%configure ${HUGE_OPTIONS} ${NOGUI_OPTIONS}
sed -i -e 's|define HAVE_DATE_TIME 1|undef HAVE_DATE_TIME|' src/auto/config.h
%make_build
cp src/vim vim-nox11
# build gvim
%make_build -j1 distclean
%configure ${HUGE_OPTIONS} ${GUI_OPTIONS}
sed -i -e 's|define HAVE_DATE_TIME 1|undef HAVE_DATE_TIME|' src/auto/config.h
%make_build
#
# build vitmp
gcc %{optflags} %{SOURCE13} -o vitmp
%install
%make_install STRIP=:
# create icon directories and install the icons into it
for SIZE in 24 32 48 64 96 128 256 512; do
install -d -m 0755 %{buildroot}%{_datadir}/icons/hicolor/${SIZE}x${SIZE}/apps
install -m 0644 %{_sourcedir}/gvim_${SIZE}.png %{buildroot}%{_datadir}/icons/hicolor/${SIZE}x${SIZE}/apps/gvim.png
done
install -d -m 0755 %{buildroot}%{_datadir}/icons/hicolor/scalable/apps
install -m 0644 %{SOURCE24} %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/gvim.svg
# the last installed binary is gvim. preserve it
mv %{buildroot}%{_bindir}/vim %{buildroot}%{_bindir}/gvim
%if %{with libalternatives}
for f in vimdiff ex view rview rvim; do
rm %{buildroot}%{_bindir}/$f
done
%else
# fix gvim symlinks. e* was added here as it doesnt make much sense in
# console
for f in egvim egview eview evim gex gvi gview gvimdiff rgview rgvim ; do
ln -s -vf gvim %{buildroot}%{_bindir}/$f
done
%endif
# install vim
install -D -m 0755 vim-small %{buildroot}%{_bindir}/vim-small
install -D -m 0755 vim-nox11 %{buildroot}%{_bindir}/vim-nox11
%if ! %{with libalternatives}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
ln -s -f %{_sysconfdir}/alternatives/vim %{buildroot}%{_bindir}/vim
ln -s -f %{_sysconfdir}/alternatives/vi %{buildroot}%{_bindir}/vi
%else
for f in vi vim rvim evim eview egview view rview vimdiff edit ex egvim gex gvi gview gvimdiff rgview rgvim ; do
ln -sf %{_bindir}/alts %{buildroot}%{_bindir}/$f
mkdir -p %{buildroot}%{_datadir}/libalternatives/$f
done
for f in vi vim rvim view rview vimdiff edit ex; do
cat > %{buildroot}%{_datadir}/libalternatives/$f/20.conf <<EOF
binary=%{_bindir}/vim-nox11
group=vim,vi
options=KeepArgv0
EOF
done
for f in vi vim evim rvim egview eview view rview vimdiff edit ex egvim gex gvi gview gvimdiff rgview rgvim ; do
cat > %{buildroot}%{_datadir}/libalternatives/$f/30.conf <<EOF
binary=%{_bindir}/gvim
group=vi,vim
options=KeepArgv0
EOF
done
for f in vim vi ; do
cat > %{buildroot}%{_datadir}/libalternatives/$f/19.conf <<EOF
binary=%{_bindir}/vim-small
group=vim,vi
options=KeepArgv0
EOF
done
%endif
# compat symlinks
mkdir %{buildroot}/bin
%if 0%{?suse_version} < 1550
ln -s -f %{_bindir}/vim %{buildroot}/bin/vi
ln -s -f %{_bindir}/vim %{buildroot}/bin/vim
%endif
ln -s -f vim %{buildroot}%{_bindir}/edit
%if 0%{?suse_version} < 1550
ln -s -f %{_bindir}/vim %{buildroot}/bin/ex
%endif
# man pages
ln -s -f vim.1.gz %{buildroot}%{_mandir}/man1/vi.1.gz
ln -s -f vim.1.gz %{buildroot}%{_mandir}/man1/ex.1.gz
# vitmp
install -m 0755 vitmp %{buildroot}%{_bindir}/vitmp
install -m 0644 %{SOURCE14} %{buildroot}%{_mandir}/man1/vitmp.1
install -m 0755 %{SOURCE15} %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/tools/vim132
# make the vim settings more generic
ln -s -f %{VIM_SUBDIR} %{buildroot}%{_datadir}/vim/current
# additional files
install -D -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/vim/current/suse.vimrc
#install -D -m 0644 /dev/null %{buildroot}%{_sysconfdir}/vimrc
install -D -m 0644 %{SOURCE8} %{buildroot}%{_sysconfdir}/gvimrc
# create site wide runtime directory
mkdir -p -m 0755 %{buildroot}%{site_runtimepath}/after
mkdir -m 0755 %{buildroot}%{site_runtimepath}/autoload
mkdir -m 0755 %{buildroot}%{site_runtimepath}/colors
mkdir -m 0755 %{buildroot}%{site_runtimepath}/doc
mkdir -m 0755 %{buildroot}%{site_runtimepath}/plugin
mkdir -m 0755 %{buildroot}%{site_runtimepath}/syntax
mkdir -m 0755 %{buildroot}%{site_runtimepath}/ftdetect
mkdir -m 0755 %{buildroot}%{site_runtimepath}/after/syntax
mkdir -m 0755 %{buildroot}%{_datadir}/vim/current/skeletons
mkdir -m 0755 %{buildroot}%{_sysconfdir}/skel
# install spec helper
install -m 0644 %{SOURCE20} %{buildroot}%{_datadir}/vim/current/skeletons/skeleton.spec
install -m 0644 %{SOURCE21} %{buildroot}%{_datadir}/vim/current/plugin/spec.vim
# desktop file for gvim
install -D -m 0644 %{SOURCE19} %{buildroot}%{_datadir}/applications/gvim.desktop
%suse_update_desktop_file gvim Utility TextEditor
#
# documentation
install -d -m 0755 %{buildroot}%{_docdir}/{,g}vim/
install -D -m 0644 \
vimrc_example1 vimrc_example2 suse.vimrc \
README.txt READMEdir/README_src.txt READMEdir/README_unix.txt \
%{buildroot}%{_docdir}/vim/
# gvim
install -D -m 0644 \
README.Japanese-XIM runtime/gvimrc_example.vim suse.gvimrc \
%{buildroot}%{_docdir}/gvim/
# remove unecessary duplicate manpages
rm -rf %{buildroot}%{_mandir}/fr.ISO8859-1/
rm -rf %{buildroot}%{_mandir}/fr.UTF-8/
rm -rf %{buildroot}%{_mandir}/pl.ISO8859-2/
rm -rf %{buildroot}%{_mandir}/pl.UTF-8/
rm -rf %{buildroot}%{_mandir}/ru.KOI8-R/
rm -rf %{buildroot}%{_mandir}/it.ISO8859-1/
rm -rf %{buildroot}%{_mandir}/it.UTF-8/
rm -rf %{buildroot}%{_mandir}/da.UTF-8/
rm -rf %{buildroot}%{_mandir}/de.UTF-8/
rm -rf %{buildroot}%{_mandir}/da.ISO8859-1/
rm -rf %{buildroot}%{_mandir}/de.ISO8859-1/
rm -Rf %{buildroot}%{_mandir}/tr.ISO8859-9/
rm -Rf %{buildroot}%{_mandir}/tr.UTF-8/
# remove unnecessary files
rm -rf %{buildroot}%{_datadir}/applications/vim.desktop
rm -rf %{buildroot}%{_datadir}/icons/locolor
# and move russian manpages to a place where they can be found
mv %{buildroot}%{_mandir}/ru.UTF-8 %{buildroot}%{_mandir}/ru
# remove some c source files
rm -f %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/tools/*.c
rm -f %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/macros/maze/*.c
# Remove sample server to avoid python dependency
rm %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/tools/demoserver.py
# Create ghost files (see vim.conf)
mkdir -p %{buildroot}%{_localstatedir}/run/vi.recover
%fdupes -s %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/lang
%fdupes -s %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/tutor
%fdupes -s %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/ftplugin
sed -i "s@%{_bindir}/env perl@%{_bindir}/perl@" %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/tools/*.pl
sed -i "s@%{_bindir}/env perl@%{_bindir}/perl@" %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/doc/vim2html.pl
%if %{with libalternatives}
# with libalternatives
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] && [ ! -e %{_bindir}/vim-nox11 ]; then
%{_sbindir}/update-alternatives --remove vim %{_bindir}/vim-nox11
fi
%pre -n gvim
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] && [ ! -e %{_bindir}/gvim ] ; then
%{_sbindir}/update-alternatives --remove vim %{_bindir}/gvim
fi
%pre small
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] && [ ! -e %{_bindir}/vim-small ]; then
%{_sbindir}/update-alternatives --remove vim %{_bindir}/vim-small
fi
%if 0%{?suse_version} <= 1315
%post -n gvim
%icon_theme_cache_post
%postun -n gvim
%icon_theme_cache_postun
%endif
%else
# without libalternatives
%post
%{_sbindir}/update-alternatives \
--install %{_bindir}/vim vim %{_bindir}/vim-nox11 20 \
--slave %{_bindir}/vi vi %{_bindir}/vim-nox11
%postun
if [ ! -e %{_bindir}/vim-nox11 ] ; then
%{_sbindir}/update-alternatives --remove vim %{_bindir}/vim-nox11
fi
%post -n gvim
%{_sbindir}/update-alternatives \
--install %{_bindir}/vim vim %{_bindir}/gvim 30 \
--slave %{_bindir}/vi vi %{_bindir}/gvim
%if 0%{?suse_version} <= 1315
%icon_theme_cache_post
%endif
%postun -n gvim
if [ ! -e %{_bindir}/gvim ] ; then
%{_sbindir}/update-alternatives --remove vim %{_bindir}/gvim
fi
%if 0%{?suse_version} <= 1315
%icon_theme_cache_postun
%endif
%post small
%{_sbindir}/update-alternatives \
--install %{_bindir}/vim vim %{_bindir}/vim-small 19 \
--slave %{_bindir}/vi vi %{_bindir}/vim-small
%postun small
if [ ! -e %{_bindir}/vim-small ] ; then
%{_sbindir}/update-alternatives --remove vim %{_bindir}/vim-small
fi
%endif
%files
%if ! %{with libalternatives}
%ghost %{_sysconfdir}/alternatives/vim
%ghost %{_sysconfdir}/alternatives/vi
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/vi
%{_datadir}/libalternatives/vi/20.conf
%dir %{_datadir}/libalternatives/vim
%{_datadir}/libalternatives/vim/20.conf
%dir %{_datadir}/libalternatives/rvim
%{_datadir}/libalternatives/rvim/20.conf
%dir %{_datadir}/libalternatives/view
%{_datadir}/libalternatives/view/20.conf
%dir %{_datadir}/libalternatives/rview
%{_datadir}/libalternatives/rview/20.conf
%dir %{_datadir}/libalternatives/ex
%{_datadir}/libalternatives/ex/20.conf
%dir %{_datadir}/libalternatives/edit
%{_datadir}/libalternatives/edit/20.conf
%dir %{_datadir}/libalternatives/vimdiff
%{_datadir}/libalternatives/vimdiff/20.conf
%endif
%{_bindir}/vim-nox11
%{_bindir}/vim
# symlinks
%if 0%{?suse_version} < 1550
/bin/vi
/bin/vim
/bin/ex
%endif
%{_bindir}/edit
%{_bindir}/ex
%{_bindir}/rview
%{_bindir}/rvim
%{_bindir}/vi
%{_bindir}/view
%{_bindir}/vimdiff
# additional binaries
%{_bindir}/vitmp
%{_bindir}/vimtutor
%{_bindir}/gvimtutor
# man pages
%{_mandir}/man1/eview.1%{?ext_man}
%{_mandir}/man1/evim.1%{?ext_man}
%{_mandir}/man1/ex.1%{?ext_man}
%{_mandir}/man1/gview.1%{?ext_man}
%{_mandir}/man1/gvim.1%{?ext_man}
%{_mandir}/man1/gvimdiff.1%{?ext_man}
%{_mandir}/man1/rgview.1%{?ext_man}
%{_mandir}/man1/rgvim.1%{?ext_man}
%{_mandir}/man1/rview.1%{?ext_man}
%{_mandir}/man1/rvim.1%{?ext_man}
%{_mandir}/man1/vi.1%{?ext_man}
%{_mandir}/man1/view.1%{?ext_man}
%{_mandir}/man1/vim.1%{?ext_man}
%{_mandir}/man1/vimdiff.1%{?ext_man}
%{_mandir}/man1/vimtutor.1%{?ext_man}
%{_mandir}/man1/vitmp.1%{?ext_man}
%dir %{_mandir}/da
%dir %{_mandir}/da/man1/
%{_mandir}/da/man1/*.1%{?ext_man}
%dir %{_mandir}/de
%dir %{_mandir}/de/man1/
%{_mandir}/de/man1/*.1%{?ext_man}
%dir %{_mandir}/fr
%dir %{_mandir}/fr/man1/
%{_mandir}/fr/man1/*.1%{?ext_man}
%dir %{_mandir}/it
%dir %{_mandir}/it/man1/
%{_mandir}/it/man1/*.1%{?ext_man}
%dir %{_mandir}/ru
%dir %{_mandir}/ru/man1/
%{_mandir}/ru/man1/*.1%{?ext_man}
%dir %{_mandir}/pl
%dir %{_mandir}/pl/man1/
%{_mandir}/pl/man1/*.1%{?ext_man}
%dir %{_mandir}/ja
%dir %{_mandir}/ja/man1/
%{_mandir}/ja/man1/*.1%{?ext_man}
%dir %{_mandir}/tr
%dir %{_mandir}/tr/man1/
%{_mandir}/tr/man1/*.1%{?ext_man}
# docs and data file
%license LICENSE
%doc %{_docdir}/vim
#
%dir %{_datadir}/vim/%{VIM_SUBDIR}/colors/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/compiler/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/doc/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/ftplugin/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/indent/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/import/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/import/dist/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/keymap/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/lang/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/macros/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/pack/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/plugin/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/print/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/spell/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/syntax/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/tools/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/tutor/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/skeletons/
%dir %{site_runtimepath}
%dir %{site_runtimepath}/autoload/
%dir %{site_runtimepath}/colors/
%dir %{site_runtimepath}/doc/
%dir %{site_runtimepath}/plugin/
%dir %{site_runtimepath}/syntax/
%dir %{site_runtimepath}/ftdetect/
%dir %{site_runtimepath}/after/
%dir %{site_runtimepath}/after/syntax/
%files data
# exclude common files
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/autoload/dist/ft.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/autoload/dist/script.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/colors/lists/default.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/syntax/nosyntax.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/syntax/resolv.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/syntax/sh.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/syntax/syncolor.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/syntax/synload.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/syntax/syntax.vim
%exclude %{_datadir}/vim/%{VIM_SUBDIR}/syntax/vim.vim
# data files
%{_datadir}/vim/%{VIM_SUBDIR}/autoload/*
%{_datadir}/vim/%{VIM_SUBDIR}/colors/*
%{_datadir}/vim/%{VIM_SUBDIR}/compiler/*
%{_datadir}/vim/%{VIM_SUBDIR}/doc/*
%{_datadir}/vim/%{VIM_SUBDIR}/ftplugin/*
%{_datadir}/vim/%{VIM_SUBDIR}/indent/*
%{_datadir}/vim/%{VIM_SUBDIR}/import/dist/*
%{_datadir}/vim/%{VIM_SUBDIR}/keymap/*
%{_datadir}/vim/%{VIM_SUBDIR}/lang/*
%{_datadir}/vim/%{VIM_SUBDIR}/macros/*
%{_datadir}/vim/%{VIM_SUBDIR}/pack/*
%{_datadir}/vim/%{VIM_SUBDIR}/plugin/*
%{_datadir}/vim/%{VIM_SUBDIR}/print/*
%{_datadir}/vim/%{VIM_SUBDIR}/skeletons/*
%{_datadir}/vim/%{VIM_SUBDIR}/spell/*
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/*
%{_datadir}/vim/%{VIM_SUBDIR}/tools/*
%{_datadir}/vim/%{VIM_SUBDIR}/tutor/*
%files data-common
# we can't currently own /etc/vimrc. If we keep owning it, an
# existing, unmodified vimrc would not be removed. That results in a
# duplicated definition of SKEL_spec().
# see also https://github.com/rpm-software-management/rpm/issues/1296
#%ghost %config(noreplace) %{_sysconfdir}/vimrc
%{_datadir}/vim/current
%dir %{_datadir}/vim/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/autoload/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/autoload/dist/
%dir %{_datadir}/vim/%{VIM_SUBDIR}/syntax/
%{_datadir}/vim/%{VIM_SUBDIR}/suse.vimrc
%{_datadir}/vim/%{VIM_SUBDIR}/autoload/dist/ft.vim
%{_datadir}/vim/%{VIM_SUBDIR}/autoload/dist/script.vim
%{_datadir}/vim/%{VIM_SUBDIR}/colors/lists/default.vim
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/nosyntax.vim
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/resolv.vim
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/sh.vim
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/syncolor.vim
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/synload.vim
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/syntax.vim
%{_datadir}/vim/%{VIM_SUBDIR}/syntax/vim.vim
%{_datadir}/vim/%{VIM_SUBDIR}/*.vim
%files -n gvim
%doc runtime/doc/gui_x11.txt
%ghost %config(missingok) %{_sysconfdir}/gvimrc
%if ! %{with libalternatives}
%ghost %{_sysconfdir}/alternatives/vim
%ghost %{_sysconfdir}/alternatives/vi
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/vi
%{_datadir}/libalternatives/vi/30.conf
%dir %{_datadir}/libalternatives/vim
%{_datadir}/libalternatives/vim/30.conf
%dir %{_datadir}/libalternatives/rvim
%{_datadir}/libalternatives/rvim/30.conf
%dir %{_datadir}/libalternatives/view
%{_datadir}/libalternatives/view/30.conf
%dir %{_datadir}/libalternatives/rview
%{_datadir}/libalternatives/rview/30.conf
%dir %{_datadir}/libalternatives/eview
%{_datadir}/libalternatives/eview/30.conf
%dir %{_datadir}/libalternatives/ex
%{_datadir}/libalternatives/ex/30.conf
%dir %{_datadir}/libalternatives/edit
%{_datadir}/libalternatives/edit/30.conf
%dir %{_datadir}/libalternatives/vimdiff
%{_datadir}/libalternatives/vimdiff/30.conf
%dir %{_datadir}/libalternatives/egvim
%{_datadir}/libalternatives/egvim/30.conf
%dir %{_datadir}/libalternatives/egview
%{_datadir}/libalternatives/egview/30.conf
%dir %{_datadir}/libalternatives/evim
%{_datadir}/libalternatives/evim/30.conf
%dir %{_datadir}/libalternatives/gex
%{_datadir}/libalternatives/gex/30.conf
%dir %{_datadir}/libalternatives/gvi
%{_datadir}/libalternatives/gvi/30.conf
%dir %{_datadir}/libalternatives/gview
%{_datadir}/libalternatives/gview/30.conf
%dir %{_datadir}/libalternatives/gvimdiff
%{_datadir}/libalternatives/gvimdiff/30.conf
%dir %{_datadir}/libalternatives/rgvim
%{_datadir}/libalternatives/rgvim/30.conf
%dir %{_datadir}/libalternatives/rgview
%{_datadir}/libalternatives/rgview/30.conf
%endif
%{_bindir}/vi
%{_bindir}/vim
%{_bindir}/egview
%{_bindir}/egvim
%{_bindir}/eview
%{_bindir}/evim
%{_bindir}/gex
%{_bindir}/gvi
%{_bindir}/gview
%{_bindir}/gvim
%{_bindir}/gvimdiff
%{_bindir}/rgview
%{_bindir}/rgvim
# menu icon
%{_datadir}/applications/gvim.desktop
%{_datadir}/icons/hicolor/*/apps/gvim.*
%doc %{_docdir}/gvim
%files small
%license LICENSE
%if ! %{with libalternatives}
%ghost %{_sysconfdir}/alternatives/vim
%ghost %{_sysconfdir}/alternatives/vi
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/vi
%{_datadir}/libalternatives/vi/19.conf
%dir %{_datadir}/libalternatives/vim
%{_datadir}/libalternatives/vim/19.conf
%endif
%{_bindir}/vi
%{_bindir}/vim
%{_bindir}/vim-small
%files -n xxd
%license LICENSE
%{_bindir}/xxd
%{_mandir}/man1/xxd.1%{?ext_man}
%changelog

10
vim132 Normal file
View File

@ -0,0 +1,10 @@
#!/bin/sh
#
# Shell script for use with UNIX
# Starts up Vim with the terminal in 132 column mode
# Only works on VT-100 terminals and lookalikes
# You need to have a termcap entry "vt100-w". Same as vt100 but 132 columns.
#
echo "[?3h"
TERM=vt100-w vim "$@"
echo "[?3l"

View File

@ -0,0 +1,13 @@
Index: vim-8.2.2411/src/configure.ac
===================================================================
--- vim-8.2.2411.orig/src/configure.ac
+++ vim-8.2.2411/src/configure.ac
@@ -1289,7 +1289,7 @@ eof
vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python"
fi
else
- vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
+ vi_cv_path_python_plibs="-lpython${vi_cv_var_python_version}"
dnl -- Check if the path contained in python_LINKFORSHARED is
dnl usable for vim build. If not, make and try other
dnl candidates.

161
vimrc_example1 Normal file
View File

@ -0,0 +1,161 @@
" Vim
" An example for a vimrc file.
"
" To use it, copy it to
" for Unix and OS/2: ~/.vimrc
" for Amiga: s:.vimrc
" for MS-DOS and Win32: $VIM\_vimrc
set nocompatible " Use Vim defaults (much better!)
set bs=2 " allow backspacing over everything in insert mode
set ai " always set autoindenting on
set backup " keep a backup file
set viminfo='20,\"50 " read/write a .viminfo file, don't store more
" than 50 lines of registers
:set showmatch " jump emacs style to matching bracket
"these characters can move past end of line
:set whichwrap=b,s,h,l
"default tabs are too wide IMO. uncomment to change them
" :set tabstop=6
" In text files, always limit the width of text to 78 characters
autocmd BufRead *.txt set tw=78
" 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
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
syntax on
set hlsearch
endif
augroup cprog
" Remove all cprog autocommands
au!
" When starting to edit a file:
" For *.c and *.h files set formatting of comments and set C-indenting on.
" For other files switch it off.
" Don't change the order, it's important that the line with * comes first.
autocmd BufRead * set formatoptions=tcql nocindent comments&
autocmd BufRead *.c,*.h set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
augroup END
augroup gzip
" Remove all gzip autocommands
au!
" Enable editing of gzipped files
" read: set binary mode before reading the file
" uncompress text in buffer after reading
" write: compress file after writing
" append: uncompress file, append, compress file
autocmd BufReadPre,FileReadPre *.gz set bin
autocmd BufReadPost,FileReadPost *.gz let ch_save = &ch|set ch=2
autocmd BufReadPost,FileReadPost *.gz '[,']!gunzip
autocmd BufReadPost,FileReadPost *.gz set nobin
autocmd BufReadPost,FileReadPost *.gz let &ch = ch_save|unlet ch_save
autocmd BufReadPost,FileReadPost *.gz execute ":doautocmd BufReadPost " . expand("%:r")
autocmd BufWritePost,FileWritePost *.gz !mv <afile> <afile>:r
autocmd BufWritePost,FileWritePost *.gz !gzip <afile>:r
autocmd FileAppendPre *.gz !gunzip <afile>
autocmd FileAppendPre *.gz !mv <afile>:r <afile>
autocmd FileAppendPost *.gz !mv <afile> <afile>:r
autocmd FileAppendPost *.gz !gzip <afile>:r
augroup END
"let bash_is_sh = 1
"let is_bash = 1
" Uncomment to turn off arrow keys. Using arrow keys is a good habit to
" get out of ...
":map <left> <Nop>
":map <right> <Nop>
":map <up> <Nop>
":map <down> <Nop>
":imap <left> <Nop>
":imap <right> <Nop>
":imap <up> <Nop>
":imap <down> <Nop>
" Some emacs/pico like keybindings for insert mode
":imap <C-A> <ESC>0i
":imap <C-E> <ESC>$a
":imap <C-P> <ESC>ki
":imap <C-N> <ESC>ji
":imap <C-B> <ESC>la
":imap <C-F> <ESC>ha
" Some highlighting definitions
" THis is the default.
" Doesn't use colours wisely IMO. Consider changing Repeat and Conditional
" to make them stand out a little better.
" There are two sets of defaults: for a dark and a light background.
if &background == "dark"
hi Comment term=bold ctermfg=Cyan guifg=#80a0ff
hi Constant 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 Type term=underline ctermfg=LightGreen guifg=#60ff60 gui=bold
hi Ignore ctermfg=black guifg=bg
else
hi Comment term=bold ctermfg=DarkBlue guifg=Blue
hi Constant term=underline ctermfg=DarkRed guifg=Magenta
hi Special term=bold ctermfg=DarkMagenta guifg=SlateBlue
hi Identifier term=underline ctermfg=DarkCyan guifg=DarkCyan
hi Statement term=bold ctermfg=Brown gui=bold guifg=Brown
hi PreProc term=underline ctermfg=DarkMagenta guifg=Purple
hi Type term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold
hi Ignore ctermfg=white guifg=bg
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
" Common groups that link to default highlighting.
" You can specify other highlighting easily.
hi link String Constant
hi link Character Constant
hi link Number Constant
hi link Boolean Constant
hi link Float Number
hi link Function Identifier
hi link Conditional Statement
hi link Repeat Statement
hi link Label Statement
hi link Operator Statement
hi link Keyword Statement
hi link Exception Statement
hi link Include PreProc
hi link Define PreProc
hi link Macro PreProc
hi link PreCondit PreProc
hi link StorageClass Type
hi link Structure Type
hi link Typedef Type
hi link Tag Special
hi link SpecialChar Special
hi link Delimiter Special
hi link SpecialComment Special
hi link Debug Special

1530
vimrc_example2 Normal file

File diff suppressed because it is too large Load Diff

38
vitmp.1 Normal file
View File

@ -0,0 +1,38 @@
.\" $Id: vitmp.1,v 1.2 2002/10/12 12:03:51 solar Exp $
.TH VITMP 1 "25 April 2002" "Openwall Project"
.SH NAME
vitmp \- edit temporary files
.SH SYNOPSIS
.B vitmp
.RI [ "VIM options" "] " FILE ...
.SH DESCRIPTION
.B vitmp
is a wrapper around the VIM editor which may be used to invoke the
editor in a way that is guaranteed to be suitable for editing temporary
files used with programs such as
.BR crontab (1)
and
.BR edquota (8).
The instance of the editor that is invoked is
.IR /bin/vi .
.PP
In particular, it is guaranteed that the file, if edited, will be
overwritten in place such that the modified contents may be read back
via a previously obtained file descriptor. Invoking the editor via
.B vitmp
also makes sure that no additional editor temporary files are used.
.PP
Please note that
.B vitmp
offers no crash recovery capabilities. If the editor crashes during
the overwrite, data may be lost.
.SH HISTORY
.B vitmp
first appeared in Openwall GNU/*/Linux 1.0.
.SH AUTHORS
Solar Designer <solar@owl.openwall.com>
.SH SEE ALSO
.BR crontab (1),
.BR vi (1),
.BR vim (1),
.BR edquota (8)

30
vitmp.c Normal file
View File

@ -0,0 +1,30 @@
/*
* This is a wrapper around the VIM editor which may be used to invoke
* the editor in a way that is guaranteed to be suitable for editing
* temporary files used with programs such as crontab(1) and edquota(8).
*
* Written by Solar Designer <solar@owl.openwall.com> and placed in the
* public domain.
*
* $Id: vitmp.c,v 1.2 2002/04/24 23:11:34 solar Exp $
*/
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main(int argc, const char * const *argv)
{
char *newargv[argc + 4]; /* GNU C */
newargv[0] = "/bin/vi";
/* No swap files, use memory only */
newargv[1] = "-n";
/* Don't make a backup before overwriting a file */
newargv[2] = "-c"; newargv[3] = "set nowritebackup";
memcpy(&newargv[4], &argv[1], argc * sizeof(char *));
execv(newargv[0], newargv);
perror("execv");
return 1;
}