AB
AiBoss
チュートリアル

Fitten Code

チュートリアル

在 Vim 中安装并配置 Fitten Code 实现 AI 代码补全

面向 Vim 用户的 Fitten Code 配置教程:安装单文件插件、用 :Fittenlogin 登录、用 Ctrl-L 触发补全、用 Tab 接受补全,并通过 g:fitten_trigger 与 g:fitten_accept_key 自定义快捷键,最后用开关命令控制自动补全。

Fitten Code 的 Vim 版本是一个单文件插件,作用是在 Vim 编辑器里接入 AI 代码补全:写代码时按快捷键弹出补全建议,按接受键把建议写入缓冲区。它适合已经习惯在终端里用 Vim 写代码、又不想为了 AI 补全切换到其他编辑器的开发者。插件本身只负责登录、登出、触发补全、接受补全和自动补全开关这几件事,集成方式简单,把文件放进插件目录即可。如果你更习惯用现成的在线工具做代码辅助,也可以先看看本站的 Fitten Code 工具页,再决定是否在本地 Vim 里装插件。

需要说明的是,这篇教程讲的是插件层面的安装与配置,不涉及模型能力评测,也不涉及账号套餐。价格、可用模型、配额等易变信息请以官网当前信息为准。

准备工作

动手之前,先确认下面几项条件都满足,否则后面的步骤会卡住。

  • Vim 版本不低于 9.0。这是插件的硬性依赖,低于这个版本不要继续。
  • 一个已注册的 Fitten Code 账号。插件通过用户名和密码登录,没有账号无法使用补全功能。注册入口在插件说明里给出,按官网当前提供的入口注册即可。
  • 可写的 Vim 插件目录。默认路径是 ~/.vim/plugin,如果该目录不存在需要先创建。
  • curl 或等效的下载工具。安装方式是用 curl 把单文件插件下载到插件目录。
  • (可选)NeoVim 用户。插件对 NeoVim 的支持由社区贡献,使用 NeoVim 的读者需要走对应的分支或配置,本文以 Vim 为主线。

另外要理解一个前提:这个插件是单文件插件。也就是说,它的全部逻辑集中在一个 fittencode.vim 文件里,没有额外的依赖包、没有构建步骤。这既是它方便集成的优点,也意味着升级时通常就是替换这一个文件。

操作步骤

第一步:创建插件目录

Vim 启动时会加载 ~/.vim/plugin 下的脚本。先确保目录存在:

mkdir -p ~/.vim/plugin

如果目录已经存在,这条命令不会产生副作用,可以放心执行。

第二步:下载插件文件

把 fittencode.vim 下载到刚才创建的目录中。素材给出了两种下载来源,一种是 GitHub,一种是 Gitee,两者下载的是同一个插件文件,按自己网络环境能访问的那个来选即可。命令形式如下:

curl -o ~/.vim/plugin/fittencode.vim <插件文件下载地址>

把 <插件文件下载地址> 换成对应来源上该文件的原始下载地址。下载完成后可以用 ls -l ~/.vim/plugin/fittencode.vim 确认文件存在且大小不为零。

除了手动 curl,用各种 Vim 插件管理器安装同样可行。插件管理器本质上也是把文件放到运行时会加载的路径下,所以只要管理器能正确识别这个单文件插件,安装流程和手动下载没有区别。

第三步:登录账号

插件装好之后,重新打开 Vim,在命令行模式输入登录命令:

:Fittenlogin <username> <passwd>

把 <username> 和 <passwd> 换成注册时使用的用户名与密码。登录成功后,插件就具备补全能力了。

这里有一个容易忽略的点:登录命令是带参数的,用户名和密码直接跟在命令后面,用空格分隔。如果密码里含有空格或特殊字符,需要按 Vim 命令行的转义规则处理,否则参数会被截断。

第四步:触发并接受补全

登录完成后,默认的交互方式是:

  • 按 <C-L>(Ctrl 加 L)弹出补全提示;
  • 按 <TAB> 接受当前补全内容,写入代码。

素材给出的示意是:当你在写一个函数时,插件会根据上下文给出补全建议;把光标停在函数名上按触发键,就能看到针对该函数的提示。例如下面这段代码:

def calculate_area(radius):
    return 3.14 * radius ** 2

当光标位于 calculate_area( 之后的位置并按下触发键时,插件会给出补全提示。接受之后,建议内容会直接插入到光标处。

第五步:自定义快捷键

默认的 <C-L> 和 <TAB> 未必符合每个人的习惯,尤其是 <TAB> 在 Vim 里本身还承担缩进职责。插件提供了两个全局变量来改键:

  • g:fitten_trigger:控制触发补全的按键;
  • g:fitten_accept_key:控制接受补全的按键。

在 ~/.vimrc 里给这两个变量赋值即可,例如:

let g:fitten_trigger = '<C-J>'
let g:fitten_accept_key = '<C-K>'

上面只是演示写法,具体绑哪个键由你决定。改完之后需要重新加载配置或重启 Vim 才会生效。选择接受键时要避开自己常用的编辑操作,否则容易误触。

第六步:开关自动补全

除了手动按键触发,插件还支持自动补全模式,用两条命令切换:

:FittenAutoCompletionOn
:FittenAutoCompletionOff

开启后,插件会在编辑过程中自动给出补全;关闭后则回到手动触发的方式。写代码时需要连续输入、不想被提示打断的场景,可以临时关掉;需要密集补全时再打开。

第七步:登出

需要切换账号或在共享机器上使用时,执行:

:Fittenlogout

登出后补全功能停止,重新使用需要再次执行 :Fittenlogin。

第八步:查阅进阶用法

插件内置了进阶帮助文档,重点是自定义触发函数这类用法。在 Vim 中执行:

:help fitten-advanced

如果你的需求超出了「按键触发、按键接受」这套默认交互,比如希望由自己的函数决定何时请求补全,就应该先读这份帮助,而不是在配置里反复试错。

一个完整示例

下面把前面的步骤串成一条从零到可用的路径,假设你在一台新机器上,Vim 版本已满足 9.0 以上,并且已经注册好账号。

1. 建目录并下载插件

mkdir -p ~/.vim/plugin
curl -o ~/.vim/plugin/fittencode.vim <插件文件下载地址>

2. 在 vimrc 中改键(可选)

打开 ~/.vimrc,加入:

let g:fitten_trigger = '<C-J>'
let g:fitten_accept_key = '<C-K>'

如果不改,就沿用默认的 <C-L> 触发、<TAB> 接受。

3. 启动 Vim 并登录

vim
:Fittenlogin <username> <passwd>

4. 打开一个代码文件,验证补全

新建或打开一个 Python 文件,输入:

def calculate_area(radius):
    return 3.14 * radius ** 2

把光标放到函数名后的括号内,按下触发键(默认 <C-L>,或你自定义的键),看到补全提示后按接受键(默认 <TAB>,或你自定义的键)写入。

5. 按需切换自动补全

:FittenAutoCompletionOn
:FittenAutoCompletionOff

6. 用完登出

:Fittenlogout

走完这六步,插件就处于「已安装、已登录、可触发、可接受、可开关」的完整可用状态。任何一步失败,先回到对应步骤检查:目录路径是否正确、文件是否真的下载成功、登录命令的参数是否被空格截断、改键后是否重新加载了配置。

注意事项

  • 版本门槛是硬性的。Vim 低于 9.0 无法使用该插件,升级 Vim 是唯一出路,不要试图通过改配置绕过。
  • NeoVim 支持来自社区贡献。素材明确说明 NeoVim 的支持由贡献者提供,因此 NeoVim 上的行为可能与 Vim 不完全一致,遇到问题时应按 NeoVim 对应的说明排查。
  • 登录凭据写在命令行里。:Fittenlogin 需要把用户名和密码作为参数输入,这意味着它们会出现在命令历史中。在共享环境里使用后,建议清理命令历史,并在离开前执行 :Fittenlogout。
  • 改键后要重新加载。g:fitten_trigger 与 g:fitten_accept_key 是启动时读取的全局变量,改完 vimrc 不重启或重载不会生效。
  • 接受键与缩进键冲突。默认接受键是 <TAB>,而 Tab 在 Vim 中常用于缩进。如果发现补全接受与缩进操作互相干扰,优先考虑换一个接受键。
  • 单文件插件的升级方式。由于整个插件就是一个 fittencode.vim 文件,升级时通常只需用新版本覆盖旧文件,不需要额外的卸载流程。
  • 易变信息以官网为准。账号注册方式、可用功能范围、配额与价格等都可能调整,本文不给出具体数值,使用前请核对官网当前信息。

把上面这些做完,Vim 里就有了一个可手动触发、可自动补全、可随时开关的 AI 补全通道。后续如果想让补全时机更贴合自己的工作流,再去读 :help fitten-advanced 里的自定义触发函数部分,是比反复调按键更有效的方向。