nvim ide for golang, 主要针对go
语言做了一些优化.当然也可以用作c/c++
,python
,rust
等语言的IDE.
魔改版<根据gonvim配置进行了自定义配置>
首先您需要先安装nvim(建议neovim版本0.7以上版本) 下载fucknvim
$ git clone https://github.com/3Xpl0it3r/gonvim.git
建议备份原始nvim配置文件
cp -rf ~/.conf/nvim ${HOME}/.conf/nvim_back
安装nvim配置文件
安装过程最好打开科学上网
# 安装
$ ln -sv gonvim ~/.conf/nvim
$ nvim
插件安装失败处理
# 手动安装packer
$ git clone --depth 1 https://github.com/wbthomason/packer.nvim\\n ~/.local/share/nvim/site/pack/packer/start/packer.nvim
# 同步插件
$ nvim +PackerSync
安装gopls
$ go install golang.org/x/tools/gopls@latest
安装gopks 如果您可能会涉及到go语言,强烈建议您安装下gopks(codeaction里面import导入package路径会用到这个工具)
$ go get github.com/3Xpl0it3r/gopkgs
安装gotests
gotests
可以帮助您来自动生成单元测试代码, 通过leader
键来触发codeAction 选择GenTest 来自动生成单元测试
$ go get -u github.com/cweill/gotests/...
补全输入两个字母就会自动触发,因此您不需要输入完整的trigger信息
date
: 打印当前时间``pwd
: 打印当前路径.wrap(
: xxx.wrap( => (xxx)wrap"
: xxx.wrap" => "xxxx"wrap'
: xxx.wrap' => 'xxx'wrap{
: xxxx.wrap{ => {xxxx}wrap[
: xxxx.wrap[ => [xxxx]wrap<
: xxx.wrap< =>APACHE
: 打印license信息
具体的含义您可以通过预览来查看每个snip生成的代码效果
pkgmain
fmain
typ
typi
typs
methodprt
methodstruct
impl
\
json`- '`xml`
funcret
funcnil
forrange
forindex
forcondition
fortrue
ifcondition
iferr
ifnil
ifelse
ifdebug
select
switch
gofunc
在原有基础上进行了二次配置: 1 开启鼠标 2 开启buffline,并修改配置文件 3 增加dracula theme 4 修改部分快捷键 5 增加nvim-lsp-installer,实现极简一键安装 6 fature 准备增加nvim-tree的辅助功能快捷方式,比如增加删除文件(夹)
ps: 字体采用goole字体Recursive,但是由于recusive不支持nerdfont,所以使用fontPatcher patcher了一下 地址在https://github.com/omigaZ/my-nerd-fonts
clipboard-provider is a script to handle copying and pasting, Which works with system clipboard, tmux and ssh
mv ~/.config/nvim/clipboard-provider /usr/local/bin/
configuration in tmux
set -s set-clipboard external
bind Escape copy-mode
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'clipboard-provider copy'
bind p run "tmux set-buffer "$(clipboard-provider paste)"; tmux paste-buffer -p"