我正在运行 Ubuntu,并想打开一个文件名以“-”(减号)开头的文件。当我尝试用 pico 或 vim 打开文件时,该命令认为“-”号是该命令的一个选项。
我尝试用引号 (') 将文件名括起来,但仍然出现相同的错误。
我尝试使用 bash 和 zsh,但仍然出现相同的错误。
快速示例:
~ $ wor<TAB>
~ $ WORDCHARS=
WORDCHARS WORKON_HOME WORKON_HOME workon
Run Code Online (Sandbox Code Playgroud)
workon是所需的命令。有没有办法从 ZSH 中的自动完成中排除环境变量?
我在 .zshrc
setopt autopushd
Run Code Online (Sandbox Code Playgroud)
它使 cd 的行为类似于 pushd。这意味着我们根本没有堆栈。当我使用它时,我根本没有使用过堆栈,因为它从我身上删除了堆栈。
我不确定 autopushd 有什么好处。
autopushd 有什么好处?
出于某种原因,我将这些奇数行号或某种历史记录号放入我的~/.zsh_history文件中,如下所示:
: 1266694881:0;rake db:migrate
Run Code Online (Sandbox Code Playgroud)
我宁愿不必求助于开始时的正则表达式,但我希望我的台词是这样的:
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
有没有人对如何解决这个问题有任何建议?我找到了,setopt EXTENDED_HISTORY但似乎没什么用。
我在 Ubuntu 16.04 上运行 zsh 5.1.1。似乎~/.zprofile不是来自登录或新终端。 ~/.zshrc然而来源。
我在跑步oh-my-zsh。
关于为什么会这样或我如何解决它的任何想法?
我一直在深入研究 /usr/bin 中的 osX 实际附带的内容,尤其是 /usr/libexec。
确实非常好,虽然命令语法有点……奇怪。
让我把好奇心引向让我想到这个的命令:
networksetup -printcommands
Run Code Online (Sandbox Code Playgroud)
我想不出一个命令可以更好地说明良好完成的必要性。
security -h
Run Code Online (Sandbox Code Playgroud)
也许,但这些命令具有熟悉的易于阅读的格式。
我恳求社区,请指点我可以找到这样的东西的地方。我从来没有正确输入它们,为此我很想完成选项卡
任何人都知道我可以在哪里抓东西?我更愿意站在巨人的肩膀上,而不是试图让 zsh/bash 完成脚本从我的额头跳入世界,准备战斗,就像雅典娜一样。
说到 compctl,我不是宙斯。一点也不。
第1部分
应该getent是可执行文件吗?
在我的 zsh 设置中,我可以看到 getent 实际上被定义为一个函数
$ which getent
getent () {
if [[ $2 = <-> ]]
then
grep ":$2:[^:]*$" /etc/$1
else
grep "^$2:" /etc/$1
fi
}
Run Code Online (Sandbox Code Playgroud)
如果我想从 bash shell 执行它,
bash -c "getent passwd user"
Run Code Online (Sandbox Code Playgroud)
我收到一个getent: command not found错误。
第2部分
在 Mac OSX 中,getent无论用户 ID 是否有效,都会失败。事实证明用户 ID 没有保存在/etc/passwd文件中。为什么会这样呢?还有什么替代方案呢?
我的 VM 有一个主机,当它全新安装 Ubuntu 时,bash shell 具有彩色目录和文件。
我如何用 ZSH 复制这个,我已经自定义了我的 PS1,但我也想自定义目录的颜色......我该怎么做?
刚开始将 zsh 与 oh-my-zsh 一起使用,当使用cd.
假设我有一个文件夹:
my_folder/
subfolder/
another_subfolder/
file.txt
Run Code Online (Sandbox Code Playgroud)
当我使用 bash 时,我可以输入:
$ cd p<tab>
Run Code Online (Sandbox Code Playgroud)
什么也不会发生,因为没有任何东西以my_folder开头p,但是如果我在 zsh 中做同样的事情,它会自动完成这个词proxy,我假设它是文件系统中其他地方的某个目录?
我不确定是否设置错误,或者这是否与我不理解的 zsh 中自动完成的工作方式有关。
编辑:
CTRL+Xh 的输出:
tags in context :completion::complete:cd::
local-directories named-directories (_alternative _cd (eval))
users named-directories directory-stack (_tilde _alternative _cd (eval))
users (_users _tilde _alternative _cd (eval))
Run Code Online (Sandbox Code Playgroud) 我经常遇到这样的情况,我只是使用了一个命令,我需要将它复制/粘贴到不同的终端窗口/IM 或其他任何地方。
在 Mac 上,我可以使用该pbcopy命令在剪贴板中获取某些内容,但我不确定应该如何获取该命令。我提出的是
history | tail -n 1 | perl -ple 's/\d+\s+//' | pbcopy
Run Code Online (Sandbox Code Playgroud)
哪个有效,但它看起来并不像干净的解决方案。有没有更好的方法来获得最后一个命令?我正在使用zsh,但我想如果有解决方案bash也可以使用zsh。