Cygwin 配置小结

隐藏

前言

此文关于我的cygwin安装配置,起因是重新安装新系统和cygwin后发现以前安装的软件又得重新安装,而且还不是那么容易安装, 故此文总结安装过程,以免每次安装又得重新查资料。

基础功能安装

1. 下载[cygwin]及初步配置

下载链接: cygwin-install

初步配置:

以最少量安装为原则,除了base packages中的软件包外,有以下软件包值得安装:

# Base
## devel-package
gcc-core
gcc-g++
make
cmake
gdb
git
git-completion
bash-completion # 这两个自动补全还是需要滴

## web and net
curl
ssh
wget

## editor
vim

## utils
tree

# Option
## shell zsh (if use oh-my-zsh)
zsh # 优点是兼容bash,功能更强,配合oh-my-zsh暴爽

## clang
clang # 推荐安装,类似于gcc的c-family编译器,更好
libclang # 如果用vim的补全插件 clang_complete
libclang-devel

## vim-silver-searcher (if use vim-ag)
### 以下插件都是为了在cygwin上安装silver-searcher(ag)需要的
automake
pkg-config
libpcre-devel
liblzma-dev
zlib-devel

## astyle for code Formatter
astyle # 我通常会在vim中用,并设置快捷键

## ctags
ctags # 代码查看

## cscope
cscope # 同ctags,不过更强,我的vim中包含了cscope的配置。

## lua for vim-neocomplete
lua # 如果需要用到vim-neocomplete,则需要对lua提供支持

## jekyll (if test jekyll blog on cygwin)
ruby
ruby-devel
rubygems
libffi
libffi-devel

2. 配置ssh-keys for github

因经常用github,所以先配置好ssh-key,步骤参见github-Generating-SSH-keys

简单来说就是:

$ ssh-keygen -t rsa -b 4096 -C "szhang.hust@gmail.com"
$ eval $(ssh-agent -s)
$ ssh-add ~/.ssh/id_rsa
$ clip < ~/.ssh/id_rsa.pub

然后在github网站中点击 settings -> SSH keys -> Add SSH Key 然后将clip中的内容粘贴(ctrl + V)上去即可。

3. 配置git global

$ git config --global user.email "szhang.hust@gmail.com"
$ git config --global user.name "Sen Zhang"

4. 配置 vim

直接下载安装我的vimrc配置即可

$ git clone git@github.com:SenZhangAI/vimrc .vim
$ cd .vim/
$ ./install.sh

5. 配置bash

主要就是添加部分注释掉的alias,以及添加alias vi='vim' 实际上如果用zsh,这部分也可以不配置,但配置了更好。 最终.bashrc文件中的配置如下:

# Default to human readable figures
alias df='df -h'
alias du='du -h'
#
# Misc :)
alias less='less -r'                          # raw control characters
# alias whence='type -a'                        # where, of a sort
alias grep='grep --color'                     # show differences in colour
alias egrep='egrep --color=auto'              # show differences in colour
alias fgrep='fgrep --color=auto'              # show differences in colour
#
# Some shortcuts for different directory listings
alias ls='ls -hF --color=tty'                 # classify files in colour
alias dir='ls --color=auto --format=vertical'
alias vdir='ls --color=auto --format=long'
alias ll='ls -al'                              # long list
alias la='ls -A'                              # all but . and ..
alias l='ls -CF'                              #
alias vi='vim'

6. 环境变量配置

将Cygwin中bin文件夹,例如:D:\Cygwin\bin加入windows系统的PATH环境变量中去。

6. 各种ln

通过软链接定义各种快捷方式,例如将windows的Desktop、Documents、Downloads等链接过来。 也可以建立软件的快捷方式,这里假设在Cygwin中使用Windows下的Sublime Text

$ ln -s /cygdrive/c/Users/Sen/Desktop ~/Desktop
$ ln -s /cygdrive/c/Users/Sen/Documents ~/Documents
$ ln -s /cygdrive/c/Users/Sen/Downloads ~/Downloads
$ ln -s /cygdrive/c/YourPathToSoftware/Sublime_Text.exe /usr/bin/sublime_text

修复cygwin与windows文件权限不一致的问题

编辑 /etc/fstab,修改为:

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

参见https://stackoverflow.com/questions/5828037/cygwin-sets-file-permission-to-000

进阶功能可选安装

1. oh-my-zsh

如果习惯了bash,当然不需要zsh,但是用过oh-my-zsh之后,基本对bash无爱了。 所以虽说可选安装,但还是强烈建议安装。

zsh的优点是几乎完全兼容bash的命令,且定制化极强,其方便程度,比如命令或者路径的智能提示,不是bash能比的。

然而它的缺点一方面是linux系统并不会默认安装,另一个方面是配置很麻烦,于是就有人写了非常强大的zsh的配置文件oh-my-zsh 所以安装zsh同时再安装oh-my-zsh配置文件即可。

下载并自动安装oh-my-zsh

参见: https://github.com/robbyrussell/oh-my-zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

设置默认shell为zsh

对于cygwin比较麻烦的是没有chsh命令,对此,需要修改/etc/passwd, 然而新安装的cygwin极有可能并没有/etc/passwd。 这时候,生成一个即可:

mkpasswd -l > /etc/passwd

然后修改该文件,将其中用户默认的bash改为zsh即可。

customization

下载我的oh-my-zsh配置,并安装即可:

$ git clone git@github.com:SenZhangAI/oh-my-zsh-sen ~/tmp/oh-my-zsh-sen
$ cd ~/tmp/oh-my-zsh-sen
$ ./install.sh
# modify the plugins config in ~/.zshrc
$ source ~/.zshrc

需要注意的是,添加对其他好用的插件的支持不能在custom中直接配置,这是因为oh-my-zsh.sh 中首先source all plugins 然后才source all custom config

故配置插件这一步骤不太容易实现自动化。

因此需要手动在.zshrc配置文件中修改,例如将.zshrc文件中的如下行修改为:

# plugins=(git) # the original config
plugins=(git z zsh-syntax-highlighting)
-----EOF-----

Categories: tools Tags: cygwin