Skip to content

chen3feng/devenv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

298 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

我的开发环境配置

这里是我的一些开发环境相关的配置和辅助工具。我平时开发的代码主要运行在 Linux 下,但开发机则有 iMac、MacBook、Windows、Linux 服务器等多种不同环境。

这些配置主要给 Linux(包括 docker 里的 Linux)使用,但大部分功能也适用于 macOS 下的终端。

_ 开头的文件原本应该以 . 开头放在 HOME 目录下,由于某些 git 平台会隐藏 . 开头的文件, 改为了下划线 _。使用时需要恢复成正确的文件名,或者用符号链接的方式,更便于 git pull 升级。

安装

克隆本仓库:

git clone https://github.com/chen3feng/devenv.git

然后,创建你自己的配置文件:

  • ~/.bashrc(如果你用 bash):
    source /path/to/this/devenv/_bashrc
  • ~/.zshrc(如果你用 zsh):
    source /path/to/this/devenv/_zshrc
  • ~/.inputrc(用于 readline,bash/python 等交互环境):
    $include /path/to/this/devenv/_inputrc
    
  • ~/.vimrc(如果你用 vim):
    source /path/to/this/devenv/_vimrc

也提供了一个 install 脚本(Windows: install.bat)用于自动安装。

Shell

shellrc

shellrc 是 bash 和 zsh 共享的配置文件,由 _bashrc_zshrc 分别 source。

自定义命令

详见 shell/README.md

命令 说明
alt_screen 切换终端备用屏幕缓冲区
compare_version 比较两个点分版本号字符串
find_sources 查找指定后缀的源代码文件
path_manager 管理 PATH 等冒号分隔的环境变量
proxy 开启/关闭 http_proxy / https_proxy / all_proxy
trash_rm 带回收站功能的 rm 命令
unquarantine 移除 macOS 下载文件的隔离属性

mkcd 命令

创建并进入目录,支持 mkdir 的各种参数(如 -p),最后一个参数为目标目录:

$ mkcd 123
$ mkcd -p 1/2/3

mytop 命令

top 命令的别名,只显示当前用户的进程。

pinstall 命令

统一的包管理别名,根据系统不同,自动映射为 apt installyum installbrew install。 (实验状态)

常用设置

grep 自动带彩色,排除 .svn.git 目录。

.inputrc

这是 bash、python 交互环境等使用的 readline 库的配置文件。

功能:

  • 输入命令前缀后按 箭头,只匹配前缀相同的的历史命令
  • Shift- / Shift- 以词为单位移动光标
  • Ctrl- / Ctrl- 同上(Windows 上的 XShell 默认无法输入 Shift 组合键)
  • macOS 上支持 DeleteHomeEnd
  • completion-ignore-case on:补全忽略大小写
  • show-all-if-ambiguous on:有歧义时直接显示所有补全选项

修改后执行 bind -f ~/.inputrc 或重新登录生效。

.vimrc

VIM 的配置文件,功能:

  • 基于 Google 代码规范 的格式控制
  • 创建 C++ 头文件时自动插入 inclusion guard
  • 创建 C++ test 文件时自动插入 gtest 头文件包含
  • 打开文件时自动识别 GNU 代码风格路径,采用 GNU 代码风格
  • 打开文件时光标自动跳到上次退出时的位置
  • 显示 80/100 列标尺
  • 自动识别不同文件的中文编码
  • 自动识别终端编码
  • 高亮显示代码中的 TAB 字符
  • 彩色高亮 glog 日志文件中的错误、警告等信息
  • Ctrl-P 触发代码补全
  • 多 Tab 编辑:Shift- 上一个文件,Shift- 下一个文件
  • 修改过的文件自动备份到 ~/.vimbackup 目录
  • 保存时自动删除行尾空白字符和多于的 \r 字符
  • QuickFix 快捷键:F5 构建,F3/F4 上/下一个错误,F9 切换 QuickFix 窗口
  • :Build 自定义命令:不离开 vim 编译代码并进入 QuickFix 模式
  • :PlaybackBuildlog 自定义命令:加载类似编译错误格式的日志文件,进入 QuickFix 模式

QuickFix 模式

Vim 自动分析编译错误信息,在不离开 Vim 的情况下定位到出错行的一种快速代码修复模式。

PlaybackBuildlog

build.log 泛指任何类似编译器错误格式的文本文件(包含文件名、行号、列号、错误信息), 编译器输出、grep -n 以及很多代码检查工具都能生成这种格式。

XShell 的按键配置

Windows 上使用 XShell 时,如果不能输入 Shift-Shift- 组合键,可用以下方法解决:

  1. 打开【工具/按键对应】菜单
  2. 点击【新建】按钮
  3. 输入需要增加的组合键,弹出【编辑】窗口
  4. 在【操作/类型】中选择【发送字符串】
  5. 在【字串】编辑框中输入要发送的内容。如何知道应该发送什么?
    • 在能输入该组合键的终端(如 macOS 上的 iTerm)里执行 cat 命令,按键就会以 ANSI 转义序列 形式显示
    • 例如输入 Shift- 会显示 ^[[1;2D
    • 开头的 ^[ESC 字符, 需要通过 Alt+小键盘"27"输入
    • XShell 的编辑框不支持直接输入特殊字符,可以用记事本输入后复制粘贴
  6. 点击【确定】生效

目录结构

目录 说明
bin/ 辅助工具,初始化 shell 后自动纳入 PATH
docker/ 基于 Docker 的 Linux 开发环境,方便在 Mac/Windows 下进行 Linux 开发
git/ Git hooks 和安装脚本
shell/ Shell 辅助函数和脚本,详见 shell/README.md
vs/ Visual Studio 相关配置
vscode/ VS Code 远程开发相关配置
windows/ Windows 命令行相关配置和辅助脚本
xshell/ XShell 配置文件,主要是主题

About

Put develop tools here, such as style check and editing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors