windows的cmd不够好看,也不够好用,powershell感觉又太复杂了,而且有时候想在windows下使用linux中比较好用的程序,这就需要cygwin了。
cygwin的安装十分方便,只需要从官网下载最新的安装包即可,添加好163的镜像源,在软件包选择界面,除了默认选择的程序,需要将wget和curl选上,方便随后要配置的apt-cyg shell程序的使用。
安装完之后再想添加新程序,一是可以再次运行安装程序添加,二是利用apt-cyg这个shell脚本,在命令行中安装程序,就像在debian系的linux系统中使用apt-get命令一样方便。
作为一个软件包管理工具,基本原理肯定是将软件包下载下来,然后按照一定规则解包到系统中。apt-cyg可以使用的下载工具有三个,lynx、wget和curl,然而cygwin在第一次默认安装的时候,并不会选上wget和curl,而lynx似乎已经不在官方支持的软件源中了。将apt-cyg脚本移动到/bin目录就可以使用。
cygwin中默认使用的shell终端就是mintty,但是不经过配置的mintty很是丑陋,直接附上我的配置文件。新建或者修改个人文件夹下的.minttyrc文件。
1 | BoldAsFont=yes |
基本上所有的终端程序,在关闭窗口后都无法在下次启动后依旧保存工作情况,比如有的时候ssh正连到服务器上突然手残把终端给关了,再打开终端就只能重新连接上去把之前的连接给干掉。使用tmux就没有这个问题了,更赞的是通过配置还能将终端的窗口进行分割。
然而刚装好的tmux也是不好看的,我所使用的配置文件是这个,怎么用看下readme就懂了。
然而这个配置所使用的实时显示电量的功能对我来说没有什么用,而且十分占cpu,为了实时检测电量,作者用了好多脚本,在任务管理器中可以看到大量bash.exe在不断的启动和关闭。
好在作者提供了个人配置,可以在tmux.conf.local中关闭电量监控,还可以自定义状态栏的图标、颜色,相对于官方的配置文件来说要方便一些。
这个配置每次都得自己开启鼠标支持,虽然作者写好了函数,每次开启只需要两步,但是既然要使用tmux自然是希望能随着终端的启动自动运行的,而开启鼠标支持的操作完全可以集成在tmux的启动脚本中,附上我个人的tmux启动脚本。
1 | session="yuzunzz" |
只要能在启动时运行到这些命令就行,我是将启动脚本存在一个.sh文件中,再在.bashrc中运行这个文件。
这个配置文件中底部的状态栏实现了powershell的效果,但是并没有依赖powershell,然而我需要别的程序(vim)也使用上powershell,所以还是要装的。
pip安装上powershell之后,对于vim来说需要在.vimrc文件中加上一段1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24# 你的powerline安装路径
set rtp+=/usr/lib/python2.7/site-packages/powerline/bindings/vim
" These lines setup the environment to show graphics and colors correctly.
set nocompatible
set t_Co=256
let g:minBufExplForceSyntaxEnable = 1
python from powerline.vim import setup as powerline_setup
python powerline_setup()
python del powerline_setup
if ! has('gui_running')
set ttimeoutlen=10
augroup FastEscape
autocmd!
au InsertEnter * set timeoutlen=0
au InsertLeave * set timeoutlen=1000
augroup END
endif
set laststatus=2 " Always display the statusline in all windows
set guifont=Inconsolata\ for\ Powerline:h14
set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline)
在我配置的terminal中,上半部分所使用的终端程序为fish,配上powershell,下面部门和新建的窗口则依旧使用默认的bash。对于fish来说,要集成使用powershell,需要在.config/config.fish中添加set fish_function_path $fish_function_path "/usr/lib/python2.7/site-packages/powerline/bindings/fish"
而默认的bash也可以自定义提示符的格式,我自己的配置如下,具体可以搜索学习后参照更改。export PS1='\[\e[38;5;189m\]\u™\[\e[0m\]\[\e[38;5;231m\]@\H \[\e[0m\] \[\e[1;32;1m\]\w\[\e[0m\] \$ '
同样需要放置在bash的启动配置中,这样每次新建bash的时候都能生效。
使用powerline还需要使用特别的字体,在官方的github上有提供,推荐我所使用的这个字体,另外选择这种字体的时候可能点击确认按钮会弹窗告知无法使用,其实只需要应用,再把设置窗口关掉就行了,直接在配置文件中更改也可以。
Over