xref: /netbsd-src/external/bsd/nvi/docs/internals/autowrite (revision 4391d5e9d4f291db41e3b3ba26a01b5e51364aae)
1#	@(#)autowrite	8.3 (Berkeley) 2/17/95
2
3Vi autowrite behavior, the fields with *'s are "don't cares".
4
5=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6Commands that are affected only by autowrite:
7
8Command	File		Autowrite?	Action:
9	modified?
10-----------------------------------------------
11^Z	Y		Y		Write file and suspend.
12^Z	Y		N		Suspend.
13^Z	N		*		Suspend.
14
15# This behavior is NOT identical to :edit.
16^^	Y		Y		Write file and jump.
17^^	Y		N		Error.
18^^	N		*		Jump.
19
20# The new nvi command ^T (:tagpop) behaves identically to ^].
21# This behavior is identical to :tag, :tagpop, and :tagpush with
22# force always set to N.
23^]	Y		Y		Write file and jump.
24^]	Y		N		Error.
25^]	N		*		Jump.
26
27# There's no way to specify a force flag to the '!' command.
28:!	Y		Y		Write file and execute.
29:!	Y		N		Warn (if warn option) and execute.
30:!	N		*		Execute.
31
32=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
33Commands that are affected by both autowrite and force:
34
35NOTE: the "force" flag is never passed on, i.e. the write
36to the file caused by the autowrite flag is never forced.
37
38Command	File		Autowrite?	Force? 	Action:
39	modified?			(!)
40-------------------------------------------------------
41# The first rule (YYY) is historic practice, but seems wrong.
42# In nvi, :next and :prev commands behave identically to :rewind.
43:next 	Y		Y		Y	Write changes and jump.
44:next 	Y		Y		N	Write changes and jump.
45:next 	Y		N		Y	Abandon changes and jump.
46:next 	Y		N		N	Error.
47:next 	N		*		*	Jump.
48
49:rewind	Y		Y		Y	Abandon changes and jump.
50:rewind	Y		Y		N	Write changes and jump.
51:rewind	Y		N		Y	Abandon changes and jump.
52:rewind	Y		N		N	Error.
53:rewind	N		*		*	Jump.
54
55# The new nvi commands, :tagpop and :tagtop, behave identically to :tag.
56# Note, this behavior is the same as :rewind and friends, as well.
57:tag	Y		Y		Y	Abandon changes and jump.
58:tag	Y		Y		N	Write changes and jump.
59:tag	Y		N		Y	Abandon changes and jump.
60:tag	Y		N		N	Error.
61:tag	N		*		*	Jump.
62
63# The command :suspend behaves identically to :stop.
64:stop	Y		Y		Y	Suspend.
65:stop	Y		Y		N	Write changes and suspend.
66:stop	Y		N		Y	Suspend.
67:stop	Y		N		N	Suspend.
68:stop	N		*		*	Suspend.
69
70=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
71Commands that might be affected by autowrite, but aren't:
72
73Command	File		Autowrite?	Force? 	Action:
74	modified?			(!)
75-------------------------------------------------------
76#:ex, and :vi (executed while in vi mode) behave identically to :edit.
77:edit 	Y		*		Y	Abandon changes and jump.
78:edit 	Y		*		N	Error.
79:edit 	N		*		*	Jump.
80
81:quit	Y		*		Y	Quit.
82:quit	Y		*		N	Error.
83:quit	N		*		*	Quit.
84
85:shell	*		*		*	Execute shell.
86
87:xit	Y		*		*	Write changes and exit.
88:xit	N		*		*	Exit.
89