标签: zshrc

RVM和Gemfile - 并不总是加载正确的ruby,只有当'cd ..&cd myproject'时

TL; DR:每次打开一个新的选项卡,都会回到默认版本,它不会使用Gemfile ruby​​版本

我的Gemfile有

source 'https://rubygems.org'
ruby '2.0.0'
Run Code Online (Sandbox Code Playgroud)

我使用rvm 1.25.14.

RVM是智能的,并且在gemfile中读取ruby版本,除了这个边缘情况

# NOTE: iterm2 
$ cd myproject
$ ruby -v
> ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12.5.0]
Run Code Online (Sandbox Code Playgroud)

但cmd + t,创建一个新的标签,留在那个directoy,

$ pwd
>../myproject
$ ruby -v
> ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]
Run Code Online (Sandbox Code Playgroud)

ruby 1.9.3是我的默认值,这很好.我的bash(或.zshrc)中缺少什么?使这项工作?

#FILE .zshrc
#...stuff

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
Run Code Online (Sandbox Code Playgroud)

使用cmd …

bash zshrc rvm iterm2

8
推荐指数
1
解决办法
342
查看次数

zsh中的LANG环境变量

我最近在新的ubuntu机器上安装了sublime文本.在启动过程中,我收到以下错误消息:

系统的区域设置设置为无法处理非ASCII字符的值.除非已修复,否则Package Control无法正常工作.

在Linux上,请参阅您的发行版的文档,以获取有关正确设置LANG环境变量的信息.作为临时解决方案,您可以从终端启动Sublime Text:

   LANG=en_US.UTF-8 sublime_text
Run Code Online (Sandbox Code Playgroud)

我在终端(zsh shell)中检查了以下内容echo $LANG但是这并没有返回任何我添加以下两行~/.profile并重新启动终端,但这没有帮助,因为echo $LANG没有返回任何东西?

如何LANG在zsh shell中设置我的env变量?

unix locale zsh environment-variables zshrc

8
推荐指数
1
解决办法
7765
查看次数

如何使用URL和反斜杠禁用zsh替换/自动完成

我使用zshoh-my-zsh在Ubuntu:14.04.

当我粘贴URL时,shell使用反斜杠自动填充转义字符.

例如,使用环境变量:

$ wget http://{DEFAULT_IP}/index.html
It will become:
$ wget http://\{DEFAULT_IP\}/index.html
Run Code Online (Sandbox Code Playgroud)

如何禁用此功能?

zsh zshrc oh-my-zsh

8
推荐指数
3
解决办法
6248
查看次数

zsh提示符和主机名

我在.zshrc中使用以下提示符:

PROMPT="%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%1~ %{$reset_color%}%# "
Run Code Online (Sandbox Code Playgroud)

当我打开终端时,我看到了这个提示:

zoltan@zoltan-Macbook-Pro ~ %
Run Code Online (Sandbox Code Playgroud)

是否可以在主机名中删除文本"zoltan"?我想让它看起来像这样:

zoltan@Macbook-Pro ~ %
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.谢谢!

shell zsh hostname zshrc

8
推荐指数
2
解决办法
6993
查看次数

Zsh 无法识别函数内的别名

这是我的.zshrc

alias inst="adb install -r -d"

notify() {
  start=$(date +%s)
  "$@"
  notify-send "\"$(echo $@)\" took $(($(date +%s) - start)) seconds to finish"
}
Run Code Online (Sandbox Code Playgroud)

当我运行命令时notify inst app.apk,出现错误:

notify:2: command not found: inst
  0.00s user 0.00s system 0% cpu 0.001 total
Run Code Online (Sandbox Code Playgroud)

谁能解释一下为什么这行不通,并希望有一种方法让它发挥作用?

zsh zshrc

8
推荐指数
2
解决办法
5355
查看次数

matcher-list参数如何在zsh zstyle完成中起作用?

我正在尝试配置我的〜/ .zshrc,以便在文件/目录上完成代码完成工作,因为我需要它.我已经在zstyle完成语法和代码示例上找到了各种各样的资源,但是它的某些部分对我来说仍然是黑魔法.

到目前为止,经过一些小小的测试后,我就在这里.

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*'

以下是我对它的理解:

  • zstyle ':completion:*' 意味着我们要为完成定义配置值
  • matcher-list 是我们更新的配置,这里定义了zsh如何匹配文件/目录建议
  • 'm:{a-zA-Z}={A-Za-z}' 'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*'是传递给matcher-list配置的参数(值).
  • 这里我有两个参数,用空格分隔.这意味着zsh将首先尝试查找与第一个arg匹配的文件,如果找不到任何内容将尝试匹配第二个arg的文件

在这里它变得模糊:

  • 我得到'm:{a-zA-Z}={A-Za-z}'了匹配大小写不敏感,但我不太明白语法.
  • 我还得到它'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*'仍然不区分大小写,但也搜索整个字符串中的匹配,而不仅仅是开始.但是,我也没有得到语法.

有人可以确认我之前的断言,并在需要时纠正它们,并详细说明参数的巫术语法吗?

谢谢

编辑:哦,对不起,如果问题更适合superuser.com,我有一个难以确定哪个网站更适合它.

zshrc

7
推荐指数
1
解决办法
1875
查看次数

从 .zshrc 导出 PYTHONPATH 不起作用

我试图从 .zshrc 导出 PYTHONPATH 环境变量,但失败了。

.zshrc 中的相关行

PYTHONPATH="/Users/nicolas/Code:/Users/nicolas/Code/Dashboard"
export $PYTHONPATH
Run Code Online (Sandbox Code Playgroud)

** 从命令行 **

1]测试一

echo $PYTHONPATH
/Users/nicolas/Code:/Users/nicolas/Code/Dashboard
Run Code Online (Sandbox Code Playgroud)

似乎有效

2]测试二

`sh -c 'echo "$PYTHONPATH"' `
==> empty output
Run Code Online (Sandbox Code Playgroud)

实际上没有

3]测试三

使用以下命令运行以下 python 脚本python script.py

#!/usr/bin/env python
import os
try:
    user_paths = os.environ['PYTHONPATH'].split(os.pathsep)
except KeyError:
    user_paths = 'no pythonpath'
print user_paths
Run Code Online (Sandbox Code Playgroud)

输出:没有 pythonpath

再次失败

4]测试四

zsh -x -c 'echo moo'

+/etc/zshenv:2> [ -x /usr/libexec/path_helper ']'
+/etc/zshenv:3> /usr/libexec/path_helper -s
+/etc/zshenv:3> eval 'PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/X11/bin:/usr/texbin:/Users/nicolas/anaconda/bin:/opt/local/lib/postgresql93/bin:/Users/nicolas/Code/games:/Users/nicolas/Code/Dashboard";' export 'PATH;'
+(eval):1> PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/X11/bin:/usr/texbin:/Users/nicolas/anaconda/bin:/opt/local/lib/postgresql93/bin:/Users/nicolas/Code/games:/Users/nicolas/Code/Dashboard
+(eval):1> export PATH
+zsh:1> echo moo …
Run Code Online (Sandbox Code Playgroud)

shell zsh zshrc python-2.7

7
推荐指数
1
解决办法
2万
查看次数

将所有点文件移出根目录

我正在运行macOS Sierra,并且正在将所有点文件移动到一个目录中。我已经成功导出了各种安装的许多环境变量(vagrant、等),这些composer变量oh-my-zsh允许我安装到我选择的子目录中。

不幸的是,诸如npmsubversionhomesteadgit和其他程序不提供此类配置。

configuration-files zshrc dotfiles hidden-files macos-sierra

7
推荐指数
1
解决办法
4292
查看次数

不确定将 Oh My Zsh 的补全放在哪里

我正在使用 zsh,哦我的 zsh,我对在哪里放置完成文件有点困惑。

例如,安装时kind,我这样做:

brew install kind
kind complete zsh > ~/.oh-my-zsh/cache/completions/_kind
Run Code Online (Sandbox Code Playgroud)

我预计竣工kind工作将开始进行。我是否将它们放在错误的目录中?

如果我autoload -U compinit && compinit在当前终端中执行此操作,则完成工作将一直持续到我重新启动终端为止。

我认为我的.zshrc水平相当标准,这基本上就是我所拥有的:

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

export ZSH="$HOME/.oh-my-zsh"

DISABLE_MAGIC_FUNCTIONS="true"

plugins=(
  git
  gh
  docker …
Run Code Online (Sandbox Code Playgroud)

zsh zshrc zsh-completion oh-my-zsh

7
推荐指数
1
解决办法
6788
查看次数

zsh_history 存储具有奇怪编码的非 ASCII 字符

当我打开 .zsh_history 文件时,我发现历史记录中的一些非 ASCII 字符具有奇怪的编码或类似的内容。

\n

这是一个最小的例子:

\n

首先,.zshrc

\n
# zshrc\nHISTSIZE=10000\nSAVEHIST=10000\nHISTFILE=~/.zsh_history\n
Run Code Online (Sandbox Code Playgroud)\n

我用汉字输入了一些命令,exec zsh以保存历史记录并读取.zsh_history文件。

\n
# zshrc\nHISTSIZE=10000\nSAVEHIST=10000\nHISTFILE=~/.zsh_history\n
Run Code Online (Sandbox Code Playgroud)\n

结果被一些随机的奇怪字符替换。

\n
echo \xe5\xad\x83\xe4\xb8\xb2\xe6\xb8\xac\xe8\xa9\xa6 \xe4\xb8\x80\xe4\xba\x83\xe4\xb8\x83\nexec zsh\n
Run Code Online (Sandbox Code Playgroud)\n

图片

\n

另外,当我使用 vim 或任何文本编辑器打开此文件时,它会使用latin1编码打开此文件并显示以下内容:

\n
echo \xc3\xa5\xc2\xad\xc2\xb7\xc3\xa4\xc2\xb8\xc2\xb2\xc3\xa6\xc2\xb8\xc2\xac\xc3\xa8\xc2\xa9\xc2\xa6 \xc3\xa4\xc2\xb8\xc3\xa4\xc2\xba\xc2\xac\xc3\xa4\xc2\xb8\xc2\xa9\nexec zsh\n
Run Code Online (Sandbox Code Playgroud)\n

图片

\n

我找不到解决此问题的选项,我猜这是一个编码问题。\n如何强制 zsh 以 utf-8 编码保存历史记录,或者还有其他方法可以解决此问题?

\n

zsh zshrc

7
推荐指数
1
解决办法
467
查看次数