]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(doc): disable last-position-jump in diff mode
authorChristian Brabandt <cb@256bit.org>
Sat, 12 Apr 2025 16:07:39 +0000 (18:07 +0200)
committerChristian Brabandt <cb@256bit.org>
Sat, 12 Apr 2025 16:07:39 +0000 (18:07 +0200)
This has been bothering me quite for some time and I never knew why it
happened. Just today it occurred to me this might have been because of
the last-position-jump.

So I figured, let's fix it for everybody, not just me.

closes: #17092

Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/defaults.vim
runtime/doc/usr_05.txt

index 38b03da11d701f1daf1dc874d32e1c2c15e96bb9..f5b4888a62a8f8ebacab97f4708fef1fcb70f4f8 100644 (file)
@@ -107,6 +107,7 @@ if 1
       \ let line = line("'\"")
       \ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
       \      && index(['xxd', 'gitrebase', 'tutor'], &filetype) == -1
+      \      && !&diff
       \ |   execute "normal! g`\""
       \ | endif
 
index 56714dbd8de947eac4798984416c0c7870953d76..fea6cddd19d434f71b009b748c89f57b0f6d4f15 100644 (file)
@@ -1,4 +1,4 @@
-*usr_05.txt*   For Vim version 9.1.  Last change: 2025 Mar 22
+*usr_05.txt*   For Vim version 9.1.  Last change: 2025 Apr 10
 
                     VIM USER MANUAL - by Bram Moolenaar
 
@@ -307,23 +307,27 @@ This switches on three very clever mechanisms:
    filetypes.  See |:filetype-indent-on| and 'indentexpr'.
 
 
-                               *restore-cursor* *last-position-jump*  >
+                               *restore-cursor* *last-position-jump*  >vim
     augroup RestoreCursor
       autocmd!
       autocmd BufReadPost *
         \ let line = line("'\"")
         \ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
         \      && index(['xxd', 'gitrebase'], &filetype) == -1
+        \      && !&diff
         \ |   execute "normal! g`\""
         \ | endif
     augroup END
 
 Another autocommand.  This time it is used after reading any file.  The
 complicated stuff after it checks if the '" mark is defined, and jumps to it
-if so.  It doesn't do that for a commit or rebase message, which are likely
-a different one than last time, and when using xxd(1) to filter and edit
-binary files, which transforms input files back and forth, causing them to
-have dual nature, so to speak.  See also |using-xxd|.
+if so.  It doesn't do that when:
+ - editing a commit or rebase message, which are likely a different one than
+   last time,
+ - using xxd(1) to filter and edit binary files, which transforms input files
+   back and forth, causing them to have dual nature, so to speak (see also
+   |using-xxd|) and
+ - Vim is in diff mode
 
 The backslash at the start of a line is used to continue the command from the
 previous line.  That avoids a line getting very long.  See |line-continuation|.