Como posso validar meu .vimrc?

2

Meus arquivos .vimrc parecem funcionar e não geram erros visíveis durante a operação normal. Recentemente, comecei a usar o Knife e descobri que não posso usar o Vim como meu editor para editar o conteúdo do Chef porque algo está fazendo com que ele saia com um código incorreto. Remover o arquivo .vimrc fez o Knife feliz, então estou assumindo que algo no meu .vimrc é ruim.

Existe algum comando ou ferramenta que eu possa usar para checar o próprio erro do .vimrc?

Este é o vimrc em questão:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle, required
Bundle 'gmarik/vundle'
Bundle 'scrooloose/syntastic'
Bundle 'scrooloose/nerdtree'
Bundle 'michalbachowski/vim-wombat256mod'
Bundle 'spf13/vim-autoclose'
Bundle 'leshill/vim-json'
Bundle 'pangloss/vim-javascript'
Bundle 'hail2u/vim-css3-syntax'
Bundle 'tpope/vim-markdown'
Bundle 'beyondwords/vim-twig'
Bundle 'spf13/PIV'
Bundle 'othree/html5-syntax.vim'
Bundle 'vim-scripts/HTML-AutoCloseTag'
Bundle 'vim-scripts/indenthtml.vim'
Bundle 'Lokaltog/powerline'
" Keep bundle commands between here and filetype plugin indent on.



filetype plugin indent on     " required

" Brief help
" :BundleList          - list configured bundles
" :BundleInstall(!)    - install (update) bundles
" :BundleSearch(!) foo - search (or refresh cache first) for foo
" :BundleClean(!)      - confirm (or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle commands are not allowed.

" NERDTree config
map <C-n> :NERDTreeToggle<CR>
autocmd vimenter * if !argc() | NERDTree | endif

" enable paste mode
nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode

" Set PHP debugger port to 9001
let g:debuggerPort = 9001

set t_Co=256
colorscheme wombat256mod
:syntax enable

python from powerline.vim import setup as powerline_setup
python powerline_setup()
python del powerline_setup
set rtp+=/Users/shane/.vim/bundle/powerline/powerline/bindings/vim

set number              " Enables line numbers
set cindent             " autoindent
set tabstop=4           " set tab distance
set shiftwidth=4
set expandtab           " force tabs into spaces
set ruler

let g:html_indent_script1 = "inc"
let g:html_indent_style1 = "inc"

autocmd BufNewFile,BufRead Gemfile set filetype=ruby
autocmd BufNewFile,BufRead Vagrantfile set filetype=ruby
    
por shanethehat 07.04.2014 / 18:46

2 respostas

1

Você não pode. Como a maioria das linguagens interpretadas (todas?), A única coisa que pode ser feita é verificar a validade sintática, mas se a função chama etc., você anotou qualquer sentido, mostra apenas quando o caminho do código específico é realmente atingido. / p>

A única coisa que você pode fazer é reduzir o problema analisando o que é o "código incorreto" e o que ele está tentando lhe dizer. Você poderia, por exemplo, tentar depurar o problema comentando todas as coisas das quais você não tem certeza se elas não causam o problema, tente se o Knife funciona com essa configuração e habilite iterativamente o código anterior comentado até obter o erro novamente.

    
por 07.04.2014 / 18:56
0

Você tem certeza de que é o código de saída do vim e não o status do arquivo que está editando? Em :help 'backupcopy' , há um parágrafo sobre como usar o vim para editar seu arquivo crontab. Você pode chegar lá diretamente (mas perder o contexto) com :help crontab :

                 *crontab*
One situation where "no" and "auto" will cause problems: A program
that opens a file, invokes Vim to edit that file, and then tests if
the open file was changed (through the file descriptor) will check the
backup file instead of the newly created file.  "crontab -e" is an
example.

Se isso pode ser o que está acontecendo com o Knife, tente adicionar :set bkc=yes ao seu arquivo vimrc. Você pode salvar muitos testes, já que não importa o quanto você comente no seu arquivo vimrc, o vim irá redefinir a opção 'compatible' assim que encontrar um arquivo vimrc, e isso irá definir 'backupcopy' como "auto" . Eu tenho o seguinte no meu arquivo vimrc:

" When vim is called from "crontab -e" we need to set this option specially:
au BufEnter /private/tmp/crontab.* setl backupcopy=yes
    
por 08.04.2014 / 01:05

Tags