美文网首页
利用Vim和Github Copilot打造一款强大IDE!

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

作者: DevWeekly | 来源:发表于2022-09-26 23:35 被阅读0次

    作为开发者,虽然很多人不断地在批评人工智能,但是,不知不觉中却在习惯着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.vim
    make
    
    • 删除与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 10
    vimshell% cat /dev/urandom | od -N 1 -An -i | awk '{print $1 % 10 + 1}'
    

    相关文章

      网友评论

          本文标题:利用Vim和Github Copilot打造一款强大IDE!

          本文链接:https://www.haomeiwen.com/subject/zytfartx.html