我正在尝试在我的vim配置中包含基于搜索的设置。这导致[i、[i、[d、]d等cmds无法按预期工作。此外,当运行:checkpath!查看包含的文件时,它也不像预期的那样工作。你能帮帮我吗?让我知道我做错了什么&我能做些什么来解决这个问题。
venv dir的条目,只是为了保持条目列表的小。
>树-I "build|dist|*egg*|__pycache__“-L 2。美国化学文摘社( MANIFEST.in README.md├──acs_ datamodels -0.0.1-py3- .│.├──ai_core-0.0.1-py3- )金融服务中心( __init__.py│):set path?看起来就像
path=datamodels,venv/lib/python3.7/site-packages/*/**2:set include?看起来就像
^\s*(from|import)\s*\zs(\S+|\S+\s*import{1}\s*\S+)\ze($|\s*as|,):set includeexpr?看起来就像
includeexpr=PyInclude(v:fname)~/.vim/after/ftplugin/python.vim的内容如下
设置shiftwidth=4 tabstop=4 softtabstop=4扩展选项卡,自动缩进智能定位器setlocal wildignore=*.pyc,bin,*tabstop=4*,__pycache__/*,build,dist setlocal \)函数!PyInclude(fname)回显"fname:“a:fname let parts = split(a:fname,‘import ')回声”部件“部分:”部件允许l=部件“(1)日志记录(2) ai_core.commons (3) datamodels.literals if len( parts ) >1 let r= parts1”(1) datamodels (2) datetime let = join(l,r,’. '.')“datetime.datetime,ai_core.commons.decode_token让fp =替代(连接,'.','/','g')。'.py‘“datetime/datetime,ai_core/parts/decode_token= glob(fp,1)回声"parts > 1”如果len( found )返回被发现的endif endif让kp =替代(l,'.','/','g')。< 1“kp返回kp”ai_core/commons.py,datamodels/alals.py尾函数setlocal includeexpr=PyInclude(v:fname):checkpath!的输出如下。请注意,输出还包含我添加的一些调试消息。如果您看到from typing import Dict和import logging是从venv dir中识别出来的,但是其他库:虽然它们在venv dir中也存在,但我从轮转文件中安装的from ai_core.commons import decode_token是不被识别的。另外,当前文件的相对路径import datamodels.literals中的另一个模块无法识别。
fname:键入导入venv/lib/python3.7/site-packages/pip/_internal/utils/typing.py部件:‘键入’,' Dict‘部件>1部件<1 typing.py decode_token fname: ai_core.commons导入decode_token部件:’aicore.commons‘,' decode_token‘parts >1部件<1 ai_core/commons.py ai_core.commons导入decode_token未找到fname:日志部件:“日志”部件<1 logging.py logging.py fname: datamodels.literals部件:“datamodels.literals”部件<1 datamodels/alals.py datamodels.literals logginghttps://stackoverflow.com/questions/68516511
复制相似问题