lycheng's vim config
Forked from Maple's Vim config
个人用于 Python, Golang, Rust 开发,适用于 neovim v0.9+
Usage
Basic
NORMAL 模式下
Ctrl + E
-> 保持光标不动,窗口向下移动一行Ctrl + Y
-> 保持光标不动,窗口向上移动一行Ctrl + F
-> 下一页Ctrl + B
-> 上一页Ctrl + U
-> 上移半屏Ctrl + D
-> 下移半屏
Features
Ctrl
+c
-> 选中相应的行之后复制到系统黏贴板,需要 xclip 支持
F 区
F5
-> 打开目录树F6
-> 打开 tarbarF9
-> pastetoggle(在 nvim 中似乎默认的即可,不需要使用 PASTE 模式)
<leader>
键为空格键
:vs
-> 垂直分隔再打开当前的文件, 可用Ctrl + p
进行切换文件Ctrl
+h/j/k/l
-> 多个 window 间的跳转<leader> + g
-> 跳转到当前符号的定义或声明,YCM GoTo<leader> + G
-> 跳转到当前文件的 github / bitbucket / ... 链接,如果选了某行跳到具体某一行<leader> + f
-> 列出当前符号的引用(只适用于 js, py, ts),YCM GoToReferences{Visual}gc
-> 注释当前选中的代码gcc
-> 注释当前行
LeaderF 配置
Ctrl
+p
-> 当前目录下的文件搜索ff
-> 列出当前打开的文件列表tt
-> 列出当前文件的 symbol 列表TT
-> 列出当前打开的所有文件的 symbol 列表<leader> + a
-> 在当前目录下进行查找关键字<leader> + A
-> Visual 模式下,在当前目录下查找当前光标选中的关键字
vim-surround 配置,该插件用于修改,删除 surroundings (括号,方括号,引号等)
NORMAL 模式下
- cs(src-symbol)(dst-symbol) -> 更新符号
- cst(dst-symbol) -> 从 xml / html 的 tag 换成其它的 surrounding
- ds(src-symbol) -> 删除 surroundings
- ysiw(symbol) -> 当前单词使用添加 surrounding
上述的 iw 为 text object,更多用法可自行替换。
gv.vim 用于查看 git 日志
- :GV -> 查看 commit list
- :GV! -> 当前文件的修改的 commit list
再按 o 则看到指定 commit 的 diff
vim-mark 用于标记(多个)单词,高亮
<leader> + m
-> 标记当前光标选中的单词<leader> + n
-> 取消标记当前光标选中的单词<leader> + *
-> 跳到下一个当前的标记<leader> + /
-> 跳到下一个标记*
-> 如果光标处于标记了的单词上,则跳到下一个标记<leader> + M
-> toggle 光标高亮<leader> + N
-> 取消光标高亮
<leader> + tm
-> toggle vim table mode
machakann/vim-swap 函数交换参数
g>
\g<
-> 交换函数参数位置gs
-> 交互操作,可见 说明
Install
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
chmod u+x nvim.appimage
sudo mv nvim.appimage /usr/bin/nvim
pip install --user --upgrade pynvim
pip install --user --upgrade neovim
git clone git://github.com/lycheng/dot-vimrc.git ~/.vim
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
ln -s ~/.vim/vimrc ~/.vimrc
ln -s ~/.vim .config/nvim
ln -s ~/.vimrc .config/nvim/init.vim
Plugins Management
在 vim 中执行相应的命令
# 安装插件
:PlugInstall
# 更新插件
:PlugUpdate
也可以使用 make 命令来管理
# 更新插件,编译 YCM,安装依赖,更新 pip 的 neovim 的依赖
make update
Theme
使用 gruvbox
let g:gruvbox_contrast_dark='soft'
let g:gruvbox_improved_warnings=1
colorscheme gruvbox
Others
Syntax Check
Python
ale 中使用 flake8 进行检查,如果是虚拟环境下的则需要安装一个 flake8 才行,否则 Python2 / Python3 的版本会有问题
pip install flake8
Change Log
2023-05-17: YCM add Rust support
2023-05-12: Upgrade to neovim v0.9
- Use Nvim-tree to replace nerdtree
2020-09-24: 添加 mhinz/vim-startify
2020-09-16: 使用 space 替代默认的 leader 键
2019-11-20: Leaderf 开启 popup 特性,只支持 neovim 0.4.x 以上的版本
2019-01-16: master 分支只支持 neovim
2019-01-14: 添加 vim-table-mode && 移除 Yapf
2019-01-10: 删除 mundo
2019-01-09: 使用 neovim 替代 vim