Accepting request 1190646 from home:cboltz:branches:editors

- Update apparmor.vim to latest version (from AppArmor 4.0.2)
  - add support for "all" and "userns" rules, and new profile flags

OBS-URL: https://build.opensuse.org/request/show/1190646
OBS-URL: https://build.opensuse.org/package/show/editors/vim?expand=0&rev=863
This commit is contained in:
Martin Schreiner 2024-07-31 17:44:04 +00:00 committed by Git OBS Bridge
commit e67ab2a476
44 changed files with 21660 additions and 0 deletions

25
.gitattributes vendored Normal file
View File

@ -0,0 +1,25 @@
## 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
## Specific LFS patterns
gvim.svg filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

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>

294
apparmor.vim Normal file
View File

@ -0,0 +1,294 @@
" 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-2023 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.
"
" If you want to report a bug for apparmor.vim, please do so at
" - https://gitlab.com/apparmor/apparmor/ or
" - https://bugzilla.opensuse.org (assign it to suse-beta[AT]cboltz.de)
" ----------------------------------------------------------------------
"
" 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 sdAll ctermfg=darkred ctermbg=yellow
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 sdUserns ctermfg=darkred
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 (accidentally ;-) 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 /#.*/
" List of all (supported) rules inside a profile.
" XXX When adding support for a new rule type, also add it here. XXX
" XXX Otherwise it will be highlighted as an error. XXX
syn cluster sdEntry contains=sdAll,sdEntryWriteExec,sdEntryR,sdEntryW,sdEntryIX,sdEntryPX,sdEntryPXe,sdEntryUX,sdEntryUXe,sdEntryM,sdCap,sdSetCap,sdExtHat,sdRLimit,sdNetwork,sdNetworkDanger,sdEntryChangeProfile,sdUserns
" TODO: support audit and deny keywords for all rules (not only for files)
" TODO: highlight audit and deny keywords everywhere
" 'all' rule
syn match sdAll /\v^\s*(audit\s+)?(deny\s+|allow\s+)?all\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" 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
" userns
syn match sdUserns /\v^\s*(audit\s+)?(deny\s+|allow\s+)?userns(\s+create)?\s*,(\s*$|(\s*#.*$)\@=)/ contains=sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
" 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|unconfined|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|unconfined|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|unconfined|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|unconfined|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|unconfined|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|unconfined|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|unconfined|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|unconfined|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|unconfined|audit|attach_disconnected|no_attach_disconnected|chroot_attach|chroot_no_attach|chroot_relative|namespace_relative|mediate_deleted|delegate_deleted)(\s*,\s*(complain|unconfined|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

13
gvim.desktop Normal file
View File

@ -0,0 +1,13 @@
[Desktop Entry]
Encoding=UTF-8
Name=Vi IMproved
Categories=GTK;Application;Utility;TextEditor;
Keywords=editor;gvim;vim;
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

3
gvim.svg Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b53a846616930af3f3ec5c8fca0f64e3cb513cf6b129460e4567e5b0fe83b71e
size 18168

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 -p1
%build
%configure
%make_build
%install
%make_install
%check
%make_build check
%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,56 @@
Index: vim-9.1.0330/runtime/filetype.vim
===================================================================
--- vim-9.1.0330.orig/runtime/filetype.vim
+++ vim-9.1.0330/runtime/filetype.vim
@@ -2313,6 +2313,10 @@ au BufNewFile,BufRead *.stp setf stp
" Standard ML
au BufNewFile,BufRead *.sml setf sml
+" FreeMarker templates
+au BufNewFile,BufRead *.ftl setf ftl
+
+
" Sratus VOS command macro
au BufNewFile,BufRead *.cm setf voscm
Index: vim-9.1.0330/runtime/syntax/ftl.vim
===================================================================
--- /dev/null
+++ vim-9.1.0330/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-9.1.0151/runtime/filetype.vim
===================================================================
--- vim-9.1.0151.orig/runtime/filetype.vim
+++ vim-9.1.0151/runtime/filetype.vim
@@ -2122,7 +2122,7 @@ au BufRead,BufNewFile *.sol setf solid
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-9.1.0151/runtime/syntax/spec.vim
===================================================================
--- vim-9.1.0151.orig/runtime/syntax/spec.vim
+++ vim-9.1.0151/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\|SourceLicense\|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\|SourceLicense\|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\|Freshens\|EssentialFor\)' 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-9.1.0530/src/main.c
===================================================================
--- vim-9.1.0530.orig/src/main.c
+++ vim-9.1.0530/src/main.c
@@ -3251,7 +3251,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,

3
vim-9.1.0512.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:df114f987c6c73d102800dd77416c3018c8dfa61addb7ba05954cabaa1a301d5
size 17950920

3
vim-9.1.0636.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e48a5b0d6f8056ae46ea556b58114e4006daf95d6c8c5e06e33f4601c2e5195e
size 18048438

17758
vim.changes Normal file

File diff suppressed because it is too large Load Diff

784
vim.spec Normal file
View File

@ -0,0 +1,784 @@
#
# 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 0636
%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
Source99: %{name}-7.4-rpmlintrc
Patch1: %{name}-7.4-disable_lang_no.patch
Patch2: %{name}-7.3-gvimrc_fontset.patch
Patch3: %{name}-7.3-sh_is_bash.patch
Patch4: %{name}-7.3-filetype_ftl.patch
Patch5: %{name}-7.3-use_awk.patch
Patch6: %{name}-7.3-name_vimrc.patch
Patch7: %{name}-7.3-mktemp_tutor.patch
Patch8: %{name}-7.4-filetype_apparmor.patch
Patch9: %{name}-7.3-filetype_spec.patch
Patch10: %{name}-7.3-filetype_changes.patch
Patch11: %{name}-7.4-filetype_mine.patch
Patch12: %{name}73-no-static-libpython.patch
Patch13: %{name}-8.0.1568-defaults.patch
Patch14: %{name}-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 1 -p1
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
%patch -P 7 -p1
cp %{SOURCE23} runtime/syntax/apparmor.vim
%patch -P 8 -p1
%patch -P 9 -p1
%patch -P 10 -p1
%patch -P 11 -p1
%patch -P 12 -p1
%patch -P 13 -p1
%patch -P 14 -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;
}