проблема выделения синтаксиса в 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

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


пожалуйста, смотрите мои обновления относительно вашего ответа. спасибо за работу со мной над этим
— Вездесущий

добавив следующее к моему .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

понял. Я перенесу все, как ~/.vim/только у меня будет проблема с подсветкой синтаксиса. есть мысли по этому поводу?
— Вездесущий
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.