尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
深度定制 tern_for_vim:10 个 g:tern_ 配置选项让你彻底掌控插件行为
开发工具【免费下载链接】tern_for_vimTern plugin for Vim项目地址https://gitcode.com/gh_mirrors/te/tern_for_vim点击查看免费下载tern_for_vim是一个让 Vim 接入 Tern JavaScript 代码分析引擎的插件提供语义自动补全、跳转定义、智能重命名等 IDE 级能力。本文将带你完整掌握它的10 个g:tern_配置选项用最少的配置快速调出最顺手的行为。一、tern_for_vim 是什么它能做什么普通 Vim 的自动补全只是单词匹配而 tern_for_vim 把补全升级到了语义级——Tern 服务器会真正解析你的代码理解函数签名和变量类型。安装后你在 JS 文件中直接按Ctrl-x o即可触发全库智能补全插件还内置了以下命令命令作用:TernDef跳转到光标处标识符的定义:TernDoc/:TernDocBrowse查看文档在浏览器中打开:TernType查询标识符类型:TernRefs列出所有引用位置:TernRename跨文件重命名变量完整的命令说明可参考插件自带文档 doc/tern.txt。二、一键安装步骤3 步跑起来插件本身很轻量真正干活的是 Node.js 端的 Tern 服务器因此安装分两步走。前置条件Node.js npm全局安装NVM 版本不可用详见后文 FAQ、Vim 7.3 且编译时启用了 python 或 python3 支持。把仓库克隆到你的插件目录git clone https://gitcode.com/gh_mirrors/te/tern_for_vim.git进入插件根目录即 package.json 所在目录安装 Tern 服务器及依赖npm install重新打开 Vim 即可。插件通过 after/ftplugin/javascript_tern.vim 在打开 JS 文件时自动调用tern#Enable()激活无需手动初始化。 核心逻辑都在 autoload/tern.vim底层与 Tern 服务器的通信由 script/tern.py 完成这就是为什么必须编译 python 支持。三、最快配置方法先让补全跑起来配置全部写在~/.vimrc中。10 个选项都有默认值一个不写也能用下面的顺序建议照着走 ① 默认键位映射可选 let g:tern_map_keys 1 let g:tern_map_prefix LocalLeadert ② 补全菜单显示函数签名 let g:tern_show_signature_in_pum 1 ③ 参数提示 let g:tern_show_argument_hints on_hold set updatetime500 ④ 关闭重命名/引用后的定位列表可选 let g:tern_show_loc_after_rename 0 let g:tern_show_loc_after_refs 0另外别忘了在项目根目录建一个.tern-project文件声明依赖库Tern 才会认识 jQuery、ES6 等符号配置示例见 doc/tern.txt 的 USAGE 章节。四、10 个 g:tern_ 配置选项完整清单以下默认值均来自 autoload/tern.vim 中的源码可放心覆盖。1. g:tern_map_keys —— 一键启用默认快捷键默认值0关闭类型0/1设为1后插件会按你自定义的前缀批量注册 9 个命令的快捷键映射表定义在tern#DefaultKeyMap()autoload/tern.vim按键前缀命令tD:TernDoctb:TernDocBrowsett:TernTypetd/tpd/tsd/ttd定义跳转编辑窗口 / 预览 / 分屏 / 新标签页tr:TernRefstR:TernRename2. g:tern_map_prefix —— 自定义映射前缀默认值LocalLeader在 vimrc 中用\或;之类单字符配置类型字符串配合上一项使用。例如设g:tern_map_prefix Leadert后Leaderttd即在新标签页打开定义。修改前缀是避免与其他插件冲突的最快方法。3. g:tern_show_argument_hints —— 函数参数提示默认值no类型no/on_move/on_hold调用函数时在状态栏底部实时显示参数列表是类 IDE体验的核心。三种模式的差异autoload/tern.vim值触发时机适用场景no不显示慢机器 / 大型代码库on_move光标每移动一次小项目追求零延迟on_hold光标停顿片刻后推荐兼顾流畅与提示⚠️ 选on_hold时务必把updatetime从默认 4000ms 调低如set updatetime500否则要等 4 秒才出提示。另外插入模式下看不到提示时试试:set noshowmode。4. g:tern_show_signature_in_pum —— 补全菜单显示完整签名默认值0类型0/1设为1后补全菜单的menu列不再只显示(fn)图标而是展示完整函数签名——包含参数名、类型和是否可选逻辑见 script/tern.py 的tern_asCompletionIcon()。这是新手最容易忽视、收益却最高的选项强烈建议打开。5. g:tern_set_omni_function —— 是否接管智能补全默认值1类型0/1控制插件是否自动执行setlocal omnifunctern#Completeautoload/tern.vim。如果你同时装了别的 omnifunc 类插件想自己管理可设为0关掉接管。6. g:tern_request_timeout —— 请求超时时间默认值1秒类型数字支持小数每次向 Tern 服务器发请求的超时上限由 script/tern.py 读取。大型项目首次补全可能超时可调到2~5。7. g:tern_request_query —— 自定义请求参数默认值{}空字典类型字典一个万能旋钮会把其中的键合进发给 Tern 的请求。目前对completions键生效可以追加 Tern 补全协议支持的任意参数script/tern.py例如let g:tern_request_query {completions: {caseInsensitive: v:true}}8. g:tern_show_loc_after_rename —— 重命名后显示位置列表默认值1类型0/1:TernRename完成后会在 loclist 中列出所有被改名的位置方便核对script/tern.py。若觉得打扰设为0关掉。9. g:tern_show_loc_after_refs —— 查引用后显示位置列表默认值1类型0/1与上一项同源:TernRefs完成后用 loclist 展示引用位置script/tern.py设为0则静默。10. g:tern#command附赠项—— 自定义 Tern 服务器启动命令默认值[node, 插件目录/node_modules/tern/bin/tern, --no-port-file]类型字符串数组node 装在非默认路径、或你想全局安装 Tern 时用它在~/.vimrc里覆盖启动命令autoload/tern.vimlet g:tern#command [/usr/local/bin/node, /usr/local/bin/tern, --no-port-file]配套还有g:tern#arguments默认[]用于追加额外启动参数。五、进阶用 .tern-project 教会 Tern 你的项目g:tern_变量管的是插件行为而.tern-project管的是Tern 的语言环境——两者配合才完整。在项目根目录创建它{ libs: [browser, jquery, es6], loadEagerly: [src/main.js], plugins: { requirejs: { baseURL: ./, paths: {} } } }libs让 Tern 加载浏览器 / jQuery / ES6 等符号定义loadEagerly启动时就解析的关键文件plugins启用 requirejs 等解析插件更多字段请参考 Tern 官方文档项目 README.md 中有链接入口。六、常见问题速查问题解决办法启动报tern requires python support重新编译 Vim启用 python3 支持命令找不到 node / 服务器起不来用g:tern#command指定全局 node 绝对路径用了 NVM 后插件失效插件不经过 shell 执行 nodeNVM 无效必须全局安装插入模式看不到参数提示:set noshowmodeon_hold提示太慢set updatetime500并调大g:tern_request_timeout补全菜单看不到类型图标检查g:tern_show_signature_in_pum与.tern-project的 libs最后提醒项目 README 中说明该仓库目前处于非活跃维护状态升级 Tern 相关依赖前请先确认兼容性日常使用中上述 10 个g:tern_选项足以覆盖绝大多数定制需求。输出文章/输出文章/output_article/输出文章/输出文章 /输出文章 /输出文章 /output_article /output_article /输出文章 /output_article /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /output_article /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /output_article /输出文章 /output_article /输出文章 /输出文章 /output_article /输出文章 /输出文章 /output_article /输出文章 /输出文章 /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /输出文章 /output_article /输出文章 /output_article /输出文章 /output_article /输出文章 /output_article /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章 /output_article /输出文章 /输出文章 /输出文章 /output_article /输出文章 /输出文章 /output_article /输出文章 /输出文章 /output_article /输出文章 /output_article /output_article /输出文章 /输出文章 /输出文章 /output_article /输出文章 /输出文章 /输出文章 /输出文章赞分享开发工具【免费下载链接】tern_for_vimTern plugin for Vim项目地址https://gitcode.com/gh_mirrors/te/tern_for_vim点击查看免费下载相关推荐MyComputerManager深度解析10个实用技巧帮你彻底掌控电脑MyComputerManager深度解析10个实用技巧帮你彻底掌控电脑 还在为此电脑里那些删不掉的流氓快捷方式烦恼吗 MyComputerMana桌面应用如何快速掌握Nullboard极简看板工具的完整入门指南如何快速掌握Nullboard极简看板工具的完整入门指南 你是否厌倦了臃肿复杂的任务管理工具Nullboard正是为追求简洁高效的用户设计的极简看板工具。这10个强大功能让你彻底掌握VSCode Markdown编辑vscode-markdown插件全解析10个强大功能让你彻底掌握VSCode Markdown编辑vscode markdown插件全解析 vscode markdownMarkdown All创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

如何从源码构建Pastel?Xcode构建、DMG打包与单元测试完整教程

如何从源码构建Pastel?Xcode构建、DMG打包与单元测试完整教程

【免费下载链接】Pastel-macOS 在 Mac 上搜索并下载 iOS、iPadOS 与 visionOS App 的历史版本,管理 IPA,并通过隔空投送发送至 iPhone 或 iPad。 项目地址: https://gitcode.com/gh_mirrors/ipa/Pastel-macOS 点击查看 免费下载 Pastel 是一…

📅 2026/10/11 19:11:58
基于Python的能源大数据的碳排放预测与可视化分析系统-附源码

基于Python的能源大数据的碳排放预测与可视化分析系统-附源码

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

📅 2026/10/11 19:11:58
vector、list、deque底层原理与选型对比:从内存布局到迭代器失效

vector、list、deque底层原理与选型对比:从内存布局到迭代器失效

C标准库里的 vector、list 和 deque,几乎是每个写 C 的人都会用到的三个基础容器。可我这些年面试、带项目、帮同事查性能问题,发现一个现象:接口调用大家都熟,真正被问到底层原理、迭代器失效规则、什么时候该换容器时&#xff0…

📅 2026/10/11 19:11:58
MORE NEWS

更多资讯

📰

Oracle EBS标准成本核算制度落地三支柱:主数据、成本类型与差异分摊

简介:本资源是一份面向Oracle EBS实施顾问、成本会计及ERP系统运维人员的标准化成本核算制度文档,聚焦制造业企业在Oracle EBS环境中落地标准成本法的核心实践。文档系统阐述了标准成本核算的概念逻辑、五大成本要素(物料、资源、外协资源、制…

📰

YOLOv5+大疆Tello TT实战:从训练到实时检测追踪

简介:这是一份面向目标检测与无人机视觉应用的完整项目资源包,基于YOLOv5框架搭配大疆教育无人机Tello TT,实现旗、圈两类目标的识别检测与追踪测距。资源集成源码、数据集、已调优的权重模型和详细操作说明,可直接用于毕业设计、…

📰

Sonora播放数据Scrobble指南:3分钟打通LastFM与ListenBrainz,听歌历史一键同步

【免费下载链接】sonora A native music streaming client, built with Rust and GPUI 项目地址: https://gitcode.com/gh_mirrors/sonor/sonora 点击查看 免费下载 Sonora 是一款用 Rust 和 GPUI 构建的原生音乐串流客户端,内置 Scrobble(听…

📰

中国象棋检测数据集VOC转YOLO训练实战:300张图也能训出可用模型

简介:中国象棋检测数据集面向目标检测与棋类识别等应用场景,提供三百张棋盘图像的完整标注,标签体系覆盖黑红双方的十二种棋子类别,适用于模型训练、格式转换练习与算法验证。压缩包共包含九百零二个文件,其中有三百张…

📰

Agent-Skills:智能体技能化架构设计与工程实践

1. 项目概述:一个被严重低估的“技能容器”概念“agent-skills”这个词组乍看像技术黑话,但拆开来看——agent 是智能体,skills 是技能。它不指代某个具体工具、框架或开源库,而是一种架构范式上的根本性转向:把传统上…

📰

Agent技能工程:可验证、可监控、可复用的智能体能力单元设计

1. “agent-skills”不是新词,而是智能体能力工程的实践切口“agent-skills”这个词乍看像某个开源库的包名,或是某次技术分享里一闪而过的术语缩写。但过去两年在多个跨领域项目中反复遇到它——不是作为概念被宣讲,而是作为实际开发中必须拆…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬