写点什么

利用 Vim 和 Github Copilot 打造一款强大 IDE!

作者:Jackpop
  • 2022 年 9 月 26 日
    浙江
  • 本文字数:924 字

    阅读完需:约 3 分钟

作为开发者,虽然很多人不断地在批评人工智能,但是,不知不觉中却在习惯着 AI 带来的便利。


编码过程中的自动补全就是其中一个方面,目前很多自动补全工具都在借助 AI 给出补全建议,而且效果体验非常棒。


VIM 作为非常知名的编辑器、Github Copilot 作为 Github 和 OpenAI 开发的 AI 工具,如果能将二者结合到一起,肯定又会解放一大批生产力。


今天,就来给大家介绍如何通过 vim+Github Copilot 打造一款体验超棒的开发工具。

1. 安装

我使用 Astro Vim,所以下面的代码片段可能根据 neovim 的不同配置存在稍微不同的语法。


  • 安装 Github Copilot

  • 配置 neovim 接受 copilot 的自动补全


在~/.config/nvim/init.lua 中,设置一个所需的键盘映射:


vim.api.nvim_set_keymap("!", "<C-]>", 'copilot#Accept("<CR>")', { silent = true, expr = true, noremap=true })vim.api.nvim_set_var('copilot_assume_mapped', true)
复制代码


  • 安装下面 3 个插件:


 ["Shougo/vimproc.vim"] = {}, ["Shougo/vimshell.vim"] = {},  ["Shougo/unite.vim"] = {},
复制代码


  • 构建 vimproc


cd ~/.local/share/nvim/site/pack/packer/start/vimproc.vimmake
复制代码


  • 删除与 vimshell 冲突的键盘映射


vim ~/.local/share/nvim/site/pack/packer/start/vimshell.vim/autoload/vimshell/mappings.vim
复制代码


并在第 155 行注释掉(或重新映射)重载的映射,修改下面这部分内容:


inoremap <expr> <SID>(bs-ctrl-])      \ getline('.')[col('.') - 2] ==# "\<C-]>" ? "\<BS>" : ''imap <buffer> <C-]>               <C-]><SID>(bs-ctrl-])imap <buffer> <CR>                <C-]><Plug>(vimshell_enter)
复制代码


把这段内容修改成:


" inoremap <expr> <SID>(bs-ctrl-])"       \ getline('.')[col('.') - 2] ==# "\<C-]>" ? "\<BS>" : ''" imap <buffer> <C-]>               <C-]><SID>(bs-ctrl-])imap <buffer> <CR>                <Plug>(vimshell_enter)
复制代码

2. 运行

打开一个新的 vim 会话并输入:VimShell,Github Copilot 的自动补全功能现在将在你的 bash shell 中工作。


下面是给出的一个例子,我输入了 echo a random 和 cat,然后自动补全了剩下的内容:


vimshell% # echo a random number between 1 and 10vimshell% cat /dev/urandom | od -N 1 -An -i | awk '{print $1 % 10 + 1}'
复制代码

推荐阅读

发布于: 刚刚阅读数: 3
用户头像

Jackpop

关注

还未添加个人签名 2020.09.16 加入

公众号:平凡而诗意,微信:code_7steps,全网粉丝超20万,技术进阶、优质资源、实用工具,欢迎关注!

评论

发布
暂无评论
利用Vim和Github Copilot打造一款强大IDE!_Jackpop_InfoQ写作社区