切换到ZSH以后遇到的坑
了解到ZSH的强大以后打算将自己目前使用的bash切换到ZSH。具体ZSH比bash强在那里就不多少了,网上的文章一搜一大把。个人主要是被ZSH强大的自动补全吸引过来的。虽然bash装了bash-completaion以后也有了一定的自动补全能力,但是和ZSH比起来还是差距太大。
ZSH虽然功能强大,但是配置繁琐,并且shell脚本的语法一向比较奇葩,如果自己定制还需要对shell脚本有一定的了解。本来想用ZSH来节省时间,但是还要花大量时间来配置ZSH无疑会生使众多程序员望而却步。好在github有oh-my-ZSH这个项目,自动把大量的配置给你搞好了,基本上做到了开箱即用。
具体如何安装ZSH和配置oh-my-zsh就不多说了,请参见https://github.com/robbyrussell/oh-my-zsh。
安装完毕后运行chsh -s /bin/zsh将当前默认的shell切换为zsh。另外需要做的是要将以前~/.bash_profile中的配置复制到~/.zshrc中,这样保证以前在bash中定义的别名、命令等可以继续正常工作。
虽然说ZSH无缝兼容bash,但是刚开始使用还是遇到了一些坑,好歹都一一解决了。
编码问题
当我运行Octopress博客的生成博客命令时,遇到了这个奇怪的错。
1 |
|
看起来貌似是默认编码的问题,ZSH使用的默认编码是US-ASCII,但我期望的是UTF-8。
ok,查看当前zsh shell下的编码是什么。
1 |
|
由于没设值,所以ZSH就选取了US-ASCII。
解决办法也很简单,在~/.zshrc中加入以下两行。
1 |
|
通配符问题
我又发现如果命令行中有[] *等字符会被zsh优先作为通配符处理,这样导致某些命令会被ZSH错误解析。
比如:
1 |
|
这里的[]是ruby语言中的语法,但是被ZSH解析成了通配符,所以报错。解决方法也简单,关闭ZSH的这一特性。
在~/.zshrc中加入下面一行即可搞定。
1 |
|
切换到ZSH以后遇到的坑的更多相关文章
- Mac terminal从bash切换到zsh
0.预备知识 echo $SHELL命令可以查看当前正在使用什么shell 默认情况下(mbp 10.10.5)使用bash作为默认shell,然而也自带zsh,which zsh命令可以查看zsh的 ...
- Mac 切换bash zsh等shell
现在假设大家都安装了iTerm2,我们先把bash切换成zsh,使用命令行如下: chsh -s /bin/zsh 执行命令后,会让你输入电脑的密码,输入即可.完成后,需要完全退出iTerm2,再次进 ...
- 终端中的 zsh 和 bash-魔法切换
常用ubuntu,这两个终端都装了,平时使用zsh比较方便,可是,有时候出现了问题,不知道是谁的问题时候,还要做一下切换操作的,怎么才能迅速切换呢? 要切换,首先要知道你现在使用的是什么,请看第一个命 ...
- MAC bash和zsh切换
bash和zsh切换 切换到bash chsh -s /bin/bash 切换到zsh chsh -s /bin/zsh 记得输入切换命令后,要重新打开终端terminal才生效哦!大功告成!
- Mac终端 bash和zsh切换方法
切换到bash chsh -s /bin/bash 切换到zsh chsh -s /bin/zsh 终端重启后生效
- [daily] 宇宙终极shell之zsh
序 很久以前,我就知道zsh.后来在并不遥远的好几年前,第一次装arch的时候,默认shell就是zsh.虽然用起来不太习惯,但是仍然蛮好用的. 决定好好的学一下zsh,如果可以就切换过去,毕竟bas ...
- 我在用的mac软件(2)-终端环境之zsh和z(*nix都适用)
继续上篇介绍我的终端环境.这篇介绍zsh和z,其实这不局限于os x,在所有的*nix系统中都是可用的. zsh zsh作为bash的替代品,自然很多人要问:why zsh? 在Zsh Worksho ...
- MAC下配置ZSH
Mac的Terminal出了bash还配备了zsh模式,相比于bash,zsh的界面更加简单精致,用户名直接省略,用一个小箭头代替,而且箭头的颜色还可以指示命令的对错:路径和文件名的自动补全功能也十分 ...
- Env:zsh和fish安装和使用
zsh优势兼容bash, 方便git管理,但是有时候切换速度较慢,特别遇到git仓库目录 fish优势速度较快,路径提示也不错,但是和bash不兼容 1. zsh 首先,可以通过cat /etc/sh ...
随机推荐
- app开发遇到问题及解决
1:ios and Android 差异input type=text 当用户点击input框时,弹出手机键盘,ios会遮挡输入框 解决办法: pswOnFocus = function(){ tar ...
- 【java】:常用工具类
PS; 平时用到的一些工具类,验证非空.字符切割.时间转换.金额转换 package com.jws.common.util; import java.io.UnsupportedEncodingEx ...
- 在ASP.NET MVC中使用Juqery实现页面局部刷新
自己做的一个实验,留作备忘,此实例包括扩一下几个文件: 1.MyMovieController.cs 2.Index.aspx 3.ViewUserControl1.ascx 4.movie类 其中M ...
- Oracle表空间数据文件移动的方法
最近遇到这样的一个问题,Oracle存放表空间文件的盘符 空间不够了,必须把部分表空间迁移出去, [转]http://www.jb51.net/article/77026.htm 实现把用户表空间中的 ...
- Eclipse在线集成maven M2eclipse插件
首先说下版本: Eclipse:3.6 Maven:3.3.1,若不知道如何在本地安装Maven,请参见我的另一篇文章:Window下安装Maven 废话少说,直接讲步骤就好: 1.打开eclipse ...
- Win10专业版激活方法可查版本
Win10专业版激活步骤 ------安装Win10专业版,请win+R,键入winver回车,可查看版本------ 1.点击左下角windows按钮,找到设置并打开,依次点击"更新和安全 ...
- 猜字符游戏之java
package days06; //需求......,问题,为什么要用do{}while???import java.util.Scanner;public class RepeatOfGussing ...
- SQL一致性错误修复SQL
USE master; ); SET @databasename = 'BenlaiTask'; ALTER DATABASE BenlaiTask SET SINGLE_USER WITH ROLL ...
- MemCached 安装笔记
安装步骤: 1. 下载libevent & memcached 源码包 分别把memcached和libevent下载回来,放到 /tmp 目录下: # cd /tmp # wget ...
- WinForm/Silverlight多线程编程中如何更新UI控件的值
单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...