runtime: Set b:undo_ftplugin where missing (#12943)

Commit: 
https://github.com/vim/vim/commit/f937ab32a1ac3a560f217ca4ce8305ab2d5b0b74
Author: dkearns <[email protected]>
Date:   Tue Aug 29 05:32:27 2023 +1000

    runtime: Set b:undo_ftplugin where missing 
(https://github.com/vim/vim/issues/12943)
    
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d8130ceee..4fafc7cf4 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -158,6 +158,7 @@ runtime/ftplugin/html.vim           @dkearns
 runtime/ftplugin/i3config.vim          @hiqua
 runtime/ftplugin/icon.vim              @dkearns
 runtime/ftplugin/indent.vim            @dkearns
+runtime/ftplugin/ishd.vim              @dkearns
 runtime/ftplugin/j.vim                 @glts
 runtime/ftplugin/javascript.vim                @dkearns
 runtime/ftplugin/javascriptreact.vim   @dkearns
diff --git a/runtime/ftplugin/abap.vim b/runtime/ftplugin/abap.vim
index 956b002ec..61db8093f 100644
--- a/runtime/ftplugin/abap.vim
+++ b/runtime/ftplugin/abap.vim
@@ -3,6 +3,7 @@
 " Author:      Steven Oliver <[email protected]>
 " Copyright:   Copyright (c) 2013 Steven Oliver
 " License:     You may redistribute this under the same terms as Vim itself
+" Last Change:  2023 Aug 28 by Vim Project (undo_ftplugin)
 " --------------------------------------------------------------------------
 
 " Only do this when not done yet for this buffer
@@ -17,10 +18,13 @@ set cpo&vim
 setlocal softtabstop=2 shiftwidth=2
 setlocal suffixesadd=.abap
 
+let b:undo_ftplugin = "setl sts< sua< sw<"
+
 " Windows allows you to filter the open file dialog
 if has("gui_win32") && !exists("b:browsefilter")
   let b:browsefilter = "ABAP Source Files (*.abap)     *.abap
" .
                      \ "All Files (*.*)        *.*
"
+  let b:undo_ftplugin .= " | unlet! b:browsefilter"
 endif
 
 let &cpo = s:cpo_save
diff --git a/runtime/ftplugin/art.vim b/runtime/ftplugin/art.vim
index c501a992d..41b02a94e 100644
--- a/runtime/ftplugin/art.vim
+++ b/runtime/ftplugin/art.vim
@@ -3,6 +3,7 @@
 " Maintainer:    Dorai Sitaram <[email protected]>
 " URL:          http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
 " Last Change:   Apr 2, 2003
+"                2023 Aug 28 by Vim Project (undo_ftplugin)
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -13,3 +14,5 @@ run ftplugin/lisp.vim
 
 setl lw-=if
 setl lw+=def-art-fun,deffacts,defglobal,defrule,defschema,for,schema,while
+
+let b:undo_ftplugin ..= " | setl lw<"
diff --git a/runtime/ftplugin/asm.vim b/runtime/ftplugin/asm.vim
index 0914bf634..f6a92d57d 100644
--- a/runtime/ftplugin/asm.vim
+++ b/runtime/ftplugin/asm.vim
@@ -1,11 +1,13 @@
 " Vim filetype plugin file
 " Language:    asm
 " Maintainer:  Colin Caine <cmcaine at the common googlemail domain>
-" Last Changed: 23 May 2020
+" Last Change:  23 May 2020
+"              2023 Aug 28 by Vim Project (undo_ftplugin)
 
 if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
 
 setl comments=:;,s1:/*,mb:*,ex:*/,://
 setl commentstring=;%s
 
-let b:did_ftplugin = 1
+let b:undo_ftplugin = "setl commentstring< comments<"
diff --git a/runtime/ftplugin/bzl.vim b/runtime/ftplugin/bzl.vim
index 8ab876e9d..716b3890b 100644
--- a/runtime/ftplugin/bzl.vim
+++ b/runtime/ftplugin/bzl.vim
@@ -2,6 +2,7 @@
 " Language:    Bazel (http://bazel.io)
 " Maintainer:  David Barnett (https://github.com/google/vim-ft-bzl)
 " Last Change: 2021 Jan 19
+"              2023 Aug 28 by Vim Project (undo_ftplugin)
 
 ""
 " @section Introduction, intro
@@ -41,6 +42,9 @@ let &l:tabstop = s:save_tabstop
 
 setlocal formatoptions-=t
 
+" Initially defined in the python ftplugin sourced above
+let b:undo_ftplugin .= " | setlocal fo<"
+
 " Make gf work with imports in BUILD files.
 setlocal includeexpr=substitute(v:fname,'//','','')
 
@@ -48,6 +52,7 @@ setlocal includeexpr=substitute(v:fname,'//','','')
 if get(g:, 'ft_bzl_fold', 0)
   setlocal foldmethod=syntax
   setlocal foldtext=BzlFoldText()
+  let b:undo_ftplugin .= " | setlocal fdm< fdt<"
 endif
 
 if exists('*BzlFoldText')
diff --git a/runtime/ftplugin/dune.vim b/runtime/ftplugin/dune.vim
index 86c99c097..6e20a8fab 100644
--- a/runtime/ftplugin/dune.vim
+++ b/runtime/ftplugin/dune.vim
@@ -3,8 +3,9 @@
 "              Anton Kochkov       <[email protected]>
 " URL:         https://github.com/ocaml/vim-ocaml
 " Last Change:
-"              2018 Nov 3 - Added commentstring (Markus Mottl)
-"              2017 Sep 6 - Initial version (Etienne Millon)
+"              2023 Aug 28 - Added undo_ftplugin (Vim Project)
+"              2018 Nov 03 - Added commentstring (Markus Mottl)
+"              2017 Sep 06 - Initial version (Etienne Millon)
 
 if exists("b:did_ftplugin")
   finish
@@ -18,3 +19,5 @@ setl commentstring=;\ %s
 setl comments=:;
 
 setl iskeyword+=#,?,.,/
+
+let b:undo_ftplugin = "setl lisp< cms< com< isk<"
diff --git a/runtime/ftplugin/fish.vim b/runtime/ftplugin/fish.vim
index 7acbf4421..f06ad3a0b 100644
--- a/runtime/ftplugin/fish.vim
+++ b/runtime/ftplugin/fish.vim
@@ -3,6 +3,7 @@
 " Maintainer:   Nicholas Boyle (github.com/nickeb96)
 " Repository:   https://github.com/nickeb96/fish.vim
 " Last Change:  February 1, 2023
+"               2023 Aug 28 by Vim Project (undo_ftplugin)
 
 if exists("b:did_ftplugin")
     finish
@@ -13,3 +14,5 @@ setlocal iskeyword=@,48-57,_,192-255,-,.
 setlocal comments=:#
 setlocal commentstring=#%s
 setlocal formatoptions+=crjq
+
+let b:undo_ftplugin = "setl cms< com< fo< isk<"
diff --git a/runtime/ftplugin/hare.vim b/runtime/ftplugin/hare.vim
index bb10daf38..0200ba591 100644
--- a/runtime/ftplugin/hare.vim
+++ b/runtime/ftplugin/hare.vim
@@ -2,26 +2,34 @@
 " Language: Hare
 " Maintainer: Amelia Clarke <[email protected]>
 " Previous Maintainer: Drew DeVault <[email protected]>
-" Last Updated: 2022-09-21
+" Last Updated: 2022-09-28
+"               2023 Aug 28 by Vim Project (undo_ftplugin)
 
-" Only do this when not done yet for this buffer
 if exists('b:did_ftplugin')
   finish
 endif
-
-" Don't load another plugin for this buffer
 let b:did_ftplugin = 1
 
-setlocal noexpandtab
-setlocal tabstop=8
-setlocal shiftwidth=0
-setlocal softtabstop=0
-setlocal textwidth=80
+" Formatting settings.
+setlocal formatoptions-=t formatoptions+=croql/
+
+" Miscellaneous.
+setlocal comments=://
 setlocal commentstring=//\ %s
+setlocal suffixesadd=.ha
 
-" Set 'formatoptions' to break comment lines but not other lines,
-" and insert the comment leader when hitting <CR> or using "o".
-setlocal fo-=t fo+=croql
+let b:undo_ftplugin = "setl cms< com< fo< sua<"
+
+" Hare recommended style.
+if get(g:, "hare_recommended_style", 1)
+  setlocal noexpandtab
+  setlocal shiftwidth=8
+  setlocal softtabstop=0
+  setlocal tabstop=8
+  setlocal textwidth=80
+  let b:undo_ftplugin ..= " | setl et< sts< sw< ts< tw<"
+endif
 
 compiler hare
-" vim: tabstop=2 shiftwidth=2 expandtab
+
+" vim: et sw=2 sts=2 ts=8
diff --git a/runtime/ftplugin/ishd.vim b/runtime/ftplugin/ishd.vim
index 33ef1510b..b16034903 100644
--- a/runtime/ftplugin/ishd.vim
+++ b/runtime/ftplugin/ishd.vim
@@ -1,32 +1,37 @@
 " Vim filetype plugin file
-" Language:    InstallShield (ft=ishd)
-" Maintainer:  Johannes Zellner <[email protected]>
-" Last Change: Sat, 24 May 2003 11:55:36 CEST
+" Language:            InstallShield (ft=ishd)
+" Maintainer:          Doug Kearns <[email protected]>
+" Previous Maintainer: Johannes Zellner <[email protected]>
+" Last Change:         2023 Aug 28
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
 
-setlocal foldmethod=syntax
-
 " Using line continuation here.
 let s:cpo_save = &cpo
 set cpo-=C
 
+setlocal foldmethod=syntax
+
+let b:undo_ftplugin = "setl fdm<"
+
 " matchit support
 if exists("loaded_matchit")
-    let b:match_ignorecase=0
-    let b:match_words=
+    let b:match_ignorecase = 0
+    let b:match_words =
     \ 
'\%(^\s*\)\@<=\<function\>\s\+[^()]\+\s*(:\%(^\s*\)\@<=\<begin\>\s*$:\%(^\s*\)\@<=\<return\>:\%(^\s*\)\@<=\<end\>\s*;\s*$,'
 .
     \ '\%(^\s*\)\@<=\<repeat\>\s*$:\%(^\s*\)\@<=\<until\>\s\+.\{-}\s*;\s*$,' .
     \ 
'\%(^\s*\)\@<=\<switch\>\s*(.\{-}):\%(^\s*\)\@<=\<\%(case\|default\)\>:\%(^\s*\)\@<=\<endswitch\>\s*;\s*$,'
 .
     \ '\%(^\s*\)\@<=\<while\>\s*(.\{-}):\%(^\s*\)\@<=\<endwhile\>\s*;\s*$,' .
     \ 
'\%(^\s*\)\@<=\<for\>.\{-}\<\%(to\|downto\)\>:\%(^\s*\)\@<=\<endfor\>\s*;\s*$,' 
.
     \ 
'\%(^\s*\)\@<=\<if\>\s*(.\{-})\s*then:\%(^\s*\)\@<=\<else\s*if\>\s*([^)]*)\s*then:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<endif\>\s*;\s*$'
+    let b:undo_ftplugin .= " | unlet! b:match_ignorecase b:match_words"
 endif
 
-if has("gui_win32") && !exists("b:browsefilter")
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
     let b:browsefilter = "InstallShield Files (*.rul)  *.rul
" .
-                      \ "All Files (*.*)       *.*
"
+          \              "All Files (*.*)      *
"
+    let b:undo_ftplugin .= " | unlet! b:browsefilter"
 endif
 
 let &cpo = s:cpo_save
diff --git a/runtime/ftplugin/lprolog.vim b/runtime/ftplugin/lprolog.vim
index a8a3c612c..1075a9c81 100644
--- a/runtime/ftplugin/lprolog.vim
+++ b/runtime/ftplugin/lprolog.vim
@@ -2,7 +2,8 @@
 " Language:     LambdaProlog (Teyjus)
 " Maintainer:   Markus Mottl  <[email protected]>
 " URL:          http://www.ocaml.info/vim/ftplugin/lprolog.vim
-" Last Change:  2006 Feb 05
+" Last Change:  2023 Aug 28 - added undo_ftplugin (Vim Project)
+"               2006 Feb 05
 "               2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
 "               2001 Sep 02 - initial release  (MM)
 
@@ -15,11 +16,13 @@ endif
 let b:did_ftplugin = 1
 
 " Error format
-setlocal efm=%+A./%f:%l.%c:\ %m formatprg=fmt\ -w75\ -p\%
+setlocal efm=%+A./%f:%l.%c:\ %m
 
 " Formatting of comments
 setlocal formatprg=fmt\ -w75\ -p\%
 
+let b:undo_ftplugin = "setlocal efm< fp<"
+
 " Add mappings, unless the user didn't want this.
 if !exists("no_plugin_maps") && !exists("no_lprolog_maps")
   " Uncommenting
@@ -28,6 +31,11 @@ if !exists("no_plugin_maps") && !exists("no_lprolog_maps")
     vmap <buffer> <LocalLeader>c <Plug>BUncomOn
     nmap <buffer> <LocalLeader>C <Plug>LUncomOff
     vmap <buffer> <LocalLeader>C <Plug>BUncomOff
+    let b:undo_ftplugin ..=
+          \ " | silent! execute 'nunmap <buffer> <LocalLeader>c'" ..
+          \ " | silent! execute 'vunmap <buffer> <LocalLeader>c'" ..
+          \ " | silent! execute 'nunmap <buffer> <LocalLeader>C'" ..
+          \ " | silent! execute 'vunmap <buffer> <LocalLeader>C'"
   endif
 
   nnoremap <buffer> <Plug>LUncomOn mz0i/* <ESC>$A */<ESC>`z
diff --git a/runtime/ftplugin/nginx.vim b/runtime/ftplugin/nginx.vim
index e808db127..525d0fdcc 100644
--- a/runtime/ftplugin/nginx.vim
+++ b/runtime/ftplugin/nginx.vim
@@ -2,5 +2,8 @@
 " Language: nginx.conf
 " Maintainer: Chris Aumann <[email protected]>
 " Last Change: Apr 15, 2017
+"              2023 Aug 28 by Vim Project (undo_ftplugin)
 
 setlocal commentstring=#\ %s
+
+let b:undo_ftplugin = "setlocal commentstring<"
diff --git a/runtime/ftplugin/pbtxt.vim b/runtime/ftplugin/pbtxt.vim
index e3c1bf765..56c2553ca 100644
--- a/runtime/ftplugin/pbtxt.vim
+++ b/runtime/ftplugin/pbtxt.vim
@@ -2,20 +2,16 @@
 " Language:             Protobuf Text Format
 " Maintainer:           Lakshay Garg <[email protected]>
 " Last Change:          2020 Nov 17
+"                       2023 Aug 28 by Vim Project (undo_ftplugin)
 " Homepage:             https://github.com/lakshayg/vim-pbtxt
 
 if exists("b:did_ftplugin")
   finish
 endif
-
 let b:did_ftplugin = 1
 
-let s:cpo_save = &cpo
-set cpo&vim
-
 setlocal commentstring=#\ %s
 
-let &cpo = s:cpo_save
-unlet s:cpo_save
+let b:undo_ftplugin = "setlocal commentstring<"
 
 " vim: nowrap sw=2 sts=2 ts=8 noet
diff --git a/runtime/ftplugin/scala.vim b/runtime/ftplugin/scala.vim
index b484df99f..769499cfc 100644
--- a/runtime/ftplugin/scala.vim
+++ b/runtime/ftplugin/scala.vim
@@ -4,6 +4,7 @@
 " URL:                  https://github.com/derekwyatt/vim-scala
 " License:              Same as Vim
 " Last Change:          11 August 2021
+"                       2023 Aug 28 by Vim Project (undo_ftplugin)
 " ----------------------------------------------------------------------------
 
 if exists('b:did_ftplugin') || &cp
@@ -32,4 +33,6 @@ setlocal includeexpr=substitute(v:fname,'\.','/','g')
 setlocal path+=src/main/scala,src/test/scala
 setlocal suffixesadd=.scala
 
+let b:undo_ftplugin = "setlocal cms< com< et< fo< inc< inex< pa< sts< sua< sw<"
+
 " vim:set sw=2 sts=2 ts=8 et:
diff --git a/runtime/ftplugin/sexplib.vim b/runtime/ftplugin/sexplib.vim
index 27e1b2837..b0767ef55 100644
--- a/runtime/ftplugin/sexplib.vim
+++ b/runtime/ftplugin/sexplib.vim
@@ -3,6 +3,7 @@
 " Maintainer:  Markus Mottl        <[email protected]>
 " URL:         https://github.com/ocaml/vim-ocaml
 " Last Change:
+"              2023 Aug 28 - Added undo_ftplugin (Vim Project)
 "              2017 Apr 12 - First version (MM)
 
 if exists("b:did_ftplugin")
@@ -13,3 +14,5 @@ let b:did_ftplugin=1
 " Comment string
 setl commentstring=;\ %s
 setl comments=:;
+
+let b:undo_ftplugin = "setl cms< com<"
diff --git a/runtime/ftplugin/usd.vim b/runtime/ftplugin/usd.vim
index c795ba591..cd5013f96 100644
--- a/runtime/ftplugin/usd.vim
+++ b/runtime/ftplugin/usd.vim
@@ -2,17 +2,13 @@
 " Language:     Pixar Animation's Universal Scene Description format
 " Maintainer:   Colin Kennedy <[email protected]>
 " Last Change:  2023 May 9
+"               2023 Aug 28 by Vim Project (undo_ftplugin)
 
 if exists("b:did_ftplugin")
   finish
 endif
-
-let s:cpo_save = &cpo
-set cpo&vim
-
 let b:did_ftplugin = 1
 
 setlocal commentstring=#\ %s
 
-let &cpo = s:cpo_save
-unlet s:cpo_save
+let b:undo_ftplugin = "setlocal commentstring<"
diff --git a/runtime/ftplugin/vhdl.vim b/runtime/ftplugin/vhdl.vim
index 0249b542b..ff56166eb 100644
--- a/runtime/ftplugin/vhdl.vim
+++ b/runtime/ftplugin/vhdl.vim
@@ -3,6 +3,7 @@
 " Maintainer:  R.Shankar <shankar.pec?gmail.com>
 " Modified By: Gerald Lai <laigera+vim?gmail.com>
 " Last Change: 2011 Dec 11
+"              2023 Aug 28 by Vim Project (undo_ftplugin, commentstring)
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -22,13 +23,20 @@ set cpo&vim
 " Set 'comments' to format dashed lists in comments.
 "setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
 
+setlocal commentstring=--\ %s
+
 " Format comments to be up to 78 characters long
 "setlocal tw=75
 
+" let b:undo_ftplugin = "setl cms< com< fo< tw<"
+
+let b:undo_ftplugin = "setl cms< "
+
 " Win32 can filter files in the browse dialog
 "if has("gui_win32") && !exists("b:browsefilter")
 "  let b:browsefilter = "Verilog Source Files (*.v)    *.v
" .
 "   \ "All Files (*.*) *.*
"
+"  let b:undo_ftplugin .= " | unlet! b:browsefilter"
 "endif
 
 " Let the matchit plugin know what items can be matched.
@@ -52,37 +60,49 @@ if ! exists("b:match_words")  &&  exists("loaded_matchit")
     \ s:notend.'\<package\>:\<end\s\+package\>,'.
     \ s:notend.'\<procedure\>:\<end\s\+procedure\>,'.
     \ s:notend.'\<configuration\>:\<end\s\+configuration\>'
+  let b:undo_ftplugin .= " | unlet! b:match_ignorecase b:match_words"
 endif
 
-" count repeat
-function! <SID>CountWrapper(cmd)
-  let i = v:count1
-  if a:cmd[0] == ":"
-    while i > 0
-      execute a:cmd
-      let i = i - 1
-    endwhile
-  else
-    execute "normal! gv\<Esc>"
-    execute "normal ".i.a:cmd
-    let curcol = col(".")
-    let curline = line(".")
-    normal! gv
-    call cursor(curline, curcol)
-  endif
-endfunction
+if !exists("no_plugin_maps") && !exists("no_vhdl_maps")
+  " count repeat
+  function! <SID>CountWrapper(cmd)
+    let i = v:count1
+    if a:cmd[0] == ":"
+      while i > 0
+       execute a:cmd
+       let i = i - 1
+      endwhile
+    else
+      execute "normal! gv\<Esc>"
+      execute "normal ".i.a:cmd
+      let curcol = col(".")
+      let curline = line(".")
+      normal! gv
+      call cursor(curline, curcol)
+    endif
+  endfunction
 
-" explore motion
-" keywords: "architecture", "block", "configuration", "component", "entity", 
"function", "package", "procedure", "process", "record", "units"
-let b:vhdl_explore = 
'\%(architecture\|block\|configuration\|component\|entity\|function\|package\|procedure\|process\|record\|units\)'
-noremap  <buffer><silent>[[ :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\%(\<end\s\+\)\@<!\<".b:vhdl_explore."\>\c\<Bar>\%^","bW")')<CR>
-noremap  <buffer><silent>]] :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\%(\<end\s\+\)\@<!\<".b:vhdl_explore."\>\c\<Bar>\%$","W")')<CR>
-noremap  <buffer><silent>[] :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\<end\s\+".b:vhdl_explore."\>\c\<Bar>\%^","bW")')<CR>
-noremap  <buffer><silent>][ :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\<end\s\+".b:vhdl_explore."\>\c\<Bar>\%$","W")')<CR>
-vnoremap <buffer><silent>[[ :<C-u>cal <SID>CountWrapper('[[')<CR>
-vnoremap <buffer><silent>]] :<C-u>cal <SID>CountWrapper(']]')<CR>
-vnoremap <buffer><silent>[] :<C-u>cal <SID>CountWrapper('[]')<CR>
-vnoremap <buffer><silent>][ :<C-u>cal <SID>CountWrapper('][')<CR>
+  " explore motion
+  " keywords: "architecture", "block", "configuration", "component", "entity", 
"function", "package", "procedure", "process", "record", "units"
+  let b:vhdl_explore = 
'\%(architecture\|block\|configuration\|component\|entity\|function\|package\|procedure\|process\|record\|units\)'
+  noremap  <buffer><silent>[[ :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\%(\<end\s\+\)\@<!\<".b:vhdl_explore."\>\c\<Bar>\%^","bW")')<CR>
+  noremap  <buffer><silent>]] :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\%(\<end\s\+\)\@<!\<".b:vhdl_explore."\>\c\<Bar>\%$","W")')<CR>
+  noremap  <buffer><silent>[] :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\<end\s\+".b:vhdl_explore."\>\c\<Bar>\%^","bW")')<CR>
+  noremap  <buffer><silent>][ :<C-u>cal <SID>CountWrapper(':cal 
search("\%(--.*\)\@<!\<end\s\+".b:vhdl_explore."\>\c\<Bar>\%$","W")')<CR>
+  vnoremap <buffer><silent>[[ :<C-u>cal <SID>CountWrapper('[[')<CR>
+  vnoremap <buffer><silent>]] :<C-u>cal <SID>CountWrapper(']]')<CR>
+  vnoremap <buffer><silent>[] :<C-u>cal <SID>CountWrapper('[]')<CR>
+  vnoremap <buffer><silent>][ :<C-u>cal <SID>CountWrapper('][')<CR>
+  let b:undo_ftplugin .=
+       \ " | silent! execute 'nunmap <buffer> [['" .
+       \ " | silent! execute 'nunmap <buffer> ]]'" .
+       \ " | silent! execute 'nunmap <buffer> []'" .
+       \ " | silent! execute 'nunmap <buffer> ]['" .
+       \ " | silent! execute 'vunmap <buffer> [['" .
+       \ " | silent! execute 'vunmap <buffer> ]]'" .
+       \ " | silent! execute 'vunmap <buffer> []'" .
+       \ " | silent! execute 'vunmap <buffer> ]['"
+endif
 
 let &cpo = s:cpo_save
 unlet s:cpo_save

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1qaiAc-00525O-VW%40256bit.org.

Raspunde prin e-mail lui