文章目录

  • Go语言 linux下开发 IDE -SpaceVim
    • 一、NeoVim和SpaceVim区别
    • 二、NeoVim
      • 安装 NeoVim
      • Neovim GitHub Copilot插件安装
      • 常见错误
        • 执行完PlugInstall 报错 fatal: could not read Username for 'https://github.com': terminal prompts disabled
    • 三、SpaceVim
      • SpaceVim安装
      • 使用 Vim 搭建 Go 开发环境

Go语言 linux下开发 IDE -SpaceVim

在 Linux 系统下我们可以选择将 Vim 配置成 Go IDE。熟练 Vim IDE 操作之后,开发效率不输 GoLand 和 VSCode。

个人工作感觉:其实用vscode,远程sftp够用了。当然纯linux环境场景下,你可以尝试这些东西~

一、NeoVim和SpaceVim区别

spacevim与vim/neovim的关系不同于neovim和vim的关系. neovim是对vim的重新实现。

spacevim不是对vim/neovim的实现, 而是在vim/neovim之上整合了很多好用的插件。

SpaceVim 初始化脚本,默认同时为 vim 和 neovim 安装 SpaceVim。

总结: NeoVim和SpaceVim是不一样的,一个是编辑器,一个是基于编辑器的并配置方案。

建议的使用Neovim的原因:

  • 需要一个从零开始配置的IDE或者Vim
  • 动手能力强,能解决各种问题
  • 能够熟练记忆并使用各种各样的快捷键
  • 熟悉各种插件,包括但不限于nerdtree、YouCompleteMe等等

因为如果想把Neovim用好,最起码需要花点时间,利用插件安装好各种各样的插件之后(当然因为有些插件只是针对Vim的,所以可能会遇上不兼容的问题),熟悉它们的使用并知道快捷键,这对记忆力以及学习能力都是一个考验,在这过程中,需要无数次的打开init.vim进行配置。

建议使用SpaveVim的原因:

  • 不想手动配置太多的插件以及快捷键
  • 需要一个开箱即用且轻量级的IDE
  • 不需要开发很大的工程

在SpaveVim里面,大部分都是已经配置好的,剩下的只是需要通过官网文档熟悉界面

但是相比起现代级的IDE,Neovim与SpaceVim还是有很大差距的,最明显的就是对各种库、各种包以及一键部署运行的支持,因此,个人认为SpaceVim/Neovim不是特别适合大项目的。

二、NeoVim

官网:http://neovim.io/

Bram Moolenaar 在写 Vim 时还是 90 年代初,至今已经 20 多年 过去了。其中,不仅包含了大量的遗留代码,而且程序的维护、Bug 的 修复、以及新特性的添加都变得越来越困难。为了解决这些问题,Neovim 项目应运而生。Neo 即“新”之意,它是 Vim 在这个新时代的重生。

安装 NeoVim

官方参考:https://github.com/neovim/neovim/wiki/Installing-Neovim
NeoVIM安装使用
参考URL: https://www.cnblogs.com/michaelcjl/p/12436227.html

  1. 安装 NeoVim
sudo apt update
sudo apt install python3-pip
sudo pip3 install neovim jedi python-language-server --user
  1. 配置 $HOME/.bashrc
    配置 nvim 的别名为 vi,这样,当我们执行 vi 时,Linux系统就会默认调用 nvim。配置 EDITOR 环境变量可以使一些工具,例如 Git 默认使用 nvim。配置方法如下:
tee -a $HOME/.bashrc <<'EOF'
# Configure for nvim
export EDITOR=nvim # 默认的编辑器(git 会用到)
alias vi="nvim"
EOF

cat $HOME/.bashrc
source $HOME/.bashrc

  1. 检查 nvim 是否安装成功
vi --version

Neovim GitHub Copilot插件安装

GitHub Copilot 支持了 Neovim,但是没有支持 vim。

  1. 打开终端并进入您的Neovim配置目录。一般情况下,该目录位于 ~/.config/nvim/。

  2. 如果您没有安装任何插件管理器,请先安装一个。我推荐使用 vim-plug 插件管理器,您可以通过以下命令进行安装:

  3. 在您的Neovim配置文件(一般为init.vim或init.lua)中添加以下行:
    init.vim 是 Neovim 的配置文件,通常位于 ~/.config/nvim/init.vim。如果该文件不存在,则可以手动创建一个。

vi  ~/.config/nvim/init.vim
call plug#begin()
Plug 'vim-scripts/Copilot.vim'
call plug#end()
  1. 保存并退出配置文件。重新加载Neovim以使更改生效,并键入 :PlugInstall 命令开始安装插件。
    开终端或命令行窗口,并输入 nvim 命令启动 Neovim 编辑器。

:PlugInstall 是在使用 Vim 或 Neovim 的插件管理器 vim-plug 时,用于安装插件的命令。在安装完 vim-plug 插件之后,在 init.vim 文件中配置了需要安装的插件列表,并保存文件后,可以在终端中打开 Vim 或 Neovim 并输入 :PlugInstall 命令来执行插件的安装。

请注意,在执行 :PlugInstall 命令之前,您需要确保已经正确安装了 Vim-Plug 插件管理器,并且在您的 Neovim 配置文件中包含了要安装的插件列表。如果您还没有安装 Vim-Plug,请参考官方文档进行安装:https://github.com/junegunn/vim-plug

  1. 进入普通模式并输入 :PlugStatus 命令。该命令将显示当前所有已安装的插件和它们的状态(例如“OK”或“X”)。

常见错误

执行完PlugInstall 报错 fatal: could not read Username for ‘https://github.com’: terminal prompts disabled

这个错误是因为 Git 正在尝试访问托管在 GitHub 上的远程仓库,它需要你的身份验证凭据。但是,在这种情况下,输入用户名和密码的终端提示被禁用了。

要解决此错误,可以通过运行以下命令启用终端提示

git config --global prompt true

如果 git config --global prompt true 命令报错提示 “error: key does not contain a section: prompt”,那么可能是因为 prompt 这个配置项还没有被设置过。你可以尝试手动在 Git 的全局配置文件中添加这个配置项,方法如下:

打开 Git 的全局配置文件,在终端中运行命令:git config --global --edit

[prompt]enabled = true

大部分情况是,你需要升级git,git不支持prompt。
直接运行 git config --global prompt true 命令来尝试添加 prompt 配置项。如果成功添加了这个配置项,则说明你的 Git 版本支持它。否则,你可能需要升级 Git 版本或者考虑其他解决方法。

这个错误通常表示您未能正确配置Git的身份验证信息。请确保您在运行PlugInstall命令之前已经正确地设置了Git的用户名和电子邮件地址,并且已经通过SSH密钥或用户名和密码进行了身份验证。

要设置您的Git用户名和电子邮件地址,请运行以下命令,将您的用户名和电子邮件地址替换为您自己的信息:

git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"

将公钥添加到您的GitHub帐户中,需要执行以下步骤:

  1. 打开终端窗口,输入以下命令以生成一个SSH密钥:
    ssh-keygen -t ed25519 -C “your_email@example.com”

按照提示完成密钥的生成过程。如果您不想在电脑上设置密码,可以直接敲回车键跳过这一步骤。

  1. 在终端输入以下命令,将SSH代理添加到ssh-agent中:eval “$(ssh-agent -s)”。

  2. 输入以下命令以将私钥添加到ssh-agent中:ssh-add ~/.ssh/id_ed25519。

  3. 使用以下命令打开id_ed25519.pub密钥文件:cat ~/.ssh/id_ed25519.pub。

  4. github设置
    复制密钥文件中的所有内容。

登录GitHub帐户,并单击右上角的头像图标,然后选择“Settings”。

在左侧菜单中,单击“SSH和GPG keys”,然后单击“New SSH key”按钮。

在“Title”字段中,为您的密钥起个名称(例如,“My SSH Key”)。

在“Key”字段中,粘贴您在第6步中复制的SSH密钥内容。

单击“Add SSH key”按钮,以将密钥添加到您的GitHub帐户中。

现在,您应该能够使用SSH密钥进行Git操作,而无需再次输入用户名和密码。

三、SpaceVim

官网:https://spacevim.org/cn/
Github 地址 : https://github.com/SpaceVim/SpaceVim

SpaceVim 是一个社区驱动的模块化的 Vim IDE,以模块的方式组织管理插件以及相关配置, 为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全, 语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱即用的 Vim IDE。

SpaceVim提供代码自动补全、语法检查、格式化、调试、REPL 等特性。开发者只需要载入相关语言的模块就能得到一个开箱即用的 Vim IDE。

SpaceVim安装

参考SpaceVim的官方文档来安装:https://spacevim.org/quick-start-guide/

curl -sLf https://spacevim.org/cn/install.sh | bash

安装结束后,初次打开 vim 或者 neovim 时,SpaceVim 会自动下载并安装插件。

使用 Vim 搭建 Go 开发环境

官方参考:https://spacevim.org/cn/use-vim-as-a-go-ide/

Go语言 linux下开发 IDE -SpaceVim\NeoVim相关推荐

  1. go语言linux下开发工具,LiteIDE 开发工具指南 (Go语言开发工具)

    类型 在Go语言中,类型特指一系列的值和操作.Go语言的类型起到的作用与众所周知的面向对象的设计语言(Java.C++)有很大的不同,它没有所谓的层次划分.没有类的概念也不存在继承.类型是可以被推断出 ...

  2. 在Linux下开发多语言软件: Hello GetText!

    在Linux下开发多语言软件: Hello GetText! 转自:http://www.groad.net/bbs/read.php?tid-906.html 开发多语言软件是一件非常困难的事,各个 ...

  3. linux rpc语言,Linux下RPC的hello world

    Linux 下面使用RPC需要使用到命令rpcgen. 在Linux下开发RPC程序流程如下: 1.写一个rpc程序, 如test.x 2.使用rpcgen生成必须的文件,通常是客户端和服务器端以及头 ...

  4. 在 Linux 下开发和下载8051单片机程序

    在 Linux 下开发和下载8051单片机程序 在 Linux 下需要用 sdcc 开发8051单片机程序,用 stcgal 这个 python 程序将编译好的8051单片机程序下载到裸机上. sdc ...

  5. Linux下开发环境搭建---2. emacs篇

    Linux下开发环境搭建---2. emacs篇 本节主要参考:      曹乐的<在Emacs下用C/C++编程>      王纯业的<Emacs 一个强大的平台>      ...

  6. Android Linux下开发环境搭建

    开发环境--这个没有要求你一定得在什么系统下开发,你对哪个环境熟悉就用哪个. 如果习惯Windows的话,那在Windows下开发:如果对Linux比较熟,那你就用Linux. 不过,话说回来,Lin ...

  7. 用C语言Linux下打印带颜色的字符串

    用C语言Linux下打印带颜色的字符串 字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色  字颜色:30---------- ...

  8. 在Linux下开发简易通讯录

    通过这一段时间的学习,这两天花了不少时间巩固理解,终于完成了在Linux下开发简易通讯录,由于时间仓促,该程序有着不少bug,对于用户的输入容错率也不高,只做了开始菜单的输入容错,功能也只实现了基本的 ...

  9. linux下如何开发php,在linux下开发PHP,用哪个系统?该如何解决

    在linux下开发PHP,用哪个系统? 用 ubuntu还是centos呢? 求指导. O(∩_∩)O谢谢 ------解决方案-------------------- 这倒是无所谓的,不过建议与线上 ...

最新文章

  1. 从 setNeedsLayout 说起
  2. android图片加载库Glide
  3. kafka rabbitmq优劣对比_Kafka、RabbitMQ、RocketMQ等消息中间件的对比
  4. vue根据条件显示字段
  5. js-sdk探索之微信网页分享
  6. 冷热分离和直接使用大数据库_智能冷热分离的思考-内存数据库
  7. Android-基本控件和详解四种布局方式
  8. c语言输出英文字母表,菜鸟求助,写一个随机输出26个英文字母的程序
  9. ES6新特性总结之解构赋值和字符串模板
  10. 软件测试 - 用例篇
  11. excel使用教程_Office办公软件(word、ppt、excel)视频教程(更新)
  12. chimera添加氨基序列
  13. SWUST OJ【972】
  14. Java面试官最爱问的volatile关键字
  15. oracle与sun的java_甲骨文吞Sun Java何去何从?
  16. MAC 安装PS 破解
  17. php 环信easyui_php集成环信IM即时通讯系统(大致流程方法)
  18. SpringBoot 项目 Shiro 的实现
  19. js前端处理过滤特殊字符以及输入法特殊表情符号emoji的正则方法,解决数据库报错问题。
  20. 一种编程语言必备的功能

热门文章

  1. windows安装Rocket因为JAVAHOME空格导致找不到加载类问题
  2. IBM PC机是一台什么计算机,PC机是什么类型的计算机
  3. 轩小陌的Python笔记-day08 模块一总结
  4. IOS系统历届版本大回顾(iOS7)
  5. 云计算服务器和vps,云服务器和vps差别
  6. SMB2协议特性之oplock与lease(下)
  7. 这五个数据科学家和机器学习工程师油管博主,你必须关注
  8. 在线语音转文字如何进行在线转换的
  9. 安全狗等级保护建设服务内容有哪些?
  10. python多维list去重