vim nie akceptuje składni w vimrc

2

Kiedy umieściłem następujące polecenie w ~ / .vimrc i zapisz go,

składnia

vim dostaje błędy podczas otwierania. Myślę, że istnieją pewne konflikty konfiguracji vima. Oto błędy:

Wykryto błąd podczas przetwarzania /Users/Home/.vimrc: linia 1: E484:   Nie można otworzyć pliku /usr/share/vim/syntax/syntax.vim

Byłbym wdzięczny za pomoc w pozbyciu się tego problemu. Używam os x lamparta śnieżnego 6.8

user1098135
źródło
Jeśli zaczniesz vim, rodzaj :syntax on a następnie & lt; Enter & gt ;, czy to działa?
jaume
Mówi „Brak elementów składni zdefiniowanych dla tego bufora”
user1098135
Jak zainstalowałeś vima? Czy używasz wersji zainstalowanej domyślnie z OS X?
daviewales

Odpowiedzi:

2

Szybką i brudną poprawką jest utworzenie brakującego pliku z zawartością:

" Vim syntax support file
" Maintainer:   Bram Moolenaar <[email protected]>
" Last Change:  2001 Sep 04

" This file is used for ":syntax on".
" It installs the autocommands and starts highlighting for all buffers.

if !has("syntax")
  finish
endif

" If Syntax highlighting appears to be on already, turn it off first, so that
" any leftovers are cleared.
if exists("syntax_on") || exists("syntax_manual")
  so <sfile>:p:h/nosyntax.vim
endif

" Load the Syntax autocommands and set the default methods for highlighting.
runtime syntax/synload.vim

" Load the FileType autocommands if not done yet.
if exists("did_load_filetypes")
  let s:did_ft = 1
else
  filetype on
  let s:did_ft = 0
endif

" Set up the connection between FileType and Syntax autocommands.
" This makes the syntax automatically set when the file type is detected.
augroup syntaxset
  au! FileType *    exe "set syntax=" . expand("<amatch>")
augroup END


" Execute the syntax autocommands for the each buffer.
" If the filetype wasn't detected yet, do that now.
" Always do the syntaxset autocommands, for buffers where the 'filetype'
" already was set manually (e.g., help buffers).
doautoall syntaxset FileType
if !s:did_ft
  doautoall filetypedetect BufRead
endif

co jest ważne (przynajmniej) dla vim 7.0 do 7.3, ponieważ plik nie zmienił się od lat.

Jeśli jednak przyjrzysz się bliżej, to zaskakujące vim próbuje się otworzyć /usr/share/vim/syntax/syntax.vim: Sprawdziłem ścieżkę syntax.vim na różnych wersjach OS X i to właśnie dostałem:

  • OS X 10.8.3 „Mountain Lion”

    /usr/share/vim/vim73/syntax/syntax.vim
    
  • Mac OS X 10.5.8 „Leopard”

    /usr/share/vim/vim70/syntax/syntax.vim
    /usr/share/vim/vim72/syntax/syntax.vim
    

Spodziewałbym się, że Mac OS X „Snow Leopard” będzie podążał podobnym wzorem, więc dlaczego ścieżka jest inna? Co się zmieniło vim, skompilowałeś nowszą wersję lub ją zastąpiłeś?

To może być również to /usr/share/vim/vim<version>/syntax/syntax.vim istnieje, w takim przypadku, alternatywnie, możesz utworzyć link:

sudo mkdir -p /usr/share/vim/syntax/
sudo ln /usr/share/vim/vim<version>/syntax/syntax.vim /usr/share/vim/syntax/syntax.vim
jaume
źródło
Przepraszamy za opóźnioną odpowiedź jaume, nie miałem dostępu do mojego Maca. Nie pamiętam, jak go zainstalowałem. w / usr / share / vim jest tylko ten plik: vimrc.save
user1098135
Dziękujemy za opinię, dlaczego nie stworzysz /usr/share/vim/syntax/syntax.vim z treścią jak pokazano powyżej i sprawdź, czy to rozwiązuje twój problem?
jaume
0

Mac OS Sierra (10.12.6) MacVim 8.0 szuka tego pliku składni w /usr/local/bin/vim/runtime/syntax/syntax.vim

Oto moje kroki:

sudo mkdir -p /usr/local/bin/vim/runtime/syntax/
sudo cp /usr/share/vim/vim74/syntax/syntax.vim /usr/local/bin/vim/runtime/syntax/

to powinno rozwiązać ten błąd.

Ramil
źródło