Insérez l'instruction Import requise pour la complétion du code Python dans Neovim

Public cible de l'article

--Personnes qui veulent réaliser le goût d'écriture de type IDE de Python avec Neovim --Personnes utilisant coc.nvim

introduction

Dans l'environnement de développement intégré (IDE) tel qu'IntelliJ, c'est comme suit Je pense que c'est une histoire courante que la déclaration d'importation requise lors de la prise d'une décision d'achèvement est également insérée en même temps.

java_completion.gif

Le but de cet article est de rendre cela relativement léger lors de l'écriture de Python avec vim.

Ce qui peut être réalisé

C'est mon travail, mais https://github.com/relastle/vim-nayvy Quand j'utilise ce plug-in Vous pouvez faire ce qui suit:

nayvy_coc.gif

Méthode d'introduction

Il peut être installé ci-dessous.

Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'relastle/vim-nayvy'

J'utilise juste la fonction source personnalisée de coc.nvim Il n'est pas nécessaire d'installer un plug-in coc séparé.

Puisque la déclaration d'importation est insérée lorsque l'achèvement est décidé Si rien n'est défini, il doit être explicitement déterminé avec la touche (Ctrl-y).

(Voir LISEZ-MOI pour plus de détails)

Je pense que cela fonctionnera avec vim comme avec-python3.

Supplément

Je pense que la déclaration d'importation de Python est un peu plus spécifique que certains autres langages de la manière suivante:

--Il est très courant d'importer avec un autre nom (importer xxxx comme yy)

Plus précisement

import os.path

os.path.dirname('hoge/fuga')
from os.path import dirname

dirname('hoge/fuga')

Je pense que c'est essentiellement à l'écrivain de décider lequel écrire.

C'est une théorie extrême

import numpy as np

Il est généralement souhaitable d'écrire, mais pour le développement personnel (ou s'il y a accord au sein de l'équipe)

import numpy

Ce sera bien de développer en tant que.

En raison de ces caractéristiques, le problème de l'insertion automatique d'une instruction d'importation lors de l'exécution avec Python Je pense qu'il est difficile de le résoudre en supposant qu'il sera utilisé par tout le monde.

Ce plug-in résout le problème en demandant à l'utilisateur de préparer un grand nombre d'instructions d'importation à l'avance.

En écrivant une grande quantité de déclarations d'importation que j'utilise habituellement dans $ HOME / .config / nayvy / import_config.nayvy ($ XDG_CONFIG_PATH / nayvy / import_config.nayvy), je l'utilise comme source personnalisée. (Si vous ne placez pas le fichier, seul le package / module de bibliothèque standard sera complété.)

Mon histoire personnelle est que la plupart du temps, je développe en effectuant une inspection de type avec mypy.

from typing import Any, Callable, ClassVar, Generic, Optional, Tuple, Type, TypeVar, Union, AbstractSet, ByteString, Container, ContextManager, Hashable, ItemsView, Iterable, Iterator, KeysView, Mapping, MappingView, MutableMapping, MutableSequence, MutableSet, Sequence, Sized, ValuesView, Awaitable, AsyncIterator, AsyncIterable, Coroutine, Collection, AsyncGenerator, AsyncContextManager, Reversible, SupportsAbs, SupportsBytes, SupportsComplex, SupportsFloat, SupportsInt, SupportsRound, ChainMap, Counter, Deque, Dict, DefaultDict, List, OrderedDict, Set, FrozenSet, NamedTuple, Generator, AnyStr, cast, get_type_hints, NewType, no_type_check, no_type_check_decorator, NoReturn, overload, Text, TYPE_CHECKING, Protocol

Il y a une ligne comme celle-ci

import numpy as np
import pandas as pd
import tensorflow as tf
import seaborn as sns
import requests
import aiohttp
from logzero import logger
import yaml
import click
from click_help_colors import HelpColorsGroup, HelpColorsCommand
import pytest
import yaml

J'écris des instructions d'importation pour des plug-ins tiers que j'utilise fréquemment comme ça.

Recommended Posts

Insérez l'instruction Import requise pour la complétion du code Python dans Neovim
Paramètres VS Code pour le développement en Python avec achèvement
Résumé de diverses instructions for en Python
Paramètres de codage Python avec Visual Studio Code
Exemple de code spécifique pour travailler avec SQLite3 en Python
Expose settings.json pour un codage Python efficace avec VS Code
Python3> slice copy / slice notation> utilisé dans les instructions for, etc.
Code python de la méthode k-means super simple
Importer dynamiquement des scripts en Python
Mémo de code personnel Python
[Python] Insérez ":" dans l'adresse MAC
Techniques de tri en Python
Astuces utiles liées à la liste et aux instructions en Python
Générer du code QR en Python
[Python] Exemple de code pour la grammaire Python
Code de caractère appris en Python
À propos de "for _ in range ():" de python
Concurrence avec VS Code Créez un environnement Python pour les professionnels sous Windows
Rechercher les fuites de mémoire dans Python
Rechercher des commandes externes avec python
[Python] Générer un code QR en mémoire
Travailler avec LibreOffice en Python: import
Formater automatiquement le code Python avec Vim
Ecrire le code de test du sélénium en python
[TouchDesigner] Conseils pour la déclaration par python
Utiliser Python mis en pyenv avec NeoVim
Exécutez unittest en Python (pour les débutants)
Tests de code dans le temps en Python
[Introduction] Insérer des sauts de ligne dans Python 3
Python> importer ceci> Afficher l'oeuf de Pâques> Essayé dans un environnement d'exécution de code en ligne
Lecture de code de Safe, une bibliothèque pour examiner la force des mots de passe en Python
Code de vérification de la série Fourier écrit en Python
INSÉRER dans MySQL avec Python [Pour les débutants]
différence entre les instructions (instructions) et les expressions (expressions) en Python
Note de nfc.ContactlessFrontend () de nfcpy de python
Inject est recommandé pour DDD en Python
Conseils pour gérer les binaires en Python
Tapez les annotations pour Python2 dans les fichiers stub!
Précautions lors de l'utilisation de l'instruction for dans les pandas
(Pour moi) Mettez Flask dans VS Code
Modèle pour l'écriture de scripts batch en python
[Python] Organisation de l'utilisation des instructions
Traiter plusieurs listes avec for en Python
MongoDB avec Python pour la première fois
python> guide de codage> PEP 0008 --Style Guide for Python Code
Obtenez un jeton pour conoha avec python
Exemple de gestion des fichiers eml en Python
Fiche de triche AtCoder en python (pour moi-même)
Un outil pour saisir facilement du code Python
Code requis pour la conversion d'API dans sqlalchemy
J'ai cherché un nombre premier avec python
Remarques sur l'utilisation de python (pydev) avec eclipse
Conseils pour créer de petits outils avec python
Utilisez pathlib dans Maya (Python2.7) en préparation du prochain Python3.7
Obtenir la liste de codes EDINET en Python
Importation de modules et gestion des exceptions en python
Fiche compatible avec le code R pour les utilisateurs de Python
Erreur d'importation: aucun module nommé "xxxxxx" dans Python3
J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python