Matchit не работает - PullRequest
       6

Matchit не работает

25 голосов
/ 02 сентября 2011

Я использую снимок Macvim 7.3 57. Кажется, я не могу заставить matchit работать с любым из моих файлов.

Я нажимаю% на открывающем теге.Это не приводит меня к закрывающему тегу ...

Мой файл vimrc:

" Pathogen settings
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()

set nocompatible

set number
set ruler
set cursorline
syntax on

" Disable all blinking
set guicursor+=a:blinkon0

" Whitespace stuff
set nowrap
set tabstop=2
set shiftwidth=2
set expandtab
set cindent
set smartindent
set autoindent
set list listchars=tab:\ \ ,trail:·

" Searching
set hlsearch
set incsearch
set ignorecase
set smartcase

" Status bar
set laststatus=2

" Start without the toolbar
set guioptions-=T

" Default gui color scheme
" "color default
" color molokai
color railscasts+

" Command-/ to toggle comments
map <D-/> :TComment<CR>j

" Remember last location in file
if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal g'\"" | endif
endif

" Thorfile, Rakefile and Gemfile are Ruby
au BufRead,BufNewFile {Gemfile,Rakefile,Thorfile,config.ru} set ft=ruby

" Open split buffers below instead of above current buffer
set splitbelow

" Session options
let g:session_autoload = 1
let g:session_autosave = 1

" Buffer navigation
map <C-K> <C-W><C-K>
map <C-J> <C-W><C-W>
map <C-H> <C-W><C-H>
map <C-L> <C-W><C-L>

" Rails navigation options
nmap <leader>rc :Rcontroller 
nmap <leader>rv :Rview 
nmap <leader>rm :Rmodel 

" Tab completion
" Also needed for better Rails navigation auto-completion
set wildmode=list:longest,list:full

" Open up side panel left (NERDTree) and right(Tagbar)
" nmap <leader>\ :NERDTreeToggle<CR> :TagbarToggle<CR>
nmap <leader>\ :call ToggleNERDTreeAndTagbar()<CR>

" Allow single click for NERDTree
let NERDTreeMouseMode = 3
let g:NERDTreeWinSize = 30
" autocmd VimEnter * NERDTree

" Tagbar options
let tagbar_singleclick = 1
let g:tagbar_sort = 0
let g:tagbar_width = 30
" autocmd VimEnter * nested TagbarOpen

" The Janus plugin sets this to noequalalways for the Zoominfo plugin
" However, we want to set this to equalalways instead, since we want to
" have equal window height when a new window is opened. i.e. via ctrl+w+s
set equalalways

" Matchit already installed in newer versions of vim.
" Don't need to add this onto pathogen bundle folder. We only need
" to configure it.
" Configure matchit so that it goes from opening tag to closing tag
au FileType html,eruby,rb,css,js,xml runtime! macros/matchit.vim

" Set backup and swp dir. Don't forget to clear tmp dir out once in a while
set backupdir=~/.vim/tmp/backup
set directory=~/.vim/tmp/swp

" Detect if a tab was closed, and ensure that height of main window fills the screen (100% height)
au TabEnter * let &lines = 100

" <leader>\ to open or close NERDTree and Tagbar, under the following conditions:
" 1) Only close both if NERDTree and Tagbar are both opened
" 2) Open both if NERDTree and Tagbar are closed OR if one is already opened
function! ToggleNERDTreeAndTagbar()
  let w:jumpbacktohere = 1

  " Detect which plugins are open
  if exists('t:NERDTreeBufName')
      let nerdtree_open = bufwinnr(t:NERDTreeBufName) != -1
  else
      let nerdtree_open = 0
  endif
  let tagbar_open = bufwinnr('__Tagbar__') != -1

  " Perform the appropriate action
  if nerdtree_open && tagbar_open
      NERDTreeClose
      TagbarClose
  elseif nerdtree_open
      TagbarOpen
  elseif tagbar_open
      NERDTree
  else
      NERDTree
      TagbarOpen
  endif

  " Jump back to the original window
  for window in range(1, winnr('$'))
    execute window . 'wincmd w'
    if exists('w:jumpbacktohere')
      unlet w:jumpbacktohere
      break
    endif
  endfor
endfunction

Ответы [ 7 ]

21 голосов
/ 01 октября 2014

Поскольку Vim поставляется с плагином matchit, все, что мне нужно было сделать, это активировать его:

vim ~/.vimrc

Затем добавить следующее в ваш .vimrc:

set nocompatible
filetype plugin on
runtime macros/matchit.vim
20 голосов
/ 12 октября 2011

На странице плагина matchit написано:

Убедитесь, что в вашем файле vimrc есть строка типа

:filetype plugin on

.Это позволяет подключать плагины файловых типов, многие из которых сообщают matchit.vim, какие подходящие пары использовать.

19 голосов
/ 02 сентября 2011

Эта строка

runtime macros/matchit.vim

является стандартным способом активации matchit и работает на всех моих машинах.

Работает ли matchit после ввода

:runtime macros/matchit.vim

в обычном режиме?

5 голосов
/ 15 ноября 2012

У меня возникла та же проблема после того, как я обновил некоторые из моих плагинов vim до последней версии для 7.3.

Но когда я бегу

:MatchDebug

это исправляет проблему для меня.

3 голосов
/ 09 июня 2018

К вашему сведению: в vim 8 runtime macros/matchit.vim становится packadd! matchit. Этот сайт мне очень помог.

2 голосов
/ 15 февраля 2014

У меня была проблема с совпадением скобок в matchit в C ++ / C, когда были закомментированные скобки.Следующие шаги, взятые из этого сообщения на форуме , написанного этим парнем , решили его для меня, а также в значительной степени объяснили, как все это работает:

  1. Создайте папку ~ / .vim / plugin, если ее там еще нет:

    mkdir ~/.vim/plugin 
    
  2. Создайте файл с именем ~ / .vim / plugin / matchit.vim:

    vi ~/.vim/plugin/matchit.vim 
    

    и следующее содержимое:

    runtime macros/matchit.vim 
    
  3. Создайте каталог ~ / .vim / doc, если его там еще нет:

    mkdir ~/.vim/doc
    
  4. Скопировать /usr/share/vim/vim73/macros/matchit.txt в ~ / .vim / doc /:

    cp /usr/share/vim/vim73/macros/matchit.txt ~/.vim/doc/
    
  5. Откройте vi

    vi
    

    и выполните в нем следующее:

    :helptags ~/.vim/doc 
    
  6. Убедитесь, что ваш ~ / .vimrc включает одно из следующего:

    source $VIMRUNTIME/vimrc_example.vim 
    

    или

    runtime vimrc_example.vim 
    

    или

    filetype plugin on 
    

    или

    filetype plugin indent on 
    
  7. Добавьте в свой vimrc следующую автокоманду:

    " make matchit work on C-like filetypes 
    " c and cpp are already handled by their ftplugin 
    au Filetype css,javascript 
            \ let b:match_words = &matchpairs 
    
  8. Перезапустите Vim.

0 голосов
/ 01 августа 2012

У меня была похожая проблема.Я пробовал runtime macros/matchit.vim с помощью скрипта, предоставленного VIM, и он не работал.Поэтому я скачал этот скрипт в версии 1.13.2 из http://www.vim.org/scripts/script.php?script_id=39,, разархивировал его в ~ / vimfiles, и он работает!

...