blob: a8d26cdb1391da0cfc3512598fe905400bf58078 [file] [log] [blame]
Christian Brabandtb4ddc6c2024-01-02 16:51:11 +01001*pi_spec.txt* For Vim version 9.1. Last change: 2006 Apr 24
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
3by Gustavo Niemeyer ~
4
5This is a filetype plugin to work with rpm spec files.
6
7Currently, this Vim plugin allows you to easily update the %changelog
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00008section in RPM spec files. It will even create a section for you if it
9doesn't exist yet. If you've already inserted an entry today, it will
10give you the opportunity to just add a new item in today's entry. If you
Bram Moolenaar071d4272004-06-13 20:20:40 +000011don't provide a format string (|spec_chglog_format|), it'll ask you an
12email address and build a format string by itself.
13
141. How to use it |spec-how-to-use-it|
152. Customizing |spec-customizing|
16
17==============================================================================
181. How to use it *spec-how-to-use-it*
19
20The spec_chglog plugin provides a map like the following:
21
22 :map <buffer> <LocalLeader>c <Plug>SpecChangelog
23
24It means that you may run the plugin inside a spec file by pressing
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000025your maplocalleader key (default is '\') plus 'c'. If you do not have
Bram Moolenaar071d4272004-06-13 20:20:40 +000026|spec_chglog_format| set, the plugin will ask you for an email address
27to use in this edit session.
28
Bram Moolenaar07d4d732005-10-03 22:04:08 +000029Every time you run the plugin, it will check to see if the last entry in the
30changelog has been written today and by you. If the entry matches, it will
31just insert a new changelog item, otherwise it will create a new changelog
32entry. If you are running with |spec_chglog_release_info| enabled, it will
33also check if the name, version and release matches. The plugin is smart
34enough to ask you if it should update the package release, if you have not
35done so.
Bram Moolenaar071d4272004-06-13 20:20:40 +000036
37Setting a map *spec-setting-a-map*
38-------------
39
40As you should know, you can easily set a map to access any Vim command (or
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000041anything, for that matter). If you don't like the default map of
42<LocalLeader>c, you may just set up your own key. The following line
Bram Moolenaar071d4272004-06-13 20:20:40 +000043shows you how you could do this in your .vimrc file, mapping the plugin to
44the <F5> key:
45
46 au FileType spec map <buffer> <F5> <Plug>SpecChangelog
47
48Note: the plugin will respect your desire to change the default mapping
49 and won't set it.
50
51This command will add a map only in the spec file buffers.
52
53
54==============================================================================
552. Customizing *spec-customizing*
56
57The format string *spec_chglog_format*
58-----------------
59
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000060You can easily customize how your spec file entry will look like. To do
Bram Moolenaar071d4272004-06-13 20:20:40 +000061this just set the variable "spec_chglog_format" in your .vimrc file like
62this: >
63
64 let spec_chglog_format = "%a %b %d %Y My Name <my@email.com>"
65
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000066Note that "%a %b %d %Y" is the most used time format. If you don't provide
Bram Moolenaar071d4272004-06-13 20:20:40 +000067a format string, when you run the SpecChangelog command for the first
68time, it will ask you an email address and build the |spec_chglog_format|
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000069variable for you. This way, you will only need to provide your email
Bram Moolenaar071d4272004-06-13 20:20:40 +000070address once.
71
72To discover which format options you can use, take a look at the strftime()
73function man page.
74
75Where to insert new items *spec_chglog_prepend*
76-------------------------
77
78The plugin will usually insert new %changelog entry items (note that it's
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000079not the entry itself) after the existing ones. If you set the
Bram Moolenaar071d4272004-06-13 20:20:40 +000080spec_chglog_prepend variable >
81
82 let spec_chglog_prepend = 1
83
84it will insert new items before the existing ones.
85
86Inserting release info *spec_chglog_release_info*
87----------------------
88
89If you want, the plugin may automatically insert release information
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000090on each changelog entry. One advantage of turning this feature on is
Bram Moolenaar071d4272004-06-13 20:20:40 +000091that it may control if the release has been updated after the last
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000092change in the package or not. If you have not updated the package
Bram Moolenaar071d4272004-06-13 20:20:40 +000093version or release, it will ask you if it should update the package
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +000094release for you. To turn this feature on, just insert the following
Bram Moolenaar071d4272004-06-13 20:20:40 +000095code in your .vimrc: >
96
97 let spec_chglog_release_info = 1
98
99Then, the first item in your changelog entry will be something like: >
100
101 + name-1.0-1cl
102
103If you don't like the release updating feature and don't want to answer
104"No" each time it detects an old release, you may disable it with >
105
106 let spec_chglog_never_increase_release = 1
107
108
109Good luck!!
110
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200111vim:tw=78:ts=8:noet:ft=help:norl: