Skip to content

wandercn/go-ide-vim.conf

Repository files navigation

go-ide-vim.conf

my vim conf for golang IDE and rust IDE

supported languages

  • Golang
  • Rust
  • C
  • Python
  • Java
  • JavaScript
  • TypeScript

requirements

vim 8.0 +python3 +lua

iTerm2 (Support true color)

brew install macvim
     vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 01 2021 08:32:44)
macOS version - x86_64
包含补丁: 1-2681
编译者 Homebrew
巨型版本 带 MacVim 图形界面。  可使用(+)与不可使用(-)的功能:
+acl               +file_in_path      -mouse_sysmouse    -tag_old_static
+arabic            +find_in_path      +mouse_urxvt       -tag_any_white
+autocmd           +float             +mouse_xterm       +tcl
+autochdir         +folding           +multi_byte        +termguicolors
-autoservername    -footer            +multi_lang        +terminal
+balloon_eval      +fork()            -mzscheme          +terminfo
+balloon_eval_term +fullscreen        +netbeans_intg     +termresponse
+browse            +gettext           +num64             +textobjects
++builtin_terms    -hangul_input      +odbeditor         +textprop
+byte_offset       +iconv             +packages          +timers
+channel           +insert_expand     +path_extra        +title
+cindent           +ipv6              +perl              +toolbar
+clientserver      +job               +persistent_undo   +transparency
+clipboard         +jumplist          +popupwin          +user_commands
+cmdline_compl     +keymap            +postscript        +vartabs
+cmdline_hist      +lambda            +printer           +vertsplit
+cmdline_info      +langmap           +profile           +virtualedit
+comments          +libcall           -python            +visual
+conceal           +linebreak         +python3           +visualextra
+cryptv            +lispindent        +quickfix          +viminfo
+cscope            +listcmds          +reltime           +vreplace
+cursorbind        +localmap          +rightleft         +wildignore
+cursorshape       +lua               +ruby              +wildmenu
+dialog_con_gui    +menu              +scrollbind        +windows
+diff              +mksession         +signs             +writebackup
+digraphs          +modify_fname      +smartindent       -X11
+dnd               +mouse             -sound             -xfontset
-ebcdic            +mouseshape        +spell             +xim
+emacs_tags        +mouse_dec         +startuptime       -xpm
+eval              -mouse_gpm         +statusline        -xsmp
+ex_extra          -mouse_jsbterm     -sun_workshop      -xterm_clipboard
+extra_search      +mouse_netterm     +syntax            -xterm_save
-farsi             +mouse_sgr         +tag_binary       

Plugin Manager

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

install

git clone https://github.com/wandercn/go-ide-vim.conf.git ./vim_conf && mv ./vim_conf/.vimrc $HOME/.vimrc

vim +PlugInstall

install YouCompleteMe

cd ~/.vim/plugged/YouCompleteMe/
./install.py --all

YouCompleteMe 如果编译安装不成功,不想折腾的,可以考虑用coc.nvim做代码补全。快捷键基本一样,vimrc配置在 rust-ide-with-coc

Shortcut key description

快捷键 功能说明 en-us description 对应编程语言
gr 查看引用列表 GoToReferences any
[Control] + n 浏览引用列表,查看下一个 view references list, next one any
[Control] + m 浏览引用列表,查看上一个 view references list, previou one any
ca 关闭引用列表 close references list any
gd 查看定义 GoToDefinition any
gi 查看接口类型实现 GoToImplementation any
rn 标识符重命名 RefactorRename any
[Space] + b 编译代码 Build Code Rust,Go
[Space] + r 运行代码 Run Code Rust,Go
[Space] + t 运行测试 Run Test Code Rust,Go
tg 打开/关闭TagBar查看器 open/close TagBar Viewer any
[Control] + z 打开/关闭NeoTree浏览器 open/close NeoTree any
[Control] + o 回退光标到上一次所在文件位置 Rewind the cursor to the last file location any
[Control] + p 打开快速文件搜索. Open a quick file search any
:noh 关闭搜索匹配的文字高亮效果. Turn off the text highlighting effect for search matches any
:MarkdownPreview 打开MarkDown文档实时预览,会在浏览器打开页面。 Open MarkDown documents for live preview MarkDown
[Shift] + p + m 打开vim内部MarkDown预览窗口 Open the vim internal MarkDown preview window MarkDown
[F9] 设置调试断点 set breakpoint Rust,Go
[F5] 启动图形化调试 start graphical debugger Rust,Go
[Space] + c + c 注释单行代码 Comment one line of code any
[Space] + c + m 注释多行代码 Comment multiline code any
[Space] + c + u 取消注释代码 Uncomment code any

FAQ

  1. let g:rustfmt_autosave =1 开启保存很慢超过3秒钟,怎么处理?

set foldmethod =syntax "基于语法进行代码折叠 ,这个设置引起的。改成 set foldmethod = indent 或者manual就能解决问题。

Debug Code

图形化Debug代码

怎么debug rust ?

插件准备

在Vim中用命令 :VimspectorInstall CodeLLDB 安装必要插件,Vimspector官方说明

  1. 新建配置文件

需要在每个项目目录下创建独立的.vimspector.json

Rust项目配置内容参考如下,gostdmain 项目名称需要根据实际修改。

{
  "configurations": {
    "launch": {
      "adapter": "CodeLLDB",
      "configuration": {
        "request": "launch",
        "program": "${workspaceRoot}/target/debug/gostdmain"
      }
    }
  }
}
  1. 设置断点

在代码需要调试行,按键盘功能键F9设置断点显示为红点,如下图:

  1. 启动调试

按键盘功能键F5, 启动图形化调试界面,如下图:

其他步骤点击界面显示的按钮就可以了,比敲命令调试方便高效多了。

怎么debug go ?

插件准备

在Vim中用命令 :VimspectorInstall vscode-go 安装必要插件,Vimspector官方说明

Delve installed, e.g. go get -u github.com/go-delve/delve/cmd/dlv

  1. 新建配置文件

Go虽然用dlv命令调试也算比较方便的,但是图形化调试还是更高效点。

其他步骤与debug rust一样。

区别就一点,debug配置文件内容不一样。在go项目目录下创建.vimspector.json

Go项目配置内容参考如下, dlvToolPath对应的值就是你dlv工具的安装位置。

{
  "configurations": {
    "run": {
      "adapter": "vscode-go",
      "configuration": {
        "request": "launch",
        "program": "${fileDirname}",
        "mode": "debug",
        "dlvToolPath": "$HOME/go/bin/dlv"
      }
    }
  }
}

screen

Go

Rust

C

Python

Java

JavaScript and TypeScript

tagbar

TagBar for Go

TagBar for Rust