## .
## ## ## ==
## ## ## ## ===
/___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
Tony的工作空间DevOps人员设计的效率工具,旨在提高开发和文本处理的效率docker封装的workspace,包含vim-ide以及常用工具集python、go、shell的代码高亮, 语法检查,格式化, 自动补全, 查看文档、定义、引用, 以及REPL等功能markdown、json、yaml、Dockerfile等文本格式的代码高亮, 语法检查,格式化等功能pyenv、pipenv、python2.7、python3.6的python开发环境gvm、glide、go1.13的go开发环境k-vim做了大量扩展和调整的vim-ideSpaceVim作为vim-ide的配置vim-ide的配置docker-client、docker-compose、docker-tags、dive等docker管理工具git、git-flow等代码版本及开发工作流程管理工具linux系统工具、网络工具和包管理工具.workspace的四层抽象
HOST: dockerd运行环境, workspace最底层DEV: 开发专用环境, 在HOST中使用 ws dev [proxy] 命令进入, 命令行提示符为蓝色#, 启用proxy时命令行提示符为蓝色背景#VENV: python/go虚拟环境, 在DEV中使用 pe-i、pes、go-i、gos 等命令进入, 命令行提示符为天蓝色$FAT: 测试专用环境, 在VENV中使用 ws fat [EXPOSE] 命令进入, 命令行提示符为黄色&可移植性
docker封装--volume功能解耦并保留workspace状态dockerd通用性和性能
vim实现ide的功能, 同时获得高于常规ide的性能ws: workspace管理入口pye: python开发任务管理入口goe: go开发任务管理入口gite: git相关命令入口gh-md-toc: 对gh-md-toc的封装, 可对指定目录下的所有markdown格式文件生成`TOCvimdiff: 对vimdiff及vim-dirdiff的封装, 可比对指定目录的差异guide: 查看使用手册(施工中……)welcome: 查看欢迎界面scripts目录macOS(仅对10.14.x版本做了测试)Ubuntu(仅对18.04版本做了测试)root用户docker-ce、curl、git# 下载项目代码, 此处强制要求项目目录为${HOME}/workspace/workspace-in-docker
git clone https://github.com/TonyBian/workspace-in-docker.git ${HOME}/workspace/workspace-in-docker
# 初始化HOST workspace
# 安装字体, 并生成可随处执行的ws命令以替代admin.sh
bash ${HOME}/workspace/workspace-in-docker/admin.sh init
# 初始化vim-ide, 可选k-vim、spacevim以及自定义配置
## 选择k-vim时, 首次执行将根据vim配置下载并安装插件, 耗时较长
## 完成初始化后再次执行将检查并升级已安装的插件
## 选择spacevim时, 首次执行将下载SpaceVim项目及dein插件管理工具
## 完成初始化后再次执行将升级SpaceVim
## 在DEV workspace中, 首次打开vim将根据配置下载并安装插件
## 选择custom时, 需要在DEV workspace中手动根据vim配置安装插件
ws init {k-vim|spacevim|custom}
# 修改自定义配置
# USER_NAME及USER_EMAIL: 修改git全局配置及源码文件的Author信息
# HUB_USER: 当使用自定义docker image时请修改此参数
# HARBOR: 此参数不为空时, DEV workspace容器将挂载指定harbor地址的证书, 以获取访问指定harbor的权限
# GIT_PUSH_DEFAULT: 详见https://git-scm.com/docs/git-config#git-config-pushdefault
# PIP_TRUSTED_HOST: 指定pip源可信host
# PIP_INDEX_URL: 指定pip源
${HOME}/workspace/workspace-in-docker/ws.conf
# 进入DEV workspace, 可选使用代理翻墙
# 初次使用时需要下载所需docker image, 耗时较长
ws dev [proxy]
# 创建python/go项目, 进入VENV workspace, 并修改$HOME为项目目录
# 如果指定了当前没有安装的版本, 将提示是否自动安装, 安装可能耗时较长
# python项目目录为/root/workspace/py-projects/<project_version>/<project_name>
# go项目目录为/root/workspace/go-projects/<project_version>/<project_name>
# 初始化项目的git仓库, 并创建.gitignore
# 初始化包管理文件
## python项目
pe-i <project_name> [project_version]
## go项目
go-i <project_name> [project_version]
# 切换到已存在VENV workspace
## python项目
pes <project_num>
## go项目
gos <project_num>
# 包管理
# 需要先切换到项目对应的VENV workspace
# 可使用pye及goe命令获取详细信息
## python项目
pye
## go项目
goe
# vim-ide
# 配置文件放在项目目录下的vim.conf目录中
# 介绍两个使用k-vim配置时的实用功能
# 基于vim8.1的内置terminal功能实现
## REPL, 交互式编程
## 详见https://github.com/sillybun/vim-repl
## 键位映射
let g:sendtorepl_invoke_key = "ww"
nnoremap rr :REPLToggle<Cr>
tnoremap <C-h> <C-w><C-h>
tnoremap <C-j> <C-w><C-j>
tnoremap <C-k> <C-w><C-k>
tnoremap <C-l> <C-w><C-l>
## 以指定高度开启内置terminal
## 键位映射
nnoremap tm :call OpenTerminal()<cr>
## 更多vim配置请阅读vim.conf下的配置文件
trouble shootingvim界面状态栏乱码或其他显示异常
macOS环境解决方案vim自动补全失效或报错
vim的使用依赖于环境变量, 当切换到VENV workspace时,需要重新启动vim使环境变量生效修改vim配置后配置失效
vim的配置文件在项目中vim.conf目录下, 通过--volume的方式挂载到容器中, 直接修改该目录下的配置文件会导致挂载出现问题/root目录下的.vimrc、.vimrc.bundles、.SpaceVim.d/来调整vim配置vim启动较慢
vim每次启动时需要加载插件和配置vim之后, 一切文件操作都在vim内部进行, 充分利用window/tab/buffer及文件管理插件, 避免频繁的启动和关闭vimVENV或python版本时, 必须在切换后重新启动vim使环境变量生效VENV下工作时, 最好每个VENV使用一个独立的终端窗口vim使用hjkl移动光标导致cpu使用率升高,性能下降
syntax导致, 详见Syntax highlighting causes terrible lag in Vimhjkl, 多用其他更高效的光标移动方法
段落引用
Content type
Image
Digest
Size
435.8 MB
Last updated
over 6 years ago
docker pull tonybian/workspace-in-docker:stack