24
|
meder omuraliev · 技术社区 · 15 年前 |
![]() |
1
13
FuzzyFinder本身对我来说毫无用处。我将它与FuzzyFinder TextMate和一个Ruby库结合使用,该库遍历所有文件和文件 子目录 here
不幸的是,由于最初的作者停止了对脚本的维护,因此需要一些努力才能使其正常工作。但仍有一些人定期向github发布更新。您将需要两个脚本,
最新版本与Vim FuzzyFinder 2.22.3结合使用时不会出现问题。必须使用Ruby支持编译Vim,否则它将无法工作。这个
blog
Vim setup
看看如何使用它。设置定义了两个键映射
更新: 现在我用的是优秀的 Command-T plugin this 超级用户回答我的原因。 |
![]() |
2
10
派对有点晚了,但我想补充一点,最新版本的FuzzyFinder有一个新命令:
|
![]() |
3
7
因此,您只需键入:
在所有子目录中查找测试的所有匹配项!
|
![]() |
4
6
例如
|
![]() |
5
5
在.vimrc中调整一些配置:
我定义了一些快捷键来激活它:
然后重新启动Vim以重新读取.vimrc配置。 查找文件/缓冲区现在我可以按<领导者>f查看当前目录和子目录中的文件列表。开始键入,列表将被筛选为仅与键入内容(模糊)匹配的列表。使用光标键选择匹配项,然后按enter键打开该文件。第一次在一个非常大的新项目中激活它时,可能需要一秒钟来缓存文件名。 类似地,当有几个缓冲区打开时,按<领导者>b从打开的缓冲区列表中选择。 最好的是标记匹配(即转到函数、类、方法等),但首先我们必须生成一个标记文件。 如果您不习惯为文件添加标签,那么手动添加标签可能会很麻烦。请注意,许多工具都使用标记文件,例如Vim本身将读取这些文件以启用“转到定义”,请参见本答案末尾的链接,因此了解它们可能比您预期的更有价值。 安装最新的CTAG( http://ctags.sourceforge.net/ )并确保它位于您的路径上,以便您可以从命令行调用它。对于Python等语言,最近的版本有了很大的改进。然后在.vimrc中定义一个击键,以便于在项目中重新运行它,同时清除fuzzyfinder的缓存:
(min是Windows特有的在后台运行命令的方式,这样Vim在索引非常大的项目时不会锁定) 重新启动vim,按f12键将扫描当前目录和子目录中的每个文件,并创建所有已定义函数、类等的索引。ctags解析许多编程语言。输出到一个名为“tags”的文件。在项目根目录中运行它(使用Vim的:pwd和:cd来确保您所在的位置)是有意义的,这样标记文件就包含了项目中的所有内容。
戈查斯如果在项目中多次定义标记(例如,与函数同名的类),则fuzzyfinder将提供一个菜单,以便您可以选择要跳转到哪个菜单。这可能有点烦人,因为默认情况下,ctags为Python文件生成太多的标记定义。它不仅列出了类、方法和函数的定义,还列出了任何符号在源文件中定义的所有位置。这包括创建变量,以及从其他地方导入符号的位置。这意味着在一个文件中定义并在第二个文件中导入的符号将有两个定义位置,这意味着您将始终看到一个菜单,而不是直接跳到类定义。您可以通过在~/.ctags中创建一个ctags选项文件来修复此问题,告诉它不要为“include”语句生成标记,并跳过一些目录:
我发现<领导者>b在工作前会停顿片刻,这很烦人。原来原因是为<定义了另一个映射;领导者>bd由我的BClose插件定义,Vim在决定调用哪个键映射之前,一直在等待我是否按下了后续的d。我从来没有使用过它,所以我在.vimrc中使用它禁用了它:
https://www.tartley.com/go-to-definition-in-vim-for-python-using-ctags-on-windows |
![]() |
6
4
以下是我使用的映射(它们不是我的,尽管我现在已经习惯了):
我主要使用: 对于上次打开的文件 更改缓冲区(我删除了所有的buxexplorer插件) |
![]() |
farnsy · Vim如何将第二个参数添加到缓冲区列表(备用文件)? 1 年前 |
|
Marcel · VIM-如何在一组单词的开头和结尾添加2个字符 1 年前 |
![]() |
Rian Rizvi · 向后删除连续空格或连续非空格直到行首 6 年前 |
![]() |
alexche8 · 如何突出显示vim中按数字键上的行号? 7 年前 |
![]() |
A.Dumas · 如何为md文件vim关闭HtmlBeautify 7 年前 |
|
ekzotech · Vim插件可用于自定义HTML标记和SCS 7 年前 |