在 ViM 中禁用突出显示匹配的括号:"let loaded_matchparen = 1" 不起作用
Disable Highlight Matched Parentheses in ViM : "let loaded_matchparen = 1" not working
如何在 ViM?
中禁用匹配括号的自动突出显示(插入新括号时光标会短暂跳转到匹配的括号)
当我在我之前的公司遇到这个问题时,我可以通过在 .vimrc
中添加以下行来解决它
let loaded_matchparen = 1
现在我在新公司遇到了同样的问题。但是现在,即使在我的 .vimrc
.
中,问题也没有解决。
我尝试将 NoMatchParen
添加到我的 .vimrc,打开 ViM 时出现以下错误:
Error detected while processing <...>/.vimrc:
E492: Not an editor command: NoMatchParen
Pl。让我知道解决这个恼人问题的方法。
FYR,我的 $ vim --version
的输出:
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 11 2012 21:05:37)
Compiled by rvictor@depbldrh61
Huge version with GTK2 GUI. Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff
+digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi
+file_in_path +find_in_path +float +folding -footer +fork() +gettext
-hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall
+linebreak +lispindent +listcmds +localmap -lua +menu +mksession +modify_fname
+mouse +mouseshape +mouse_dec -mouse_gpm -mouse_jsbterm +mouse_netterm
-mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg
-osfiletype +path_extra -perl +persistent_undo +postscript +printer +profile
-python -python3 +quickfix +reltime +rightleft -ruby +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
+toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim
+xsmp_interact +xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/depot/vim-7.3/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -g -O2 -D_FORTIFY_SOURCE=1
Linking: gcc -L/usr/local/lib -o vim -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXt -lm -lncurses -lselinux -lacl
检查你的 vimrc 是否有 showmatch
或 sm
。
:set noshowmatch
或 :set nosm
禁用短跳。
如果您禁用了 MatchParen 插件,那么将没有命令 NoMatchParen
可用(因为加载插件被跳过)。
你到底想达到什么目的?也许您正在寻找 :set noshowmatch
命令(您可以将其放入您的 .vimrc 中)?
由于上述答案中的 none 对我有用 (OSX Sierra),我将提供我认为应该在 vim 的任何(通常的?)配置中工作的内容.
作为 OP,在 OSX vim 中依赖于插件 MatchParen
来突出显示匹配的括号。因此,:set noshowmatch
将不起作用。但是,:NoMatchParen
有效。
现在的问题是配置我们的 ~/.vimrc
以便在打开文件时默认禁用此插件。
由于将我们的 ~/.vimrc
从旧系统导入任何新帐户很常见,并且在新系统中突出显示可能会被 show match
切换,以下将自动解决这两种情况下的问题:
在您的 ~/.vimrc
中添加以下行:
" Disable parentheses matching depends on system. This way we should address all cases (?)
set noshowmatch
" NoMatchParen " This doesnt work as it belongs to a plugin, which is only loaded _after_ all files are.
" Trying disable MatchParen after loading all plugins
"
function! g:FckThatMatchParen ()
if exists(":NoMatchParen")
:NoMatchParen
endif
endfunction
augroup plugin_initialize
autocmd!
autocmd VimEnter * call FckThatMatchParen()
augroup END
注意:最后augroup
行的END
很重要。如果没有它,您会在文件打开 :
之前调用 vim
时收到讨厌的通知
$ vi my file.txt
plugin_initialize
Press ENTER or type command to continue
let g:loaded_matchparen=1
对我有用!
它设置了一个标志,告诉 /vim/vim81/plugin/matchparen.vim
下的代码不要声明自己。
如何在 ViM?
中禁用匹配括号的自动突出显示(插入新括号时光标会短暂跳转到匹配的括号)当我在我之前的公司遇到这个问题时,我可以通过在 .vimrc
let loaded_matchparen = 1
现在我在新公司遇到了同样的问题。但是现在,即使在我的 .vimrc
.
我尝试将 NoMatchParen
添加到我的 .vimrc,打开 ViM 时出现以下错误:
Error detected while processing <...>/.vimrc:
E492: Not an editor command: NoMatchParen
Pl。让我知道解决这个恼人问题的方法。
FYR,我的 $ vim --version
的输出:
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 11 2012 21:05:37)
Compiled by rvictor@depbldrh61
Huge version with GTK2 GUI. Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff
+digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi
+file_in_path +find_in_path +float +folding -footer +fork() +gettext
-hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall
+linebreak +lispindent +listcmds +localmap -lua +menu +mksession +modify_fname
+mouse +mouseshape +mouse_dec -mouse_gpm -mouse_jsbterm +mouse_netterm
-mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg
-osfiletype +path_extra -perl +persistent_undo +postscript +printer +profile
-python -python3 +quickfix +reltime +rightleft -ruby +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
+toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim
+xsmp_interact +xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/depot/vim-7.3/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -g -O2 -D_FORTIFY_SOURCE=1
Linking: gcc -L/usr/local/lib -o vim -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXt -lm -lncurses -lselinux -lacl
检查你的 vimrc 是否有 showmatch
或 sm
。
:set noshowmatch
或 :set nosm
禁用短跳。
如果您禁用了 MatchParen 插件,那么将没有命令 NoMatchParen
可用(因为加载插件被跳过)。
你到底想达到什么目的?也许您正在寻找 :set noshowmatch
命令(您可以将其放入您的 .vimrc 中)?
由于上述答案中的 none 对我有用 (OSX Sierra),我将提供我认为应该在 vim 的任何(通常的?)配置中工作的内容.
作为 OP,在 OSX vim 中依赖于插件 MatchParen
来突出显示匹配的括号。因此,:set noshowmatch
将不起作用。但是,:NoMatchParen
有效。
现在的问题是配置我们的 ~/.vimrc
以便在打开文件时默认禁用此插件。
由于将我们的 ~/.vimrc
从旧系统导入任何新帐户很常见,并且在新系统中突出显示可能会被 show match
切换,以下将自动解决这两种情况下的问题:
在您的 ~/.vimrc
中添加以下行:
" Disable parentheses matching depends on system. This way we should address all cases (?)
set noshowmatch
" NoMatchParen " This doesnt work as it belongs to a plugin, which is only loaded _after_ all files are.
" Trying disable MatchParen after loading all plugins
"
function! g:FckThatMatchParen ()
if exists(":NoMatchParen")
:NoMatchParen
endif
endfunction
augroup plugin_initialize
autocmd!
autocmd VimEnter * call FckThatMatchParen()
augroup END
注意:最后augroup
行的END
很重要。如果没有它,您会在文件打开 :
vim
时收到讨厌的通知
$ vi my file.txt
plugin_initialize
Press ENTER or type command to continue
let g:loaded_matchparen=1
对我有用!
它设置了一个标志,告诉 /vim/vim81/plugin/matchparen.vim
下的代码不要声明自己。