在ViM中禁用突出显示匹配的括号:" let loaded_matchparen = 1"不工作

时间:2016-01-08 11:12:14

标签: vim brackets

如何在ViM中禁用匹配括号的自动突出显示(光标短暂跳转到匹配的括号,当插入新的括号时)? 当我在我早期的公司遇到这个问题时,我可以通过在我的.vimrc中添加以下行来解决它 let loaded_matchparen = 1 现在在我的新公司,我面临同样的问题。但是现在这个问题在我的.vimrc中甚至没有上线。 我尝试将NoMatchParen添加到我的.vimrc中,打开ViM时出现以下错误: 处理< ...> /。vimrc时检测到错误: E492:不是编辑器命令:NoMatchParen PL。让我知道解决这个恼人问题的方法。 FYR,我的$ vim - 版本的输出: VIM - Vi IMproved 7。3(2010年8月15日,2012年2月11日编译21:05:37) 由rvictor @ depbldrh61编译 GTK2 GUI的巨大版本。功能包括(+)或不( - ): + arabic + autocmd + balloon_eval + browse ++ builtin_terms + byte_offset + cindent + clientserver + clipboard + cmdline_compl + cmdline_hist + cmdline_info + comments +隐藏+ 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 +鼠标+ 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 -t​​cl + 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文件:" $ VIM / vimrc"      用户vimrc文件:" $ HOME / .vimrc"       用户exrc文件:" $ HOME / .exrc"   system gvimrc file:" $ VIM / gvimrc"     用户gvimrc文件:" $ HOME / .gvimrc"     系统菜单文件:" $ VIMRUNTIME / menu.vim"   $ VIM的退款:" /depot/vim-7.3/share/vim" 编译: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 链接: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

4 个答案:

答案 0 :(得分:8)

由于上述答案不适用于我(OSX Sierra),我将提供我认为应该在vim的任何(通常的?)配置中工作的内容。

作为OP,在OSX中,vim依赖于插件MatchParen来突出显示匹配的括号。因此,:set noshowmatch将不起作用。但是,:NoMatchParen有效。

现在的问题是配置我们的~/.vimrc,以便在打开文件时默认禁用此插件。

由于我们将~/.vimrc从旧系统导入到任何新帐户是很常见的,并且在新系统中突出显示可能会被show match切换,以下内容将在两个实例中自动解决问题:< / p>

~/.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

注意:最后END行中的augroup非常重要。如果没有它,在文件打开之前调用vim 时会收到一个令人讨厌的通知

$ vi my file.txt  
plugin_initialize  
Press ENTER or type command to continue

答案 1 :(得分:6)

let g:loaded_matchparen=1

为我工作!

答案 2 :(得分:4)

检查您的vimrc是否为showmatchsm

:set noshowmatch:se nosm禁用短暂跳跃。

答案 3 :(得分:1)

如果你已经禁用了MatchParen插件,那么将没有可用的命令NoMatchParen(因为跳过加载插件)。 你到底想要达到什么目的?也许您正在寻找:set noshowmatch命令(可以放入.vimrc中)?