精准配置 tern_for_vim:一文读懂 .tern-project 如何加载 jQuery、浏览器与 requirejs
开发工具【免费下载链接】tern_for_vimTern plugin for Vim项目地址https://gitcode.com/gh_mirrors/te/tern_for_vim点击查看免费下载tern_for_vim是一款为 Vim 提供 Tern 级 JavaScript 语义分析的插件智能补全、跳转定义、查类型、查文档、批量重命名一应俱全。而它聪不聪明关键就看你放在项目根目录的.tern-project配置文件——这篇文章带你从零读懂它精准学会如何加载 jQuery、浏览器环境与 requirejs 插件。一、tern_for_vim 能做什么插件打开 JavaScript 文件后会自动接管 Vim 的补全功能并提供以下命令详见 doc/tern.txt命令功能:TernDef跳转到光标处标识符的定义处另有 Preview/Split/Tab 变体:TernDoc查看文档:TernDocBrowse可在浏览器中打开:TernType查看光标处标识符的类型:TernRefs列出所有引用位置:TernRename智能重命名变量 插件要求 Vim 7.3 并内置 Python 支持安装后需在插件根目录执行npm install拉取 Tern 服务端。二、.tern-project 放在哪里插件如何找到它Tern 通过项目根目录下的.tern-project文件来配置要加载的库和插件。tern_for_vim 的查找逻辑写在这里目录定位逻辑script/tern.py服务启动命令autoload/tern.vim查找规则很简单从当前文件所在目录开始逐级向上查找.tern-project找到哪一层就把哪一层作为项目根目录。因此大项目放在仓库根目录即可所有子目录的 JS 文件共享一套配置多项目工作区不同子目录各放一份互不干扰。另外ftdetect/tern.vim 还顺手把.tern-project和.tern-config两种文件自动识别为json语法编辑时有高亮不用手动:setf json。三、libs一句话加载 jQuery 和浏览器环境 .tern-project是一个 JSON 文件libs字段告诉 Tern 服务端你的代码里用到了哪些外部 API。最常见的两项browser加载浏览器环境定义window、document、alert、localStorage等不再是未定义补全和类型提示全部生效jquery加载 jQuery 官方类型定义$.fn、.each()、.on()都能补全和跳转。官方文档里的最小示例摘自 doc/tern.txt{ libs: [ browser, jquery ] }效果Tern 服务端启动时就会把这两套定义注册进分析引擎window.$、document.querySelector这类标识符立刻获得补全与类型信息——这正是加载 jQuery 与浏览器环境的全部秘密。 提示如果项目用了 ES6/ES7 语法还可以加上es6或按 Tern 文档选用es2017等避免箭头函数被误报。四、loadEagerly让核心文件第一时间被分析 ⚡libs解决的是外部库但你自己项目里的重要入口文件也值得显式声明{ loadEagerly: [ importantfile.js ] }Tern 默认会按需解析文件而写入loadEagerly的文件会在服务端启动时就被完整解析。适合放全局入口文件如app.js、main.js定义了全局变量的初始化脚本。这样跨文件跳转定义、查引用时结果更完整。五、plugins为 requirejs 项目注册模块解析 使用 AMD/RequireJS 的项目还有最后一块拼图——plugins字段。配置requirejs插件后Tern 就能理解require([...])里的模块路径解析规则{ plugins: { requirejs: { baseURL: ./, paths: {} } } }baseURL模块查找的基准目录./表示项目根目录paths路径映射表写法与 RequireJS 配置一致可为常用模块名指定短别名。注册后require回调里的模块依赖也能参与补全与跳转requirejs 项目才算配置到位。六、完整配置模板直接抄作业 把 doc/tern.txt 中的官方示例合起来就是一份面向 jQuery requirejs 项目的完整.tern-project{ libs: [ browser, jquery ], loadEagerly: [ importantfile.js ], plugins: { requirejs: { baseURL: ./, paths: {} } } }三个字段各司其职libs加载 jQuery 与浏览器定义 →loadEagerly预解析核心文件 →plugins注册 requirejs 解析规则。七、进阶技巧与常见问题 ️1. node 不在默认路径怎么办服务端默认以node node_modules/tern/bin/tern --no-port-file启动见 autoload/tern.vim。可以设置g:tern#command覆盖命令let g:tern#command [/usr/local/bin/node, ~/.vim/bundle/tern_for_vim/node_modules/tern/bin/tern, --no-port-file]⚠️ 注意node 进程不经过你的 shellNVM 安装的 node 可能找不到建议使用全局 node 可执行文件。2. 补全时想看函数签名设置let g:tern_show_signature_in_pum 1补全菜单中会显示参数名、类型与是否可选见 doc/tern.txt。3. 想要快捷键设置let g:tern_map_keys 1后默认前缀LocalLeader下即可用td跳定义、tr查引用、tR重命名等详见 doc/tern.txt。4. 配置不生效先确认.tern-project在正确的项目根目录插件是向上逐级查找的再检查 JSON 语法是否合法文件类型已自动设为json保存后新开一个 JS 文件测试即可。写在最后 ✅.tern-project是 tern_for_vim 的大脑三行libs让 jQuery 与浏览器 API 获得完整补全一个loadEagerly让核心入口文件提前就绪一段plugins.requirejs让模块依赖可跳转。掌握这份 JSON你在 Vim 里的 JavaScript 开发体验将质的飞跃——快去给自己的项目配置一个吧赞分享开发工具【免费下载链接】tern_for_vimTern plugin for Vim项目地址https://gitcode.com/gh_mirrors/te/tern_for_vim点击查看免费下载相关推荐突破边界一文读懂YOLOv5如何精准划分目标区域突破边界一文读懂YOLOv5如何精准划分目标区域 你是否曾困惑为什么AI能瞬间识别图像中的物体当你在监控画面中看到行人被红色方框框出汽车被蓝色圆圈标记时人工智能深度学习计算机视觉预训练微调如何快速上手Swin Transformer v2从零开始的图像分类指南如何快速上手Swin Transformer v2从零开始的图像分类指南 Swin Transformer v2是微软研究院推出的新一代视觉Transform在浏览器中使用 RequireJS 加载 ChanceAMD 模块接入实战指南在浏览器中使用 RequireJS 加载 ChanceAMD 模块接入实战指南 Chance 是一个用于 JavaScript 的随机数据生成库内置了 Me测试创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

对抗长文本位置偏置:基于双向语义锚点与动态倒排索引的工程实操

对抗长文本位置偏置:基于双向语义锚点与动态倒排索引的工程实操

将几十万甚至百万 Token 的文档直接输入长上下文大模型时,看似上下文窗口已经支撑,实际业务检索往往在处于文档中段 40% 到 70% 处遭遇严重的命中率崩塌。这种业界普遍存在的“中间迷失”(Lost in the Middle)现象,并不…

2026/10/11 23:19:20 阅读更多 →
代驾系统长连接实战(二):心跳、断线重连与消息补偿的完整实现

代驾系统长连接实战(二):心跳、断线重连与消息补偿的完整实现

上一篇聊了代驾系统的整体架构和三级派单,这篇往下钻一层:司机端和乘客端挂在 Netty 长连接上,手机进电梯、切后台、弱网闪断是家常便饭,连接断了之后怎么发现、怎么重连、断线期间的消息怎么不丢,这套机制才是派单链路…

2026/10/11 23:19:19 阅读更多 →
喝水检测数据集实战:995张VOC+YOLO双格式训练与避坑指南

喝水检测数据集实战:995张VOC+YOLO双格式训练与避坑指南

简介:这份喝水检测数据集面向计算机视觉学习者与目标检测开发者,用于训练和验证「喝水行为」相关模型,可应用于课堂行为分析、驾驶疲劳监测或健康习惯识别等场景。数据集同时提供Pascal VOC与YOLO两种标注格式,包含jpg原图及一一对…

2026/10/11 23:18:18 阅读更多 →

最新新闻

绝缘子缺陷检测数据集清洗与工业级训练实战指南

绝缘子缺陷检测数据集清洗与工业级训练实战指南

简介:本资源是面向电力AI研发人员、工业视觉工程师及智能巡检系统开发者的绝缘子缺陷检测专用YOLO格式数据集,解决无人机航拍场景下绝缘子破损、污闪、积雪等9类典型缺陷的精准识别与定位难题。数据集共2139张真实巡检图像(含训练/验证/测试集…

2026/10/12 0:05:01 阅读更多 →
牙科影像龋齿四级像素级分割数据集与临床落地实践

牙科影像龋齿四级像素级分割数据集与临床落地实践

简介:本资源是一套面向医学影像AI研究者与口腔临床算法开发者的专业蛀牙分割数据集,专为U-Net、DeepLab等分割模型训练设计,解决真实场景下多类别蛀牙区域精细识别与程度量化评估难题。数据集含400张高精度口腔内窥镜及X光影像(对…

2026/10/12 0:05:01 阅读更多 →
条形码目标检测数据集实战:从YOLOv8训练到部署

条形码目标检测数据集实战:从YOLOv8训练到部署

简介:这是一份面向目标检测与计算机视觉学习者的条形码识别数据集,涵盖零售、物流、制造等场景下的真实商品条码图像,适合用于训练YOLO系列模型或开展算法实验。数据集共684张图片,按训练集624张、验证集60张划分,采用…

2026/10/12 0:04:01 阅读更多 →
MongoDB复制集扩缩容实战:从rs.add到选主事故复盘

MongoDB复制集扩缩容实战:从rs.add到选主事故复盘

月初帮业务团队扩容一套 MongoDB 复制集,需求描述只有一句话:“加一台新机器进复制集,扛一下读流量。”我反问了一句:“你打算怎么加?”对方很自信:“rs.add() 啊,一行命令的事。”我当场就把计…

2026/10/12 0:04:01 阅读更多 →
Debian新手入门:从部署到日常操作的完整指南

Debian新手入门:从部署到日常操作的完整指南

第一次装完Debian,盯着黑乎乎的终端窗口迷茫好一会儿,这是我至今印象很深的场景。系统能开机、能登录,但下一步该敲什么命令完全没头绪。后来用久了才想明白一件事:Linux的入门难点从来不是"怎么把系统装上"&#xff0c…

2026/10/12 0:04:01 阅读更多 →
多模态大模型入门:从原理到实战,一文搞懂图文音视频一体模型

多模态大模型入门:从原理到实战,一文搞懂图文音视频一体模型

一、什么是多模态大模型? 💡 核心定义:多模态大模型是能够同时处理、理解和生成文本、图像、音频、视频等多种模态信息的人工智能模型。它打破了传统单模态模型(如仅处理文本的GPT-3或仅处理图像的ResNet)的限制&#…

2026/10/12 0:04:00 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →