Arhn - архитектура программирования

Плагин VIM для автозаполнения для комбинации импорта

Я заметил, что у редактора Atom есть одна очень хорошая функция, когда я печатаю во время работы с python.

from XXX import 

он показывает список элементов, которые можно импортировать из XXX

Atom показывает список вещей, которые можно импортировать. Можно ли настроить VIM для того же?

Есть какой-нибудь плагин?

27.04.2018

Ответы:


1

завершение импорта

Vim имеет четыре функции, которые можно использовать для завершения импорта в Python:

  • :help 'include' сообщает Vim, как распознать «включение» в вашем коде. Значение по умолчанию для Python (^\s*\(from\|import\)) разумно.

  • :help 'define' можно использовать, чтобы сообщить Vim, как должно выглядеть определение. Не существует значения по умолчанию, характерного для Python, но хорошим началом будет следующее:

    :set define=^\\s*def
    
  • :help compl-define позволяет выполнять определения, собранные во включенных файлах с помощью <C-x><C-d>. Или вы можете настроить :help 'complete' для включения определений и просто использовать <C-p> или <C-n>:

    :set complete+=d
    
  • :help 'path' сообщает Vim, где искать файлы, когда вы выполняете :find или gf или включаете/определяете завершение. Однако для того, чтобы это было полезно, 'path' нужно устанавливать осторожно.

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

28.04.2018
  • Как вы понимаете это на снимке экрана? Это то, как атом показывает, хотя без пути просто имя 28.04.2018
  • также почему он показывает popitem, который не является частью ОС? 28.04.2018
  • Первый вопрос: я нажал <C-x><C-d> в режиме вставки. Второй вопрос: потому что это не очень умно. 28.04.2018
  • как атом делает это по-умному? 28.04.2018
  • Как Атом это делает, я понятия не имею. Может быть, он объединяет некоторый код Python, который использует самоанализ, чтобы знать, что и когда предлагать. Это то, что делают джедаи, насколько я знаю. 28.04.2018
  • Я на MacOSX, и комбинация, которую вы упомянули, не работает. Вы тоже на Маке? 28.04.2018
  • Да, я на Mac, очевидно. Вы должны добавить путь к заголовкам python в параметр Vim 'path'. Для меня это /opt/local/Library/Frameworks/Python.framework/Versions/2.7. 28.04.2018
  • Извините, я попытался установить path=/opt/local/Library/Frameworks/Python.framework/Versions/2.7 в .vimrc, но после этого это тоже не сработало. 28.04.2018
  • Важная часть Для меня это… Для меня. Вам нужно будет выяснить, где находятся ваши заголовки. Вы можете попробовать >>> import sys, а затем >>> print sys.path в Python REPL. 28.04.2018
  • Или в Vim: :py import sys и :py print sys.path. 28.04.2018
  • Я проголосовал за ваше решение, но, честно говоря, это не то, чего я хочу 28.04.2018
  • Впрочем, это именно то, о чем вы спрашиваете. 28.04.2018
  • Я заменил статичный скриншот на гифку. Отправной точкой является почти стоковый Vim. 28.04.2018
  • Если вы увидите функциональность Atom, вы поймете. Вам даже не нужно печатать даже частично после импорта из XX. Он автоматически перечисляет все возможные импорты из пакета XX, чтобы вы могли выбрать 29.04.2018
  • Я показываю только встроенную функциональность, а в Vim (к счастью) нет автодополнения. Если вам нужно автозаполнение, используйте плагин автозаполнения, как указано в другом ответе. 29.04.2018
  • Я использую YouCompleteMe, но у него нет этой функции 29.04.2018

  • 2

    Оказывается, то, что я искал, это CTRL+Пробел.

    В Atom эта часть автоматизирована, так как вам даже не нужно нажимать CTRL+Пробел.

    29.04.2018

    3

    Много. Но это на данный момент лучшие:

    1. Deoplete + deoplete-джедай

      1. https://github.com/zchee/deoplete-jedi
      2. https://github.com/Shougo/deoplete.nvim
    2. Использование ЛСП

      1. https://github.com/neovim/python-client
      2. https://github.com/autozimu/LanguageClient-neovim
    27.04.2018
  • Разве nvim не для NeoVim? Мое требование для VIM 28.04.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..