проблема выделения синтаксиса в gvim 7.3

2

Я обновил свой Ubuntu до 11.04, и мой gvim все испортил. Я в основном начинаю с нуля и мне нужна помощь. По рекомендации я начинаю перемещать все, что связано с vim (плагины и vimrc), в/usr/share/vim/vimfiles

after
autoload
colors
doc
ftpplugin
gvimrc (file)
nerdtree
plugin
snippets
syntax
vimrc (file)
vimrc.dpkg-old (file)
vimrc.tiny (file)

У меня также есть файл .vimrc. /home/laptop/.vimrcЭтот файл на самом деле содержит настройки / сопоставления, которые я добавил

:set runtimepath получает:

runtimepath=~/.vim, /usr/share/vim/vimfiles/vimfiles, 
/usr/share/vim/vimfiles, /usr/share/vim/vimfiles/vimfiles/after,
~/.vim/after

У меня нет папки, как указано выше /usr/share/vim/vimfiles/vimfiles

Вопросы: почему есть два vimrc? я должен поменять содержимое /usr/share/vim/vimfiles/vimrcс /home/laptop/.vimrc?

ошибки

Error detected while processing /home/laptop/.vimrc
line 6
E484: Can't open file /usr/share/vim/syntax/syntax.vim

Строка 6:

syntax on

мои /usr/share/vim/vimfiles/syntaxпервоначально содержала только snippet.vim, однако, /usr/share/vim/vim73/syntaxпапка содержала много много других файлов. лайкgdb.vim, jsp.vim, groovy.vim, libao.vim...etc (more than 60 files)

поэтому я скопировал все эти файлы, /usr/share/vim/vimfiles/syntaxно ошибка все еще есть

как я могу вернуть подсветку синтаксиса?

Обновить

  • имел vim73_backup и теперь изменил его обратно на /user/share/vim/vim73
  • :set rtp? не имеет vim73 (как показано выше)
  • :echo $VIM $VIMRUNTIMEпоказывает, /usr/share/vim/vimfiles /usr/share/vim/vimfilesтак как это неправильно .. как я могу получить vim73 здесь?
вездесущий
источник
Спасибо за получение этой информации. Ваш «путь выполнения» объясняет, почему ваша syntax onкоманда не работала и почему sudo ln -s ...она работает. :help $VIMRUNTIMEобъясняет, почему он установлен так же, как $ VIM. :help $VIMобъясняет, как устанавливается $ VIM, но я не могу судить по информации, которую мы видели до сих пор, как она была установлена /usr/share/vim/vimfiles. Это неверно. Учитывая другую информацию, которую вы дали, ваш $ VIM должен быть /usr/share/vim. Вы сами установили $ VIM? Что произойдет, если вы запустите vim as VIM= vim -u NONEзатем выполните :echo $VIM?
Гариджон

Ответы:

5
  • Нет причин копировать файлы в / usr / share / vim / vim73 где-либо еще. Ваш gvim уже знает об этих файлах и использует их при необходимости. Вы должны удалить из / usr / share / vim / vimfiles все файлы, которые вы скопировали туда без изменений из / usr / share / vim / vim73.
  • Vim ищет файлы времени выполнения (например, файлы синтаксиса) в нескольких местах. Эти места указываются в параметре runtimepath (для краткости rtp). Вы можете узнать больше об этом в

    :help rtp

    разделе. Вы можете увидеть текущее значение 'rtp', выполнив.

    :set rtp?

    Как вы можете видеть из этого, Vim уже просматривает ~ / .vim, / usr / share / vim / vimfiles и некоторые другие места. как / usr / share / vim / vim73.
  • Вам нужно выяснить, почему вы получаете это сообщение об ошибке в строке 6, потому что :syntax onкоманда не должна искать синтаксис / syntax.vim в / usr / share / vim /. Это говорит о том, что ваши переменные $ VIM и / или $ VIMRUNTIME перепутаны. Попробуйте выполнить

    :echo $VIM $VIMRUNTIME

    Результат должен быть /usr/share/vim /usr/share/vim/vim73.
  • В дополнение к тому, что написал benizi (как я это писал), вы можете узнать о различных vimrcs в вашей системе, прочитав.

    :help vimrc

    Вы также можете увидеть, где ваш vim ищет свои vimrcs, выполнив,

    :version

    и вы можете увидеть, какие файлы есть у вашего vim. на самом деле получены путем выполнения

    :scriptnames

Всего этого, вероятно, недостаточно, чтобы полностью исправить вашу установку, но это будет хорошим началом для выяснения того, что сломано, и понимания того, куда должны идти различные файлы. Мы можем пойти оттуда, чтобы все работало правильно.

garyjohn
источник
пожалуйста, смотрите мои обновления относительно вашего ответа. спасибо за работу со мной над этим
Вездесущий
добавив следующее к моему .vimrc сумасшедший все денди. :let &runtimepath.=',/usr/share/vim/vim73' :let $VIMRUNTIME = "/usr/share/vim/vim73"плюс то, что вы предложили, конечно
Вездесущий
Я посмотрел ваши обновления и оставил комментарий под ними. Имеет смысл, что эти изменения заставили его работать, но, как я писал выше, фундаментальная проблема заключается в том, что ваш $ VIM как-то настроен неправильно.
Гариджон
1

Вы, кажется, неправильно истолковали предложение в вопросе, который вы связали.

Не помещайте ничего в глобально общие каталоги / usr / share / vim / (что-нибудь). Как вы обнаружили слишком поздно, он может быть перезаписан при обновлении Vim.

Вместо этого поместите пользовательские файлы в каталоги в каталоге с именем .vim в вашем домашнем каталоге. Так что, если у вас есть собственный /usr/share/vim/vim72/syntax/gdb.vimфайл, вставьте его $HOME/.vim/syntax/gdb.vim. Если у вас есть индивидуальная схема цветов, вставьте ее $HOME/.vim/colors/name-of-scheme.vim.

Чтобы прямо ответить на вопрос, который вы задали, ниже приведены цели различных vimrcупомянутых вами:

/home/laptop/:
    .vimrc            - your personal .vimrc (won't be touched on upgrade, etc.)
/usr/share/vim/vimfiles/:
     vimrc            - systemwide `vimrc` (affects all users on the system)
     vimrc.dpkg-old   - possibly your pre-upgrade modified version
     vimrc.tiny       - systemwide `vimrc` for the 'tiny' version of Vim
benizi
источник
понял. Я перенесу все, как ~/.vim/только у меня будет проблема с подсветкой синтаксиса. есть мысли по этому поводу?
Вездесущий