Vim 使gf与python导入匹配
我希望gf命令能够处理Python导入,但是我在使用foo.bar import baz的Vim 使gf与python导入匹配,vim,Vim,我希望gf命令能够处理Python导入,但是我在使用foo.bar import baz的导入样式时遇到了问题 基本问题是,我不知道如何使include或includexpr在“from”和“import”之间匹配文本,然后在“import”之后添加文本。Vim似乎拒绝匹配任何空白,更不用说允许对匹配文本的两部分进行反向引用了 这可能吗?是的,这不仅可能,而且内置的Python ftplugin已经为您处理了所有这些: 查找包括(与gf无关): 将包含内容转换为路径(与gf相关): 添加正
导入样式时遇到了问题
基本问题是,我不知道如何使include
或includexpr
在“from”和“import”之间匹配文本,然后在“import”之后添加文本。Vim似乎拒绝匹配任何空白,更不用说允许对匹配文本的两部分进行反向引用了
这可能吗?是的,这不仅可能,而且内置的Python ftplugin已经为您处理了所有这些:
- 查找包括(与
gf
无关):
- 将包含内容转换为路径(与
gf
相关):
- 添加正确的扩展名(与
gf
相关):
只需确保在vimrc
中有以下任一行:
filetype plugin on
filetype plugin indent on
filetype indent plugin on
要启用ftplugin机制。Hm,我的includeexpr只需替换(v:fname,“\”,“/”,“g”)
。是您在vim的更高版本中提到的那个吗?我用的是8.0。我想我在vim src的头部看到了你的。最后,我编写了我的owner includeexpr函数,该函数的作用大致相同,还处理\uuuu init\uuuu
文件/dirs
setlocal includeexpr=substitute(substitute(substitute(
\v:fname,
\b:grandparent_match,b:grandparent_sub,''),
\b:parent_match,b:parent_sub,''),
\b:child_match,b:child_sub,'g')
setlocal suffixesadd=.py
filetype plugin on
filetype plugin indent on
filetype indent plugin on