此镜像中默认安装了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 |
:Grepper 打开搜索 :vnew filename 打开搜索到的文件
- F2 打开nerdtree
- i: 水平打开文件
- s: 竖直打开文件
- ma:添加文件
- :!mkdir {文件夹的名字} 添加文件夹
- md:删除文件/文件夹
- r: 刷新
- F6 打开AG,进行关键字搜索
- ctrl + T在新窗口中预览
- ctrl + X水平预览
- ctrl + V垂直预览
- 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)
- pep8 check
- F8 打开ALE,进行动态代码检查
- 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 光标处向下查找
- % 大括号间跳转
- F5 当光标在所在的tag处时,按F5执行do preview
> 说明:这两个命令在Grepper中尝试过成功了,但是在g+]中没有成功
- p打开预览窗口
- P关闭预览窗口
与git相关,通过与vim-fugitive联合使用。
- F9 gitdiff
https://stackoverflow.com/questions/27832630/merge-changes-using-vimdiff
标签切换: :b1
:DirDiff file1 file2
diff -r -u ark-installer_v0.1 ark-installer_v0.2| vim -R - diff -rq folder1 folder2
diff file1 file2 | vim -
ctrl+x+o
如果希望可以自动出现代码提示,可以把
au filetype go inoremap <buffer> . .<C-x><C-o>
加入到~/.vimrc的最后一行
:w!
shift + k
ma
ctrl + T: 在新的tab 中打开预览 ctrl + X: 在当前 tab 中水平打开预览 ctrl + V: 在当前 tab 中垂直打开预览
:C
或 :CtrlSF
打开
, + t
在新的标签中打开或 直接按 t 也可以在标签中打开
, + o
在当前页中打开
ctrl +p
预览
ctrl + t
使用 FZF搜索
https://github.com/fatih/vim-go/blob/master/gosnippets/UltiSnips/go.snippets
https://www.jianshu.com/p/110b27f8361b
如果使用 fpp,需要修改默认的 $SHELL
为 zsh
并重新打开终端,否则无法打开文件
vim 性能分析: https://stackoverflow.com/questions/12213597/how-to-see-which-plugins-are-making-vim-slow