/
usr
/
share
/
vim
/
vim82
/
doc
/
/usr/share/vim/vim82/doc
mkdir
upload
Name
Size
Mode
Actions
arabic.txt
12204
0644
edit
dl
rm
autocmd.txt
74314
0644
edit
dl
rm
builtin.txt
389075
0644
edit
dl
rm
change.txt
79214
0644
edit
dl
rm
channel.txt
50387
0644
edit
dl
rm
cmdline.txt
50130
0644
edit
dl
rm
debug.txt
6896
0644
edit
dl
rm
debugger.txt
5443
0644
edit
dl
rm
develop.txt
22861
0644
edit
dl
rm
diff.txt
17515
0644
edit
dl
rm
digraph.txt
62082
0644
edit
dl
rm
editing.txt
75319
0644
edit
dl
rm
eval.txt
178282
0644
edit
dl
rm
farsi.txt
523
0644
edit
dl
rm
filetype.txt
27998
0644
edit
dl
rm
fold.txt
24139
0644
edit
dl
rm
ft_ada.txt
18246
0644
edit
dl
rm
ft_ps1.txt
2187
0644
edit
dl
rm
ft_raku.txt
4183
0644
edit
dl
rm
ft_rust.txt
9596
0644
edit
dl
rm
ft_sql.txt
30697
0644
edit
dl
rm
gui.txt
53076
0644
edit
dl
rm
gui_w32.txt
19117
0644
edit
dl
rm
gui_x11.txt
29906
0644
edit
dl
rm
hangulin.txt
598
0644
edit
dl
rm
hebrew.txt
5666
0644
edit
dl
rm
help.txt
9098
0644
edit
dl
rm
help.txt.vim-tiny
1431
0644
edit
dl
rm
helphelp.txt
15933
0644
edit
dl
rm
howto.txt
2916
0644
edit
dl
rm
if_cscop.txt
19325
0644
edit
dl
rm
if_lua.txt
18546
0644
edit
dl
rm
if_mzsch.txt
11941
0644
edit
dl
rm
if_ole.txt
7361
0644
edit
dl
rm
if_perl.txt
11281
0644
edit
dl
rm
if_pyth.txt
38644
0644
edit
dl
rm
if_ruby.txt
8516
0644
edit
dl
rm
if_sniff.txt
271
0644
edit
dl
rm
if_tcl.txt
22941
0644
edit
dl
rm
indent.txt
41902
0644
edit
dl
rm
index.txt
81125
0644
edit
dl
rm
insert.txt
87568
0644
edit
dl
rm
intro.txt
38934
0644
edit
dl
rm
map.txt
74464
0644
edit
dl
rm
mbyte.txt
59640
0644
edit
dl
rm
message.txt
31671
0644
edit
dl
rm
mlang.txt
8187
0644
edit
dl
rm
motion.txt
51891
0644
edit
dl
rm
netbeans.txt
37982
0644
edit
dl
rm
options.txt
401254
0644
edit
dl
rm
os_390.txt
4749
0644
edit
dl
rm
os_amiga.txt
5466
0644
edit
dl
rm
os_beos.txt
293
0644
edit
dl
rm
os_dos.txt
15496
0644
edit
dl
rm
os_haiku.txt
8496
0644
edit
dl
rm
os_mac.txt
6856
0644
edit
dl
rm
os_mint.txt
391
0644
edit
dl
rm
os_msdos.txt
523
0644
edit
dl
rm
os_os2.txt
299
0644
edit
dl
rm
os_qnx.txt
4071
0644
edit
dl
rm
os_risc.txt
328
0644
edit
dl
rm
os_unix.txt
2603
0644
edit
dl
rm
os_vms.txt
32903
0644
edit
dl
rm
os_win32.txt
14404
0644
edit
dl
rm
pattern.txt
62949
0644
edit
dl
rm
pi_getscript.txt
21082
0644
edit
dl
rm
pi_gzip.txt
1294
0644
edit
dl
rm
pi_logipat.txt
4196
0644
edit
dl
rm
pi_netrw.txt
181824
0644
edit
dl
rm
pi_paren.txt
2274
0644
edit
dl
rm
pi_spec.txt
4127
0644
edit
dl
rm
pi_tar.txt
7247
0644
edit
dl
rm
pi_vimball.txt
11859
0644
edit
dl
rm
pi_zip.txt
7491
0644
edit
dl
rm
popup.txt
39689
0644
edit
dl
rm
print.txt
31209
0644
edit
dl
rm
quickfix.txt
83331
0644
edit
dl
rm
quickref.txt
72492
0644
edit
dl
rm
quotes.txt
12748
0644
edit
dl
rm
README.Debian
324
0644
edit
dl
rm
recover.txt
10720
0644
edit
dl
rm
remote.txt
8420
0644
edit
dl
rm
repeat.txt
43565
0644
edit
dl
rm
rileft.txt
4938
0644
edit
dl
rm
russian.txt
3024
0644
edit
dl
rm
scroll.txt
13781
0644
edit
dl
rm
sign.txt
26870
0644
edit
dl
rm
spell.txt
64095
0644
edit
dl
rm
sponsor.txt
6803
0644
edit
dl
rm
starting.txt
73599
0644
edit
dl
rm
syntax.txt
229795
0644
edit
dl
rm
tabpage.txt
17248
0644
edit
dl
rm
tags
362670
0644
edit
dl
rm
tags.vim-tiny
30
0644
edit
dl
rm
tagsrch.txt
40278
0644
edit
dl
rm
term.txt
49822
0644
edit
dl
rm
terminal.txt
57098
0644
edit
dl
rm
testing.txt
16678
0644
edit
dl
rm
textprop.txt
16395
0644
edit
dl
rm
tips.txt
21089
0644
edit
dl
rm
todo.txt
307147
0644
edit
dl
rm
uganda.txt
14028
0644
edit
dl
rm
undo.txt
16584
0644
edit
dl
rm
usr_01.txt
7081
0644
edit
dl
rm
usr_02.txt
24229
0644
edit
dl
rm
usr_03.txt
23872
0644
edit
dl
rm
usr_04.txt
19131
0644
edit
dl
rm
usr_05.txt
27023
0644
edit
dl
rm
usr_06.txt
10638
0644
edit
dl
rm
usr_07.txt
15995
0644
edit
dl
rm
usr_08.txt
19379
0644
edit
dl
rm
usr_09.txt
11502
0644
edit
dl
rm
usr_10.txt
29200
0644
edit
dl
rm
usr_11.txt
13025
0644
edit
dl
rm
usr_12.txt
13433
0644
edit
dl
rm
usr_20.txt
13733
0644
edit
dl
rm
usr_21.txt
18456
0644
edit
dl
rm
usr_22.txt
14999
0644
edit
dl
rm
usr_23.txt
12744
0644
edit
dl
rm
usr_24.txt
20827
0644
edit
dl
rm
usr_25.txt
19176
0644
edit
dl
rm
usr_26.txt
8259
0644
edit
dl
rm
usr_27.txt
17709
0644
edit
dl
rm
usr_28.txt
16020
0644
edit
dl
rm
usr_29.txt
20121
0644
edit
dl
rm
usr_30.txt
22658
0644
edit
dl
rm
usr_31.txt
10399
0644
edit
dl
rm
usr_32.txt
5378
0644
edit
dl
rm
usr_40.txt
23195
0644
edit
dl
rm
usr_41.txt
95626
0644
edit
dl
rm
usr_42.txt
13853
0644
edit
dl
rm
usr_43.txt
7409
0644
edit
dl
rm
usr_44.txt
28948
0644
edit
dl
rm
usr_45.txt
17688
0644
edit
dl
rm
usr_46.txt
7096
0644
edit
dl
rm
usr_90.txt
16836
0644
edit
dl
rm
usr_toc.txt
9505
0644
edit
dl
rm
various.txt
31483
0644
edit
dl
rm
version4.txt
13911
0644
edit
dl
rm
version5.txt
308533
0644
edit
dl
rm
version6.txt
576942
0644
edit
dl
rm
version7.txt
674703
0644
edit
dl
rm
version8.txt
1940466
0644
edit
dl
rm
vim9.txt
68612
0644
edit
dl
rm
visual.txt
21846
0644
edit
dl
rm
vi_diff.txt
57428
0644
edit
dl
rm
windows.txt
55898
0644
edit
dl
rm
workshop.txt
371
0644
edit
dl
rm
Edit:
/usr/share/vim/vim82/doc/recover.txt
(10720B)
*recover.txt* For Vim version 8.2. Last change: 2020 Aug 15 VIM REFERENCE MANUAL by Bram Moolenaar Recovery after a crash *crash-recovery* You have spent several hours typing in that text that has to be finished next morning, and then disaster strikes: Your computer crashes. DON'T PANIC! You can recover most of your changes from the files that Vim uses to store the contents of the file. Mostly you can recover your work with one command: vim -r filename 1. The swap file |swap-file| 2. Recovery |recovery| ============================================================================== 1. The swap file *swap-file* Vim stores the things you changed in a swap file. Using the original file you started from plus the swap file you can mostly recover your work. You can see the name of the current swap file being used with the command: :sw[apname] *:sw* *:swapname* Or you can use the |swapname()| function, which also allows for seeing the swap file name of other buffers. The name of the swap file is normally the same as the file you are editing, with the extension ".swp". - On Unix, a '.' is prepended to swap file names in the same directory as the edited file. This avoids that the swap file shows up in a directory listing. - On MS-Windows machines and when the 'shortname' option is on, any '.' in the original file name is replaced with '_'. - If this file already exists (e.g., when you are recovering from a crash) a warning is given and another extension is used, ".swo", ".swn", etc. - An existing file will never be overwritten. - The swap file is deleted as soon as Vim stops editing the file. Technical: The replacement of '.' with '_' is done to avoid problems with MS-DOS compatible filesystems (e.g., crossdos, multidos). If Vim is able to detect that the file is on an MS-DOS-like filesystem, a flag is set that has the same effect as the 'shortname' option. This flag is reset when you start editing another file. *E326* If the ".swp" file name already exists, the last character is decremented until there is no file with that name or ".saa" is reached. In the last case, no swap file is created. By setting the 'directory' option you can place the swap file in another place than where the edited file is. Advantages: - You will not pollute the directories with ".swp" files. - When the 'directory' is on another partition, reduce the risk of damaging the file system where the file is (in a crash). Disadvantages: - You can get name collisions from files with the same name but in different directories (although Vim tries to avoid that by comparing the path name). This will result in bogus ATTENTION warning messages. - When you use your home directory, and somebody else tries to edit the same file, that user will not see your swap file and will not get the ATTENTION warning message. On the Amiga you can also use a recoverable ram disk, but there is no 100% guarantee that this works. Putting swap files in a normal ram disk (like RAM: on the Amiga) or in a place that is cleared when rebooting (like /tmp on Unix) makes no sense, you will lose the swap file in a crash. If you want to put swap files in a fixed place, put a command resembling the following ones in your .vimrc: :set dir=dh2:tmp (for Amiga) :set dir=~/tmp (for Unix) :set dir=c:\\tmp (for Win32) This is also very handy when editing files on floppy. Of course you will have to create that "tmp" directory for this to work! For read-only files, a swap file is not used. Unless the file is big, causing the amount of memory used to be higher than given with 'maxmem' or 'maxmemtot'. And when making a change to a read-only file, the swap file is created anyway. The 'swapfile' option can be reset to avoid creating a swapfile. And the |:noswapfile| modifier can be used to not create a swapfile for a new buffer. :nos[wapfile] {command} *:nos* *:noswapfile* Execute {command}. If it contains a command that loads a new buffer, it will be loaded without creating a swapfile and the 'swapfile' option will be reset. If a buffer already had a swapfile it is not removed and 'swapfile' is not reset. Detecting an existing swap file ~ You can find this in the user manual, section |11.3|. Updating the swapfile ~ The swap file is updated after typing 200 characters or when you have not typed anything for four seconds. This only happens if the buffer was changed, not when you only moved around. The reason why it is not kept up to date all the time is that this would slow down normal work too much. You can change the 200 character count with the 'updatecount' option. You can set the time with the 'updatetime' option. The time is given in milliseconds. After writing to the swap file Vim syncs the file to disk. This takes some time, especially on busy Unix systems. If you don't want this you can set the 'swapsync' option to an empty string. The risk of losing work becomes bigger though. On some non-Unix systems (MS-Windows, Amiga) the swap file won't be written at all. If the writing to the swap file is not wanted, it can be switched off by setting the 'updatecount' option to 0. The same is done when starting Vim with the "-n" option. Writing can be switched back on by setting the 'updatecount' option to non-zero. Swap files will be created for all buffers when doing this. But when setting 'updatecount' to zero, the existing swap files will not be removed, it will only affect files that will be opened after this. If you want to make sure that your changes are in the swap file use this command: *:pre* *:preserve* *E313* *E314* :pre[serve] Write all text for the current buffer into its swap file. The original file is no longer needed for recovery. This sets a flag in the current buffer. When the '&' flag is present in 'cpoptions' the swap file will not be deleted for this buffer when Vim exits and the buffer is still loaded |cpo-&|. A Vim swap file can be recognized by the first six characters: "b0VIM ". After that comes the version number, e.g., "3.0". Links and symbolic links ~ On Unix it is possible to have two names for the same file. This can be done with hard links and with symbolic links (symlinks). For hard links Vim does not know the other name of the file. Therefore, the name of the swapfile will be based on the name you used to edit the file. There is no check for editing the same file by the other name too, because Vim cannot find the other swapfile (except for searching all of your harddisk, which would be very slow). For symbolic links Vim resolves the links to find the name of the actual file. The swap file name is based on that name. Thus it doesn't matter by what name you edit the file, the swap file name will normally be the same. However, there are exceptions: - When the directory of the actual file is not writable the swapfile is put elsewhere. - When the symbolic links somehow create a loop you get an *E773* error message and the unmodified file name will be used. You won't be able to save your file normally. ============================================================================== 2. Recovery *recovery* *E308* *E311* Basic file recovery is explained in the user manual: |usr_11.txt|. Another way to do recovery is to start Vim and use the ":recover" command. This is easy when you start Vim to edit a file and you get the "ATTENTION: Found a swap file ..." message. In this case the single command ":recover" will do the work. You can also give the name of the file or the swap file to the recover command: *:rec* *:recover* *E305* *E306* *E307* :rec[over] [file] Try to recover [file] from the swap file. If [file] is not given use the file name for the current buffer. The current contents of the buffer are lost. This command fails if the buffer was modified. :rec[over]! [file] Like ":recover", but any changes in the current buffer are lost. *E312* *E309* *E310* Vim has some intelligence about what to do if the swap file is corrupt in some way. If Vim has doubt about what it found, it will give an error message and insert lines with "???" in the text. If you see an error message while recovering, search in the file for "???" to see what is wrong. You may want to cut and paste to get the text you need. The most common remark is "???LINES MISSING". This means that Vim cannot read the text from the original file. This can happen if the system crashed and parts of the original file were not written to disk. Be sure that the recovery was successful before overwriting the original file or deleting the swap file. It is good practice to write the recovered file elsewhere and run 'diff' to find out if the changes you want are in the recovered file. Or use |:DiffOrig|. Once you are sure the recovery is ok delete the swap file. Otherwise, you will continue to get warning messages that the ".swp" file already exists. ENCRYPTION AND THE SWAP FILE *:recover-crypt* When the text file is encrypted the swap file is encrypted as well. This makes recovery a bit more complicated. When recovering from a swap file and encryption has been used, you will be asked to enter one or two crypt keys. If the text file does not exist you will only be asked to enter the crypt key for the swap file. If the text file does exist, it may be encrypted in a different way than the swap file. You will be asked for the crypt key twice: Need encryption key for "/tmp/tt" ~ Enter encryption key: ****** ~ "/tmp/tt" [crypted] 23200L, 522129C ~ Using swap file "/tmp/.tt.swp" ~ Original file "/tmp/tt" ~ Swap file is encrypted: "/tmp/.tt.swp" ~ If you entered a new crypt key but did not write the text file, ~ enter the new crypt key. ~ If you wrote the text file after changing the crypt key press enter ~ to use the same key for text file and swap file ~ Enter encryption key: ~ You can be in one of these two situations: 1. The encryption key was not changed, or after changing the key the text file was written. You will be prompted for the crypt key twice. The second time you can simply press Enter. That means the same key is used for the text file and the swap file. 2. You entered a new encryption key, but did not save the text file. Vim will then use the new key for the swap file, and the text file will still be encrypted with the old key. At the second prompt enter the new key. Note that after recovery the key of the swap file will be used for the text file. Thus if you write the text file, you need to use that new key. vim:tw=78:ts=8:noet:ft=help:norl:
Save
cmd:
run