LINUX.ORG.RU

Vim 8.2 ошибка vim-plug manager

 , , ,


0

1

Здравствуйте. Возникает следующая ошибка при установке vim-plug:

Обнаружена ошибка при обработке /home/user/.vim/autoload/plug.vim:
строка 2665:
E126: Пропущена команда :endfunction
Обнаружена ошибка при обработке function plug#end[82]..<SNR>8_reorg_rtp:
строка    1:
E121: Неопределённая переменная: s:first_rtp
E116: Параметры для функции empty(s:first_rtp) заданы неверно
строка   21:
E121: Неопределённая переменная: s:first_rtp
E116: Параметры для функции empty(s:first_rtp) заданы неверно
Нажмите ENTER или введите команду для продолжения

~/.vim/autoload/plug.vim содержится в выводе :scriptnames.

VIM - Vi IMproved 8.2 (2019 Dec 12, собрано Jan 26 2020 18:34:16)
Заплатки: 1-149
Скомпилировано:  user@ghostHost
Огромная версия без графического интерфейса.
  Включённые(+) и отключённые(-) особенности:
+acl               -farsi             -mouse_sysmouse    -tag_old_static
+arabic            +file_in_path      +mouse_urxvt       -tag_any_white
+autocmd           +find_in_path      +mouse_xterm       -tcl
+autochdir         +float             +multi_byte        +termguicolors
-autoservername    +folding           +multi_lang        +terminal
-balloon_eval      -footer            -mzscheme          +terminfo
+balloon_eval_term +fork()            +netbeans_intg     +termresponse
-browse            +gettext           +num64             +textobjects
++builtin_terms    -hangul_input      +packages          +textprop
+byte_offset       +iconv             +path_extra        +timers
+channel           +insert_expand     -perl              +title
+cindent           +job               +persistent_undo   -toolbar
+clientserver      +jumplist          +popupwin          +user_commands
+clipboard         +keymap            +postscript        +vartabs
+cmdline_compl     +lambda            +printer       filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

set number
set nocompatible
set showcmd
autocmd BufWritePost .vimrc source %
syntax on
set encoding=utf-8

"let g:XkbSwitchEnabled = 1
"let g:XkbSwitchIMappings = ['ru']
let 
if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall --sync | source $MYVIMRfiletype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

set number
set nocompatible
set showcmd
autocmd BufWritePost .vimrc source %
syntax on
set encoding=utf-8

"let g:XkbSwitchEnabled = 1
"let g:XkbSwitchIMappings = ['ru']
let 
if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif

call plug#begin('/home/user/.vim/plugged')
call plug#end()C
endif

call plug#begin('/home/user/.vim/plugged')
call plug#end()    +vertsplit
+cmdline_hist      +langmap           +profile           +virtualedit
+cmdline_info      +libcall           -python            +visual
+comments          +linebreak         -python3           +visualextra
+conceal           +lispindent        +quickfix          +viminfofiletype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

set number
set nocompatible
set showcmd
autocmd BufWritePost .vimrc source %
syntax on
set encoding=utf-8

"let g:XkbSwitchEnabled = 1
"let g:XkbSwitchIMappings = ['ru']
let 
if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif

call plug#begin('/home/user/.vim/plugged')
call plug#end()
+cryptv            +listcmds          +reltime           +vreplace
+cscope            +localmap          +rightleft         +wildignore
+cursorbind        -lua               -ruby              +wildmenu
+cursorshape       +menu              +scrollbind        +windows
+dialog_con        +mksession         +signs             +writebackup
+diff              +modify_fname      +smartindent       +X11
+digraphs          +mouse             -sound             +xfontset
-dnd               -mouseshape        +spell             -xim
-ebcdic            +mouse_dec         +startuptime       -xpm
+emacs_tags        -mouse_gpm         +statusline        +xsmp_interact
+eval              -mouse_jsbterm     -sun_workshop      +xterm_clipboard
+ex_extra          +mouse_netterm     +syntax            -xterm_save
+extra_search      +mouse_sgr         +tag_binary        
            общесистемный файл vimrc: "$VIM/vimrc"
         пользовательский файл vimrc: "$HOME/.vimrc"
  второй пользовательский файл vimrc: "~/.vim/vimrc
"
          пользовательский файл exrc: "$HOME/.exrc"
                      файл умолчаний: "$VIMRUNTIME/defaults.vim"
          значение $VIM по умолчанию: "/usr/local/share/vim
"
Параметры компиляции: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -O2 -fno-strength-reduce -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Сборка: gcc   -L/usr/local/lib -Wl,--as-needed -o vim    -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux -ldl    

.vimrc:

filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

set number
set nocompatible
set showcmd
autocmd BufWritePost .vimrc source %
syntax on
set encoding=utf-8

"let g:XkbSwitchEnabled = 1
"let g:XkbSwitchIMappings = ['ru']
let 
if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif

call plug#begin('/home/user/.vim/plugged')
call plug#end()

Вывод ls -la:

drwxr-xr-x  4 user user     4096 мая  1 00:58  .vim
-rw-r--r--  1 user user      668 мая  1 02:08  .vimrc

Пробовал разные версии plug.vim. Следовательно, ошибка не в коде плагина. Но в чём же?

Ты крэка обкурился? У VimPlug нормальный мануал в README, а ты…

let 
if empty(glob('~/.vim/autoload/plug.vim'))
 silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
   \ https://raw.githubusercontent.com/junegunn/vim->plug/master/plug.vim
 autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif

По порядку:

  • let? Что let?
  • if empty(glob( — нафейхоа? Есть человеческая функция filereadable(), чем она тебе не угодила? Почему empty()?
  • silent !curl — Зачем делать текстовым редактором то, что он делать в принципе не должен?
  • autocmd внутри условия, которое проверяет наличие файла и делает какую-то магию, успешность которой ты даже не проверяешь?

Показывать vimrc здорового человека не стану, а то вдруг тебя ещё инфаркт хватит…

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от mord0d

Я уже настолько замучился с поиском решения, что начал копипастить, что попало в надежде, что сработает. Признаюсь это легче, чем думать и разбираться в истинных началах. Но данные строчки кода можно просто выкинуть, ситуация почти не поменяется. Ошибка берёт начало здесь:

call plug#begin('/home/user/.vim/plugged')
call plug#end()

Да и я чайничек без крышечки, который ещё даже не разобрался в управлении редактором, не говоря уже о конфиге.

Alter_ego
() автор топика
Ответ на: комментарий от Alter_ego

Да и я чайничек без крышечки, который ещё даже не разобрался в управлении редактором, не говоря уже о конфиге.

Ты достаточно подробно изложил проблему, приложил нужную информацию, потому я посчитал тебя за опытного вимера.

Другой разговор.

Инициировать плагин-менеджер лучше в самом начале; у меня это выглядит так:

set nocompatible

call plug#begin('~/.vim/vimplug')
  " Plug '...'
  " ...
  " Plug '...'
call plug#end()

syntax on
filetype plugin indent on
colorscheme ...

" source ...
" ...
" let ...
" ...
" set ...
" ...

Судя по ошибке у тебя plug.vim битый.
Удали код (который я процитировал в предыдущем комментарии) из своего vimrc. Удали ~/.vim/autoload/plug.vim и скачай его строго по инструкции отсюда. Убедись, что он весит 78728 байт (на момент написания этого комментария).

Также не лишним будет проверить на наличие ошибок файловую систему, файл не просто так битый.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Сделал всё, кроме проверки файловой системы, сделаю немного позже. Файл не был битым, но на всякий случай повторил операцию. Вот какой еще прикол, внутренние команды доступны в Vim’е, такие, как, например, PlugDiff, при активации которой такой результат E117: Неизвестная функция: <SNR>2_diff, или PlugInstall, которая даже устанавливает рабочие плагины, только с выводом каких-то ошибок (часть их):

E117: Неизвестная функция: s:format_message
E116: Параметры для функции append заданы неверно
Обнаружена ошибка при обработке function <SNR>2_job_cb[4]..<SNR>2_job_exit_cb[3]
..<SNR>2_reap[12]..<SNR>2_bar:
строка    5:
E117: Неизвестная функция: <SNR>2_progress_bar
Обнаружена ошибка при обработке function <SNR>2_job_cb[4]..<SNR>2_job_exit_cb[4]
..<SNR>2_tick[2]..<SNR>2_progress_opt[1]..<SNR>2_git_version_requirement:
строка    2:
E117: Неизвестная функция: s:system
E116: Параметры для функции split(s:system(['git', '--version']))[2], '\.'), 'st
r2nr(v:val)') заданы неверно
E116: Параметры для функции split(split(s:system(['git', '--version']))[2], '\.'
), 'str2nr(v:val)') заданы неверно
E116: Параметры для функции map(split(split(s:system(['git', '--version']))[2], 
'\.'), 'str2nr(v:val)') заданы неверно
строка    4:
E121: Неопределённая переменная: s:git_version
E116: Параметры для функции s:version_requirement(s:git_version, a:000) заданы н
еверно
Обнаружена ошибка при обработке function <SNR>2_install[1]..<SNR>2_update_impl[1
13]..<SNR>2_update_vim[3]..<SNR>2_bar:
строка    5:
E117: Неизвестная функция: <SNR>2_progress_bar
Обнаружена ошибка при обработке function <SNR>2_install[1]..<SNR>2_update_impl[1
13]..<SNR>2_update_vim[4]..<SNR>2_tick[2]..<SNR>2_progress_opt[1]..<SNR>2_git_ve
rsion_requirement:
строка    2:
Alter_ego
() автор топика

Разобрался, это был баг в Vim или некорректная или поврежденная его сборка. Пересобрал текущую версию из репозитория, ошибки пропали, всем спасибо.

Alter_ego
() автор топика
Ответ на: комментарий от NeXTSTEP

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

mord0d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.