RHEL7 Install SpaceVim+neovim for Python3.9
MacBook,作为工作客户端
RHEL7中控服务器,管理其他服务器和虚机
之前总是在本地mac上编辑为了统一工作平台,只在一个地方保存相关文件,所以把工作环境放在自己的中控服务器上,无论在单位还是回家vpn都是一个工作平台,方便安全,随时开机连上终端就是自己的工作平台了,本地只需要一个好用的终端,配合中控机上的tmux,操起来还是很方便的,tmux 常用快捷键并不多,nvim主要是的快捷键:[SPC]、[Window](s)、、g、z,五大类, 等采用提示方式方便查找常用功能。
由于Server都有自己的python2 或之前安装过python3其他版本所以建议单独安装
$ more /etc/redhat-release
Red Hat Enterprise Linux Server release 7.4 (Maipo)
$ yum install libffi-devel -y
$ tar xfz Python-3.9.0.tgz && cd Python-3.9.0
$ ./configure --prefix=/usr/local/python3.9
$ make
$ sudo make install
$ cd ~/
$ /usr/local/python3.9/bin/python3 -m venv venv_py39
$ source ~/venv_py39/bin/activate # 给python3 一个单独的环境
neovim 有编译好的linux64版本,直接下载放到/usr/local下即可用很方便,现在标准版是0.4.4,测试有些问题,用了nightly 版本的,看自己需求选择安装吧。
[nvim-linux64.tar.gz](https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz)
$ tar xfzv nvim-linux64.tar.gz
$ sudo cp -rp nvim-linux64 /usr/local/nvim
$ ln -s /usr/local/nvim/bin/nvim /usr/bin/
$ nvim # 测试可以正常启动
SpaceVim 操作很多看手册吧
# Install
(venv_py39) $ pip install pynvim neovim
(venv_py39) $ curl -sLf https://spacevim.org/cn/install.sh | bash -s -- --install neovim
# 以下步骤是为了创建一个单独的环境,在工作目录works下创建.SpaceVim.d 增加配置。
(venv_py39) $ cd ~/works && mkdir -p .SpaceVim.d
(venv_py39) $ cp ~/.Space.d/init.toml ~/works/
(venv_py39) $ cd .SpaceVim/bundle/vimproc.vim && make
安装完成以后退出终端再进入一次,测试nvim 是否正常。
$ source ~/venv_py39/bin/activate
(venv_py39) $ cd ~/works
(venv_py39) $ nvim filename.txt
# 测试是否可以正常使用
配置Python环境,访问连接按需要配置即可
终端设置SpaceVim建议的字体可以很好实现目录树等的图形化显示。安装tmux 配置,终端推荐ITerm2(配置简单),Alacritty(美观,安装配置略复杂) 都免费。
SourceCodePro Nerd Font Mono 具体安装说明 GitHub 说明一下这个字体设置的时候写的是 “SauceCodePro Nerd Font Mono”,好像说是字体库国际命名问题造成的,别写成SourceCodePro就对了
# Manjaro 下载SourceCodePro.zip 解压到~/.local/share/fonts/SourceCodePro目录下,执行一下操作,重启动alacritty
fc-cache -vf
space, leader(,个人修改为逗号),s,g,z,没事刷刷能看到很多你想不到的功能,部分需要自己再添加配置
# 这需要先在venv环境把相关需要的库安装好,SpaceVim 自动读取当前python venv环境很方便
$ virtualenv -p /usr/sbin/python2 venv_py2 # 创建py2 虚拟环境
$ source ~/venv_py[2|3]/bin/activate
$ pip install -r require.txt # 用项目文件里的版本恢复python需要的库
安装好库以后可以使用’ g d ‘跳转到光标所在函数的定义处。
- zz # vim 快捷键把当前行挪到屏幕中央
- z <CR> # vim 快捷键,把当前行显示显示在屏幕上方
- :h z # 查看z键帮助信息
- g d #跳转到函数定义处
- <space> b d #关闭当前
- F3 # 目录树
- F2 # 函数、类目录
- Ctrl - hjkl 切换窗口, 目录、函数列表等
# SpaceVim 内置了 iedit 多光标模式,可快速进行多光标编辑
- space , s, e # 操作前v选择一个字符串,然后[空格] s e 可以一起修改相同的单词很方便
- :SPLayer -l # 命令模式:SPLayer -l 看所有的模块,url连接查看安装配置说明
- :SPDebugInfo # 看debug 信息,排查SpaceVim 报错信息
- :message # 查看最后nvim报错信息
- $ vim .SpaceVim.d/autoload/myspacevim.vim # 自定义一些自己的vim操作方法
读代码基本解决,如果测试新的项目可以再次初始化一个venv环境。
pip3 install neovim-remote
nvim .SpaceVim.d/init.toml增加
# neovim 浮动终端支持
[[custom_plugins]]
name = 'voldikss/vim-floaterm'
# nvim 下
:FloatermNew shell
:FloatermNew ranger # 需要yum 安装ranger
:FloatermNew ipython # 启动iPython
F4 启动浮动窗口ipython, Ctrl+n 启动浮动窗口shell
nvim .SpaceVim.d/autoload/myspacevim.vim
" 重新映射 leader 键
let g:mapleader = ','
" 保证在插入模式<F4>可以 toggle floaterm
inoremap <silent> <F4> :FloatermNew ipython<CR>
nnoremap <silent> <F4> :FloatermNew ipython<CR>
tnoremap <silent> <F4> <C-\><C-n>:FloatermNew<CR>
"" 关闭所有隐藏设置 浮动窗口
let g:tex_conceal = ""
let g:floaterm_keymap_new = '<C-n>'
let g:floaterm_keymap_prev = '<C-h>'
let g:floaterm_keymap_next = '<C-l>'
nvim .SpaceVim.d/autoload/myspacevim.vim # 增加一下代码
" 代码折叠
set foldenable
" 折叠方法
" manual 手工折叠
" indent 使用缩进表示折叠
" expr 使用表达式定义折叠
" syntax 使用语法定义折叠
" diff 对没有更改的文本进行折叠
" marker 使用标记进行折叠, 默认标记是 {{{ 和 }}}
set foldmethod=indent
set foldlevel=99
快捷键zc zo zC zO
首先是终端要先设置透明iTerm2、Alacritty,如何设置就自己找一下吧,不知道去搜很简单,这里想说的配合vim 或SpaceVim等怎么设置。网上找了很多大家都是参考vim本身的设置,这里有一个问题就是当你选用了一个喜欢的主题以后,主题会覆盖你单独的设置,比如很多设置说.vimrc最后添加:
hi! Normal ctermbg=NONE guibg=NONE
hi! NonText ctermbg=NONE guibg=NONE guifg=NONE ctermfg=NONE
archlinux 测试使用一下配置,vim主题可以自适应
" 增加透明背景
func! s:transparent_background()
┊ highlight Normal guibg=NONE ctermbg=NONE
┊ highlight NonText guibg=NONE ctermbg=NONE
endf
autocmd ColorScheme * call s:transparent_background()
这样设置的我碰到的一个问题就是vim 打开一个新文件的时候不透明,后来想到一般的主题应该有自己单独的设置去搜了一下git发现还真有,一下已onedark主题为例,我们去github它的主页上直接Ctrl+f 搜transparent就发现,要求把此配置添加到onedark加载之前,正好~/.SpaceVim.d/autoload/myspacevim.vim 里添加即可:
" onedark.vim override: Don't set a background color when running in a terminal;
" just use the terminal's background color
" `gui` is the hex color code used in GUI mode/nvim true-color mode
" `cterm` is the color code used in 256-color mode
" `cterm16` is the color code used in 16-color mode
if (has("autocmd") && !has("gui_running"))
augroup colorset
autocmd!
let s:white = { "gui": "#ABB2BF", "cterm": "145", "cterm16" : "7" }
autocmd ColorScheme * call onedark#set_highlight("Normal", { "fg": s:white }) " `bg` will not be styled since there is no `bg` setting
augroup END
endif
在我们添加了一些插件以后,会选择git对比和代码自动提示,基本这两种选的都比较多,遇到一个问题就是在左侧提示git提示增加、删除、修改等提示的时候不符合vim主题的颜色出现,查了一下发现是增加了coc.nvim 造成和sapcevim自带的git提示冲突造成,需要再coc.nvim 的配置文件中禁止
# 文件 coc-settings.json 一般在~/.SpaceVim/目录下
"git.enableGutters": false
今天使用spacevim发现光标狂闪,看着很是讨厌,尝试停掉Coc.nvim
: CocDisable