Vim構成に問題があります...
このエラーは、python(.py)ファイルを開くときに発生します。
Error detected while processing BufRead Auto commands for "*.py":
E20: Mark not set
たとえばhtml(.html)またはRuby(.rb)ファイルを開く場合、エラーは発生しません。
これが私のvim設定です。プラグインはすべてインストールされています。
""" VUNDLE """
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
" plugins
Plugin 'valloric/youcompleteme'
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
Plugin 'shawncplus/phpcomplete.vim'
Plugin 'quramy/tsuquyomi'
"Plugin 'Shougo/vimproc.vim'
Plugin 'leafgarland/TypeScript-vim'
call vundle#end()
filetype plugin indent on
""" CONFIG """
set history=200 "command history
set so=7 "add 7 lines when moving up/down
set hlsearch "highlight search results
set showmatch "highlight matching brackets
set ruler
set relativenumber
syntax enable
set encoding=utf8
set ffs=unix,dos,mac "unix as standard file type
set expandtab
set smarttab
set shiftwidth=4
set tabstop=4
set ai "Auto indent
set si "Smart indent
set nowrap "Wrap lines
set laststatus=2
" whitespace
set list
set listchars=tab:>-,trail:~,extends:>,precedes:<
set nobackup
set nowb
set noswapfile
" NERDTree
map <C-n> :NERDTreeToggle<CR>
"autocmd vimenter * NERDTree
" NERDTreeTabs
let NERDTreeShowHidden=1
let g:nerdtree_tabs_open_on_console_startup=1
map <Leader>n <plug>NERDTreeTabsToggle<CR>
au FileType php setl ofu=phpcomplete#CompletePHP
au FileType Ruby,eruby setl ofu=rubycomplete#Complete
au FileType html,xhtml setl ofu=htmlcomplete#CompleteTags
au FileType css setl ofu=csscomplete#CompleteCSS
au FileType python setl ofu=pythoncomplete#Complete
au BufNewFile,BufRead *.py, *.php, *.rb, *.html, *.js, *.ts, *.md
\ set tabstop=4 |
\ set softtabstop=4 |
\ set shiftwidth=4 |
\ set textwidth=79 |
\ set expandtab |
\ set autoindent |
\ set fileformat=unix
au BufNewFile,BufRead *.css, *.scss, *.json
\ set tabstop=2 |
\ set softtabstop=2 |
\ set shiftwidth=2 |
\ set textwidth=79 |
\ set expandtab |
\ set autoindent |
\ set fileformat=unix
let g:ycm_python_binary_path = 'python'
if !exists("g:ycm_semantic_triggers")
let g:ycm_semantic_triggers = {}
endif
" TypeScript plugin tsuquyomi
let g:ycm_semantic_triggers['TypeScript'] = ['.']
let g:tsuquyomi_import_curly_spacing = 0
let g:tsuquyomi_single_quote_import = 1
map <C-i> :TsuImport<CR>
hi Pmenu ctermbg=green
「BufNewFile」の行を別の方法(1 set
コマンド、複数のset
コマンド、パイプあり、パイプなし、バックスラッシュあり、バックスラッシュなしなど)に変更しましたが、何の助けにもなりませんでした。
誰が問題が正確に何であるか知っていますか?
気づきにくいです(2回見なければなりませんでした)が、問題は、:autocmd
定義のパターン間のスペースです。
構文は
:au[tocmd] [group] {event} {pat} [nested] {cmd}
:help {pat}
は、個々のパターンの間に空白があってはならないことを示しています。
:au BufNewFile,BufRead *.py, *.php, *.rb, *.html, *.js, *.ts, *.md echomsg 'test'
:au BufRead *.py
--- Auto-Commands ---
filetypedetect BufRead
*.py setf python
BufRead
*.py *.php, *.rb, *.html, *.js, *.ts, *.md echomsg 'test'
ご覧のとおり、Vimはfirstパターンのみを認識し、以下のすべてを(Ex)コマンドとして受け取ります!
:*
コマンドは、レジスターの内容(おそらくゴミ)を実行し、これにより、表示されたE20
エラーが発生します(おそらくレジスターに'
文字があるため)。
空白を削除します。既にコメントしたので、各オプションに対して:set
コマンドを繰り返すのをスキップすることもできます。
:au BufNewFile,BufRead *.py,*.php,*.rb,*.html,*.js,*.ts,*.md ...