Mercurial > vim
annotate runtime/doc/usr_11.txt @ 32393:ba9862df7d13 v9.0.1528
patch 9.0.1528: libsodium encryption is only used with "huge" features
Commit: https://github.com/vim/vim/commit/dda01c05c2ded3f0d11703bd983a19b6ca7d5055
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon May 8 22:11:07 2023 +0100
patch 9.0.1528: libsodium encryption is only used with "huge" features
Problem: Libsodium encryption is only used with "huge" features, even when
manually enabled through configure. (Tony Mechelynck)
Solution: Remove the condition on FEAT_HUGE.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 08 May 2023 23:15:03 +0200 |
parents | f8116058ca76 |
children | 4635e43f2c6f |
rev | line source |
---|---|
29314 | 1 *usr_11.txt* For Vim version 9.0. Last change: 2020 Oct 25 |
7 | 2 |
3 VIM USER MANUAL - by Bram Moolenaar | |
4 | |
5 Recovering from a crash | |
6 | |
7 | |
8 Did your computer crash? And you just spent hours editing? Don't panic! Vim | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
9 stores enough information to be able to restore most of your work. This |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
10 chapter shows you how to get your work back and explains how the swap file is |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
11 used. |
7 | 12 |
13 |11.1| Basic recovery | |
14 |11.2| Where is the swap file? | |
15 |11.3| Crashed or not? | |
16 |11.4| Further reading | |
17 | |
18 Next chapter: |usr_12.txt| Clever tricks | |
19 Previous chapter: |usr_10.txt| Making big changes | |
20 Table of contents: |usr_toc.txt| | |
21 | |
22 ============================================================================== | |
23 *11.1* Basic recovery | |
24 | |
25 In most cases recovering a file is quite simple, assuming you know which file | |
26 you were editing (and the harddisk is still working). Start Vim on the file, | |
27 with the "-r" argument added: > | |
28 | |
29 vim -r help.txt | |
30 | |
31 Vim will read the swap file (used to store text you were editing) and may read | |
2162
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
32 bits and pieces of the original file. If Vim recovered your changes you will |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
33 see these messages (with different file names, of course): |
7 | 34 |
35 Using swap file ".help.txt.swp" ~ | |
36 Original file "~/vim/runtime/doc/help.txt" ~ | |
323 | 37 Recovery completed. You should check if everything is OK. ~ |
7 | 38 (You might want to write out this file under another name ~ |
39 and run diff with the original file to check for changes) ~ | |
2162
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
40 You may want to delete the .swp file now. ~ |
7 | 41 |
42 To be on the safe side, write this file under another name: > | |
43 | |
44 :write help.txt.recovered | |
45 | |
46 Compare the file with the original file to check if you ended up with what you | |
2162
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
47 expected. Vimdiff is very useful for this |08.7|. For example: > |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
48 |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
49 :write help.txt.recovered |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
50 :edit # |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
51 :diffsp help.txt |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
52 |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
53 Watch out for the original file to contain a more recent version (you saved |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
54 the file just before the computer crashed). And check that no lines are |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
55 missing (something went wrong that Vim could not recover). |
7 | 56 If Vim produces warning messages when recovering, read them carefully. |
57 This is rare though. | |
58 | |
2162
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
59 If the recovery resulted in text that is exactly the same as the file |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
60 contents, you will get this message: |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
61 |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
62 Using swap file ".help.txt.swp" ~ |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
63 Original file "~/vim/runtime/doc/help.txt" ~ |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
64 Recovery completed. Buffer contents equals file contents. ~ |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
65 You may want to delete the .swp file now. ~ |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
66 |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
67 This usually happens if you already recovered your changes, or you wrote the |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
68 file after making changes. It is safe to delete the swap file now. |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
69 |
0527eb0f6918
After recovery check if the text changed. If it did mark the buffer as
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
70 It is normal that the last few changes can not be recovered. Vim flushes the |
7 | 71 changes to disk when you don't type for about four seconds, or after typing |
72 about two hundred characters. This is set with the 'updatetime' and | |
73 'updatecount' options. Thus when Vim didn't get a chance to save itself when | |
74 the system went down, the changes after the last flush will be lost. | |
75 | |
76 If you were editing without a file name, give an empty string as argument: > | |
77 | |
78 vim -r "" | |
79 | |
80 You must be in the right directory, otherwise Vim can't find the swap file. | |
81 | |
82 ============================================================================== | |
83 *11.2* Where is the swap file? | |
84 | |
85 Vim can store the swap file in several places. Normally it is in the same | |
86 directory as the original file. To find it, change to the directory of the | |
87 file, and use: > | |
88 | |
89 vim -r | |
90 | |
91 Vim will list the swap files that it can find. It will also look in other | |
92 directories where the swap file for files in the current directory may be | |
93 located. It will not find swap files in any other directories though, it | |
94 doesn't search the directory tree. | |
95 The output could look like this: | |
96 | |
97 Swap files found: ~ | |
98 In current directory: ~ | |
99 1. .main.c.swp ~ | |
100 owned by: mool dated: Tue May 29 21:00:25 2001 ~ | |
101 file name: ~mool/vim/vim6/src/main.c ~ | |
102 modified: YES ~ | |
103 user name: mool host name: masaka.moolenaar.net ~ | |
104 process ID: 12525 ~ | |
105 In directory ~/tmp: ~ | |
106 -- none -- ~ | |
107 In directory /var/tmp: ~ | |
108 -- none -- ~ | |
109 In directory /tmp: ~ | |
110 -- none -- ~ | |
111 | |
112 If there are several swap files that look like they may be the one you want to | |
113 use, a list is given of these swap files and you are requested to enter the | |
114 number of the one you want to use. Carefully look at the dates to decide | |
115 which one you want to use. | |
116 In case you don't know which one to use, just try them one by one and check | |
117 the resulting files if they are what you expected. | |
118 | |
119 | |
120 USING A SPECIFIC SWAP FILE | |
121 | |
122 If you know which swap file needs to be used, you can recover by giving the | |
15729 | 123 swap file name. Vim will then find out the name of the original file from |
7 | 124 the swap file. |
125 | |
126 Example: > | |
127 vim -r .help.txt.swo | |
128 | |
129 This is also handy when the swap file is in another directory than expected. | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
130 Vim recognizes files with the pattern *.s[uvw][a-z] as swap files. |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
131 |
7 | 132 If this still does not work, see what file names Vim reports and rename the |
133 files accordingly. Check the 'directory' option to see where Vim may have | |
134 put the swap file. | |
135 | |
136 Note: | |
137 Vim tries to find the swap file by searching the directories in the | |
138 'dir' option, looking for files that match "filename.sw?". If | |
139 wildcard expansion doesn't work (e.g., when the 'shell' option is | |
140 invalid), Vim does a desperate try to find the file "filename.swp". | |
141 If that fails too, you will have to give the name of the swapfile | |
142 itself to be able to recover the file. | |
143 | |
144 ============================================================================== | |
145 *11.3* Crashed or not? *ATTENTION* *E325* | |
146 | |
147 Vim tries to protect you from doing stupid things. Suppose you innocently | |
148 start editing a file, expecting the contents of the file to show up. Instead, | |
149 Vim produces a very long message: | |
150 | |
151 E325: ATTENTION ~ | |
152 Found a swap file by the name ".main.c.swp" ~ | |
153 owned by: mool dated: Tue May 29 21:09:28 2001 ~ | |
154 file name: ~mool/vim/vim6/src/main.c ~ | |
155 modified: no ~ | |
156 user name: mool host name: masaka.moolenaar.net ~ | |
157 process ID: 12559 (still running) ~ | |
158 While opening file "main.c" ~ | |
159 dated: Tue May 29 19:46:12 2001 ~ | |
160 ~ | |
161 (1) Another program may be editing the same file. ~ | |
162 If this is the case, be careful not to end up with two ~ | |
163 different instances of the same file when making changes. ~ | |
164 Quit, or continue with caution. ~ | |
165 ~ | |
166 (2) An edit session for this file crashed. ~ | |
167 If this is the case, use ":recover" or "vim -r main.c" ~ | |
168 to recover the changes (see ":help recovery"). ~ | |
169 If you did this already, delete the swap file ".main.c.swp" ~ | |
170 to avoid this message. ~ | |
171 | |
172 You get this message, because, when starting to edit a file, Vim checks if a | |
173 swap file already exists for that file. If there is one, there must be | |
174 something wrong. It may be one of these two situations. | |
175 | |
176 1. Another edit session is active on this file. Look in the message for the | |
177 line with "process ID". It might look like this: | |
178 | |
179 process ID: 12559 (still running) ~ | |
180 | |
181 The text "(still running)" indicates that the process editing this file | |
182 runs on the same computer. When working on a non-Unix system you will not | |
183 get this extra hint. When editing a file over a network, you may not see | |
184 the hint, because the process might be running on another computer. In | |
185 those two cases you must find out what the situation is yourself. | |
186 If there is another Vim editing the same file, continuing to edit will | |
187 result in two versions of the same file. The one that is written last will | |
188 overwrite the other one, resulting in loss of changes. You better quit | |
189 this Vim. | |
190 | |
191 2. The swap file might be the result from a previous crash of Vim or the | |
192 computer. Check the dates mentioned in the message. If the date of the | |
193 swap file is newer than the file you were editing, and this line appears: | |
194 | |
195 modified: YES ~ | |
196 | |
197 Then you very likely have a crashed edit session that is worth recovering. | |
198 If the date of the file is newer than the date of the swap file, then | |
199 either it was changed after the crash (perhaps you recovered it earlier, | |
200 but didn't delete the swap file?), or else the file was saved before the | |
201 crash but after the last write of the swap file (then you're lucky: you | |
237 | 202 don't even need that old swap file). Vim will warn you for this with this |
7 | 203 extra line: |
204 | |
205 NEWER than swap file! ~ | |
206 | |
207 | |
16453
4e9bea9b8025
patch 8.1.1231: asking about existing swap file unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
15878
diff
changeset
|
208 NOTE that in the following situation Vim knows the swap file is not useful and |
4e9bea9b8025
patch 8.1.1231: asking about existing swap file unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
15878
diff
changeset
|
209 will automatically delete it: |
4e9bea9b8025
patch 8.1.1231: asking about existing swap file unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
15878
diff
changeset
|
210 - The file is a valid swap file (Magic number is correct). |
4e9bea9b8025
patch 8.1.1231: asking about existing swap file unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
15878
diff
changeset
|
211 - The flag that the file was modified is not set. |
4e9bea9b8025
patch 8.1.1231: asking about existing swap file unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
15878
diff
changeset
|
212 - The process is not running. |
4e9bea9b8025
patch 8.1.1231: asking about existing swap file unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
15878
diff
changeset
|
213 |
20965 | 214 You can programmatically deal with this situation with the |FileChangedShell| |
19163 | 215 autocommand event. |
16453
4e9bea9b8025
patch 8.1.1231: asking about existing swap file unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
15878
diff
changeset
|
216 |
19163 | 217 |
218 UNREADABLE SWAP FILE ~ | |
7 | 219 |
220 Sometimes the line | |
221 | |
222 [cannot be read] ~ | |
223 | |
237 | 224 will appear under the name of the swap file. This can be good or bad, |
7 | 225 depending on circumstances. |
226 | |
227 It is good if a previous editing session crashed without having made any | |
237 | 228 changes to the file. Then a directory listing of the swap file will show |
229 that it has zero bytes. You may delete it and proceed. | |
7 | 230 |
237 | 231 It is slightly bad if you don't have read permission for the swap file. You |
232 may want to view the file read-only, or quit. On multi-user systems, if you | |
7 | 233 yourself did the last changes under a different login name, a logout |
237 | 234 followed by a login under that other name might cure the "read error". Or |
7 | 235 else you might want to find out who last edited (or is editing) the file and |
236 have a talk with them. | |
237 | |
238 It is very bad if it means there is a physical read error on the disk | |
239 containing the swap file. Fortunately, this almost never happens. | |
240 You may want to view the file read-only at first (if you can), to see the | |
241 extent of the changes that were "forgotten". If you are the one in charge of | |
242 that file, be prepared to redo your last changes. | |
243 | |
244 | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
245 WHAT TO DO? *swap-exists-choices* |
7 | 246 |
13735 | 247 If dialogs are supported you will be asked to select one of six choices: |
7 | 248 |
249 Swap file ".main.c.swp" already exists! ~ | |
250 [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort, (D)elete it: ~ | |
251 | |
252 O Open the file readonly. Use this when you just want to view the file and | |
253 don't need to recover it. You might want to use this when you know someone | |
254 else is editing the file, but you just want to look in it and not make | |
255 changes. | |
256 | |
257 E Edit the file anyway. Use this with caution! If the file is being edited | |
258 in another Vim, you might end up with two versions of the file. Vim will | |
21250 | 259 try to warn you when this happens, but better be safe than sorry. |
7 | 260 |
261 R Recover the file from the swap file. Use this if you know that the swap | |
262 file contains changes that you want to recover. | |
263 | |
264 Q Quit. This avoids starting to edit the file. Use this if there is another | |
265 Vim editing the same file. | |
266 When you just started Vim, this will exit Vim. When starting Vim with | |
267 files in several windows, Vim quits only if there is a swap file for the | |
268 first one. When using an edit command, the file will not be loaded and you | |
269 are taken back to the previously edited file. | |
270 | |
271 A Abort. Like Quit, but also abort further commands. This is useful when | |
272 loading a script that edits several files, such as a session with multiple | |
273 windows. | |
274 | |
275 D Delete the swap file. Use this when you are sure you no longer need it. | |
276 For example, when it doesn't contain changes, or when the file itself is | |
277 newer than the swap file. | |
278 On Unix this choice is only offered when the process that created the | |
279 swap file does not appear to be running. | |
280 | |
281 If you do not get the dialog (you are running a version of Vim that does not | |
282 support it), you will have to do it manually. To recover the file, use this | |
283 command: > | |
284 | |
285 :recover | |
286 | |
287 | |
288 Vim cannot always detect that a swap file already exists for a file. This is | |
289 the case when the other edit session puts the swap files in another directory | |
290 or when the path name for the file is different when editing it on different | |
291 machines. Therefore, don't rely on Vim always warning you. | |
292 | |
293 If you really don't want to see this message, you can add the 'A' flag to the | |
294 'shortmess' option. But it's very unusual that you need this. | |
295 | |
2267 | 296 For remarks about encryption and the swap file, see |:recover-crypt|. |
22723 | 297 For programmatic access to the swap file, see |swapinfo()|. |
2267 | 298 |
7 | 299 ============================================================================== |
300 *11.4* Further reading | |
301 | |
302 |swap-file| An explanation about where the swap file will be created and | |
303 what its name is. | |
304 |:preserve| Manually flushing the swap file to disk. | |
305 |:swapname| See the name of the swap file for the current file. | |
306 'updatecount' Number of key strokes after which the swap file is flushed to | |
307 disk. | |
308 'updatetime' Timeout after which the swap file is flushed to disk. | |
309 'swapsync' Whether the disk is synced when the swap file is flushed. | |
310 'directory' List of directory names where to store the swap file. | |
311 'maxmem' Limit for memory usage before writing text to the swap file. | |
312 'maxmemtot' Same, but for all files in total. | |
313 | |
314 ============================================================================== | |
315 | |
316 Next chapter: |usr_12.txt| Clever tricks | |
317 | |
14519 | 318 Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl: |