ide般的vim–SpaceVim
「生命不息,折腾不止;代码就是生命,一起折腾。」
如何将vim折腾成ide?往下看
Vim安装
Linux或macOS安装(类unix系)
使用git安装
$ git clone https://github.com/vim/vim.git
$ cd vim/src
$ make
其他linux发行版
•Debian[2]•Sun Solaris[3]•更多参照官网[4]
mac安装
•brew install vim
•安装 MacVim
mac定制版vim•更多选择看官网
其他还有neovim等vim其他发行版本,可以选择性安装
Windows安装
Vim入门推荐
vimtutor
命令
$ vimtutor
•进入官方指南入门教程,比较全面详细•英文版,英语不好的话有点吃力
通过游戏入门
这是一款网页游戏,很有意思,vim学习起来舒服多了~
其他
•菜鸟教程 <菜(da)鸟(shen)必备>•Google搜索•官方Doc
SpaceVim安装与配置
官方一键安装脚本
curl -sLf https://spacevim.org/cn/install.sh | bash
官方还有个帮助脚本,很全面,各种操作都包含了–
curl -sLf https://spacevim.org/cn/install.sh | bash -s -- -h
Docker安装(推荐)
docker pull spacevim/spacevim
docker run -it --rm spacevim/spacevim nvim
入门基本配置
SpaceVim默认配置文件为~/.SpaceVim.d/init.toml
,打开此文件编辑,或者进入vim
依次同时按space f v d
即可快捷打开默认配置文件。
# 这是一个基础的 SpaceVim 配置示例
# 所有的 SpaceVim 选项都列在 [options] 之下
[options]
# 设置 SpaceVim 主题及背景,默认的主题是 gruvbox,如果你需要使用更
# 多的主题,你可以载入 colorscheme 模块
colorscheme = "gruvbox"
# 背景可以取值 "dark" 或 "light"
colorscheme_bg = "dark"
# 启用/禁用终端真色,在目前大多数终端下都是支持真色的,当然也有
# 一小部分终端不支持真色,如果你的 SpaceVim 颜色看上去比较怪异
# 可以禁用终端真色,将下面的值设为 false
enable_guicolors = true
# 设置状态栏上分割符号形状,如果字体安装失败,可以将值设为 "nil" 以
# 禁用分割符号,默认为箭头 "arrow"
statusline_separator = "nil"
statusline_inactive_separator = "bar"
# 设置顶部标签列表序号类型,有以下五种类型,分别是 0 - 4
# 0: 1 ➛ ➊
# 1: 1 ➛ ➀
# 2: 1 ➛ ⓵
# 3: 1 ➛ ¹
# 4: 1 ➛ 1
buffer_index_type = 4
# 显示/隐藏顶部标签栏上的文件类型图标,这一图标需要安装 nerd fonts,
# 如果未能成功安装这一字体,可以隐藏图标
enable_tabline_filetype_icon = true
# 是否在状态栏上显示当前模式,默认情况下,不显示 Normal/Insert 等
# 字样,只以颜色区分当前模式
enable_statusline_mode = false
# SpaceVim 模块设置,主要包括启用/禁用模块
# 启用 autocomplete 模块,启用模块时,可以列出一些模块选项,并赋值,
# 关于模块的选项,请阅读各个模块的文档
[[layers]]
name = "autocomplete"
auto-completion-return-key-behavior = "complete"
auto-completion-tab-key-behavior = "cycle"
# 禁用 shell 模块,禁用模块时,需要加入 enable = false
[[layers]]
name = "shell"
enable = false
# 添加自定义插件
[[custom_plugins]]
repo = "lilydjwg/colorizer"
merged = false
更多配置,更多DIY,参照官方文档[8]进行配置
SpaceVim的Java环境配置
启动模块
配置语言服务
[[layers]]
name = "lsp"
filetypes = [
"java"
]
[layers.override_cmd]
java = [
"java",
"-Declipse.application=org.eclipse.jdt.ls.core.id1",
"-Dosgi.bundles.defaultStartLevel=4",
"-Declipse.product=org.eclipse.jdt.ls.core.product",
"-Dlog.protocol=true",
"-Dlog.level=NONE",
"-noverify",
"-Xmx1G",
"-jar",
"/Users/gentlemanhu/Documents/SomeStuff/forDev&some\ tools/jdt/jdt-language-server-latest/plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar",
"-configuration",
"/Users/gentlemanhu/Documents/SomeStuff/forDev&some\ tools/jdt/jdt-language-server-latest/config_mac",
"-data",
"/Users/gentlemanhu/Documents/Codes/Languages&Explore/Java/.cache/javalsp"
]
基本上就需要配置三个路径,
•-jar
:lanucher路径•-configuration
: 平台相关的配置文件路径•-data
: 语言服务器运行位置
代码补全
插件模块自动安装
•不需要过多操作,配置好文件,再打开vim就自动安装了,很舒服
其他配置
•语法树•交互编程•语法检查•等等•具体配置看官方文档[11]
报错问题解决
[vimproc] vimproc's DLL: "/Users/gentl...Please read :help vimproc and make it.
不论打开vim还是neovim,都会在下方报错
那就根据指示修复吧:help vimproc
git clone https://github.com/Shougo/vimproc.vim
克隆到~/.vim/bundle/目录下
cd vimproc.vim/
make
然后再打开vim就自动安装了,没有报错了
Resources
•SpaceVim入门[13]•HackSpaceVim[14]•官方文档[15]
References
[1]
vim官网: https://www.vim.org/
[2]
Debian: http://packages.debian.org/vim
[3]
Sun Solaris: http://wwws.sun.com/software/solaris/freeware/
[4]
官网: https://www.vim.org/
[5]
官方教程: https://www.vim.org
[6]
Learn Vim: https://vim-adventures.com/
[7]
官方中文教程: [https://spacevim.org/cn/quick-start-guide/#%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD%AE](https://spacevim.org/cn/quick-start-guide/#基本配置)
[8]
官方文档: https://spacevim.org/cn/documentation/
[9]
官方教程: https://spacevim.org/cn/use-vim-as-a-java-ide/
[10]
eclipse.jdt.ls: http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/jdtls/snapshots/jdt-language-server-latest.tar.gz
[11]
官方文档: [https://spacevim.org/cn/use-vim-as-a-java-ide/#%E4%BA%A4%E4%BA%92%E5%BC%8F%E7%BC%96%E7%A8%8B](https://spacevim.org/cn/use-vim-as-a-java-ide/#交互式编程)
[12]
Vimproc.vim: https://github.com/Shougo/vimproc.vim
[13]
SpaceVim入门: https://everettjf.gitbooks.io/spacevimtutorial/content/
[14]
HackSpaceVim: https://github.com/Gabirel/Hack-SpaceVim
[15]
官方文档: https://spacevim.org/cn/documentation/