Skip to content

lycheng/dot-vimrc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 -> 打开 tarbar
  • F9 -> 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 -> 取消光标高亮

vim-table-mode

  • <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

使用 ale 替换 syntastic

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

Packages

No packages published

Languages

  • Vim Script 66.2%
  • Python 25.6%
  • Lua 5.8%
  • Makefile 2.4%