LINUX.ORG.RU

В vim'е не работает автокомплит

 ,


0

4

Пытаюсь приобщиться к вечному, поставил vim :D Конфиг

call plug#begin("~/.vim/autoload")

Plug 'scrooloose/nerdtree', {'on':'NERDTreeToggle'}

Plug 'fatih/vim-go'
Plug 'nsf/gocode', {'branch':'master', 'rtp':'vim'}

Plug 'spf13/vim-autoclose'

Plug 'kristijanhusak/vim-hybrid-material'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

call plug#end()

syntax enable
set background=dark
colorscheme hybrid_material

set autoindent
set smartindent
set encoding=utf-8
set smartcase
set number
set noswapfile
set cursorline
set cursorcolumn
set expandtab
set smarttab

filetype plugin indent on

command! W :execute ':silent w !sudo tee % > /dev/null' | :edit!

let g:enable_bold_font = 1

let g:airline#extensions#tabline#enabled = 1
let g:airline_theme='hybrid'
let g:airline_powerline_fonts = 1

С таким конфигом в neovim всё ок, а в vim не работает автокомплит. Подскажите, плиз, что я сделал не правильно.

★★★

Добавь

Plug 'Shougo/neocomplete.vim' (vim7) или Plug 'maralla/completor.vim' (vim8)

и

inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <expr> <cr> pumvisible() ? "\<C-y>\<cr>" : "\<cr>"

PS: vim-go предоставляет функционал, но сам комплитом не занимается. В nvim это по-моему встроенно, в vim же отдельный плагин нужен.

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 1)

Чудо-IDE не может даже в автокомплит. Но как же так? Это ведь панацея. Решение всех проблем, которые могут быть решены бибиканием и порчей текста!
ТС, плюнь ты на это дело. Vim это удел админов. И то, не потому что он офигенен, а потому что так исторически сложилось. Найди себе нормальное IDE для своего языка.
Убойный аргумент: для vim не существует ни одного работоспособного интерфейса к gdb.

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

У меня установлен gogland, но для по-быстрому набросать одноразовый скрипт он слишком тяжел.

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

Попробуй добавить:

Plug 'Shougo/neocomplete.vim'
let g:neocomplete#enable_at_startup                 = 1
let g:neocomplete#force_overwrite_completefunc      = 1
let g:neocomplete#enable_smart_case                 = 1
let g:neocomplete#auto_completion_start_length      = 3
let g:neocomplete#sources#syntax#min_keyword_length = 3

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

е потому что он офигенен, а потому что так исторически сложилось.

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

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

Пишу код на сишечке, плюсах, перле и прочей скриптоте, верстаю латех, это всё в виме, без плагинов (кроме filetype, но он встроенный, так что не в счёт). Всё ок. Автодополнение тоже есть. ЧЯДНТ?

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

Вангую, пока ты запустишь свою ультрауберменшевую IDE вроде какой-нибудь IDEA, evilface уже сделает то, что ему было нужно и будет попивать чаёк.

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

Боюсь что QtCreator запускается чуть ли не быстрее vim:)

ультрауберменшевую

Какую?

JacobTwoTwo ()
Ответ на: комментарий от hateyoufeel

А в чём фишка spacemacs? Когда смотрел его, показалось что это просто emacs с классным конфигом и россыпью плагинов. Выглядит круто, но хоткеи у него такие же инопланетянские(и рассчитанные на индивидов с не стандартной клавиатурой, или очень длинными пальцами) как и у Emacs. Вот был бы это emacs с режимами работы и хоткеями vim, тогда да, годный был бы редактор...

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

Тормоза вима? 0_o

Ну да. У vim раньше, а, возможно, и сейчас, плагины и ui работали в одном треде. Поэтому при залипании какого-либо плагина весь редактор вставал колом.

Плюс, в отличии от vim, в emacs можно сделать полноценный repl, что очень облегчает разработку на многих языках.

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

Всегда думал что емакс в одном треде работает, потому что было невозможно его убить пока он там грузить свою скриптоту. У меня вот сейчас vim запускается моментально, neovim немного тормозит при старте.

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

Всегда думал что емакс в одном треде работает, потому что было невозможно его убить пока он там грузить свою скриптоту.

У имагза такое тоже бывает, но не настолько часто и страшно. Хотя тот же intero иногда может весь имагз подвесить, да.

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

Я думал про него, но для него нормального гуя нет. У имагза есть киллерфичи: возможность показывать pdf, что актуально в latex, и возможность иметь разные шревты в разных буферах.

hateyoufeel ★★★★★ ()

в neovim всё ок, а в vim не работает автокомплит

а почему бы и не использовать nvim ? Он вроде бы не плох

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

Очень даже неплох, но вим запускается мгновенно, а нео с задержкой в секунду-полторы. Это немного бесит, учитывая что конфиги у них одинаковые. А еще deoplete.nvim то ли косячный, то ли сильно WIP. А еще на целый символ больше набирать на клавиатуре! :D

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

Когда-то видел редактор на базе нео с заточкой под rust, там вроде был гуй.

Это очень круто, но spacemacs может это и ещё больше.

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

Ну да, емакс не редактор, а операционная система :D

dnb ★★★ ()

Для го рекомендую vscode, там крутой плагин.

Deleted ()
Ответ на: комментарий от dnb

Очень даже неплох, но вим запускается мгновенно, а нео с задержкой в секунду-полторы. Это немного бесит, учитывая что конфиги у них одинаковые.

Не подтверждаю:

[d_a@home ~]$ time /usr/bin/vim +qall!

real	0m0.095s
user	0m0.078s
sys	0m0.018s
[d_a@home ~]$ time /usr/bin/nvim +qall!

real	0m0.140s
user	0m0.069s
sys	0m0.043s

(unified configuration, nvim грузит на 1 плагин больше.)

А еще deoplete.nvim то ли косячный, то ли сильно WIP.

Поделочки от Shougo у меня тоже никогда не работали. И вырвиглазный джапанглиш в справке отбивает охоту разбираться.

А еще на целый символ больше набирать на клавиатуре!

Это элементарно разруливается через shell, сколько символов набирать. У меня лично

[d_a@home ~]$ echo $EDITOR
nvim
[d_a@home ~]$ type vim
vim является функцией
vim () 
{ 
    command $EDITOR "$@"
}
Drop-in replacement же.

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

У меня вот так

user@arch ~ ➤ time /usr/sbin/nvim +qall!
/usr/sbin/nvim +qall!  0,35s user 0,07s system 86% cpu 0,484 total
user@arch ~ ➤ time /usr/bin/vim +qall! 
/usr/bin/vim +qall!  0,11s user 0,01s system 99% cpu 0,121 total
Может из-за того, что сам deoplete на питоне написан. Но замены ему нет.

vim является функцией

О, спасибо. Это лучше симлинка)

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

У меня вот так [...] Может из-за того, что сам deoplete на питоне написан. Но замены ему нет.

Ну тут не полторы секунды, допустим, как вы писали, но всё равно в три раза медленнее. Если этот deoplete вам нужен для каких-то языков программирования, то можно попробовать его грузить только для нужных filetype, а не вообще каждый раз при старте. Plug это из коробки умеет. То же самое всех остальных плагинов касается, особенно типа vim-go, нет вообще никакого смысла сорсить их каждый раз на запуске.

vim является функцией

О, спасибо. Это лучше симлинка)

Алиас тоже сработает. (Не знаю зачем они нужны правда, если функции умеют всё то же самое и много больше.)

d_a ★★★★★ ()
Последнее исправление: d_a (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.