/myVIM

记录自己使用的vim插件

Primary LanguageVim Script

说明

此镜像中默认安装了python36和golang 1.15.2

  • (可选)已安装 highlight,可以让我们执行ccat等命令时带有颜色方案
  • (可选)已安装 direnv,自动生成隔离的环境
  • 安装 https://github.com/BurntSushi/ripgrep
  • 安装 FZF, bat
  • 以上两点的设置可以参考这里

  • direnv的使用方法:

    • 进入到项目目录
    • rm -rf .envrc && echo "layout go" > .envrc(这是对于GoLang项目,如果是Python项目,请使用echo "layout python"
    • 根据提示输入:direnv allow .
    • 执行go get -u -v ./...下载代码中的所有依赖到{项目根目录}/.direnv

使用

容器化方式(推荐)

1. 生成镜像
docker build --no-cache -t myvim --build-arg GOVERSION=1.15.2 .

# 或者可以执行以下命令生成镜像
# make build-image

2. 启动容器
docker run -itd -v xxx:/home/xxx --name vim myvim:latest

3. 进入到容器中
docker exec -it vim zsh

GOVERSION如果没有提供,默认会安装go1.15.2

PYTHONVERSION如果没有提供,默认安装python36

非容器化

建议使用root用户执行以下命令:

sh setup_for_centos8.sh

或者可以执行以下命令:

make local-setup

快捷键

功能
F1 帮助
F2 打开NerdTree
F3 打开TagList(shift+i:显示隐藏的文件/文件夹)
F4 打开ctrlp搜索文件
F5 PreviewTag
F6 打开Ag搜索关键字
F7 打开 FZF check
F8 打开ALE
F9 signify

1. Grepper

:Grepper 打开搜索 :vnew filename 打开搜索到的文件 image.png

2. NerdTree

	- F2 打开nerdtree
	- i: 水平打开文件
	- s: 竖直打开文件
	- ma:添加文件
	- :!mkdir {文件夹的名字} 添加文件夹
	- md:删除文件/文件夹
	- r: 刷新

3. AG

	- F6 打开AG,进行关键字搜索
	- ctrl + T在新窗口中预览 
	- ctrl + X水平预览 
	- ctrl + V垂直预览 

4. ctrlp

	- F4 打开ctrlp,进行文件搜索
	- ctrl + d按文件名搜索
		- p 在新窗口中预览
	- ctrl + x 水平打开窗口
	- ctrl + v竖直打开窗口
	- ctrl + p/n历史记录
	- ctrl + z标记文件,ctrl +o对标记的文件打开
	- ctrl + t 打开新的tab页
		- tab页切换: 向左: ,,  向右:,.

按下 Esc<Ctrl-c> 可退出ctrlp,返回到Vim窗口中

按下 F4 用于刷新当前操作路径下的文件缓存,可以使用命令 let g:ctrlp_cache_dir = $HOME.'/.cache/ctrlp' 设置缓存文件存放路径

使用 <Ctrl-k><Ctrl-j>在模糊搜索结果列表中上下移动 (当然也可以使用键盘上的上下方向键)

使用 <Ctrl-f><Ctrl-b> 在查找文件模式、查找缓冲区模式、查找MRU文件几种模式间进行切换 (cycle between modes)

使用 <Ctrl-d> 在 路径匹配 和 文件名匹配 之间切换 (switch to filename search instead of full path) ,可以通过设置 let g:ctrlp_by_filename = 1 来设置默认使用 文件名匹配 模式进行模糊搜索

使用 <Ctrl-r> 在 ''字符串模式'' 和 ''正则表达式模式'' 之间切换 (switch to regexp mode)

使用 <Ctrl-t> 在新的Vim标签页中打开文件 (open the selected entry in a new tab)

使用 <Ctrl-p> 或` 选择前或后一条历史记录

<Ctrl-y> 用于当搜索的目标文件不存在时创建文件及父目录 (create a new file and its parent directories)

使用 <Ctrl-z> 标记或取消标记多个文件, 标记多个文件后可以使用 <Ctrl-o> 同时打开多个文件 (mark/unmark multiple files and to open them)

5. ]]不同的类间跳转

6. F7

	- pep8 check

7. ALE

	- F8 打开ALE,进行动态代码检查

8. tag相关(未完)

- ctrl + W + } 预览定义
- Ctrl + W + ] 在新窗口中打开
- ctrl + ]跳转查看定义(对于Python来说,[可能会遇到这个问题](https://double12gzh.github.io/wiki/#ctags%E8%BF%9B%E8%A1%8C%E8%B7%B3%E8%BD%AC%E6%97%B6%E4%BC%9A%E6%8A%8Aimport%E4%B9%9F%E5%8A%A0%E5%88%B0%E9%87%8C%E9%9D%A2))
- PreviewTag tagname 预览tag
- PreviewFile filename预览文件
- F3 打开taglist
- g + ]列出所有的定义
- ctrl + t回到上次跳转的位置
- ctrl + o后退
- ctrl + i前进
- [ + I 全文查找
- ] + I 光标处向下查找
- % 大括号间跳转

9.vim-preview(未完)

	- F5 当光标在所在的tag处时,按F5执行do preview
	> 说明:这两个命令在Grepper中尝试过成功了,但是在g+]中没有成功
	- p打开预览窗口
	- P关闭预览窗口

10. vim-signify(未完)

与git相关,通过与vim-fugitive联合使用。
	- F9 gitdiff

https://stackoverflow.com/questions/27832630/merge-changes-using-vimdiff

11. subline

image.png

标签切换: :b1

12. 文件比较之插件法

:DirDiff file1 file2

13. 文件夹比较之diff

diff -r -u ark-installer_v0.1 ark-installer_v0.2| vim -R - diff -rq folder1 folder2

14.文件比较之diff

diff file1 file2 | vim -

15. 代码补全

ctrl+x+o

如果希望可以自动出现代码提示,可以把au filetype go inoremap <buffer> . .<C-x><C-o>加入到~/.vimrc的最后一行

16. 自动导入

:w!

17. 查看godoc

shift + k

18. 在NerdTree中,创建/删除文件/文件夹

ma

19. FZF

ctrl + T: 在新的tab 中打开预览 ctrl + X: 在当前 tab 中水平打开预览 ctrl + V: 在当前 tab 中垂直打开预览

20. CtrlSF

:C:CtrlSF 打开

, + t 在新的标签中打开或 直接按 t 也可以在标签中打开

, + o 在当前页中打开

ctrl +p 预览

ctrl + t 使用 FZF搜索

21. snippets

https://github.com/fatih/vim-go/blob/master/gosnippets/UltiSnips/go.snippets

其它:

vim docker 镜像

https://www.jianshu.com/p/110b27f8361b

如果使用 fpp,需要修改默认的 $SHELLzsh 并重新打开终端,否则无法打开文件

vim 性能分析: https://stackoverflow.com/questions/12213597/how-to-see-which-plugins-are-making-vim-slow