我在Ubuntu上使用zsh
和oh-my-zsh
:14.04。
当我粘贴URL时,shell会用反斜杠自动完成转义字符。
例如环境变量:
$ wget http://{DEFAULT_IP}/index.html
It will become:
$ wget http://\{DEFAULT_IP\}/index.html
如何禁用此功能?
如果URL未被引用,反斜杠可能是必要的,这就是zsh添加它们的原因(通过<code>URL quote magic</code>)。如果您不喜欢它们,请引用URL:
$ wget '
然后粘贴URL并键入结尾引号:
$ wget 'http://{DEFAULT_IP}/index.html'
要完全禁用<code>url quote magic</code>功能:
zstyle ':urlglobber' url-other-schema
EDIT:从版本5.1开始,zsh在某些终端中支持带括号的粘贴,在这种情况下,<code>url quote magic</code>不再被使用(<code<bracketed paste magic</code>将其替换为粘贴)。
我最终得到了这个答案,但仍然不明白为什么粘贴URL会转义像< code >这样的字符
罪魁祸首(对我来说)是Mac上的iTerm2。
要禁用该行为,请进入iTerm2
确保为正确的配置文件执行此操作。
更新2019-05-12:
新版本(
DISABLE_MAGIC_FUNCTIONS=true
source $ZSH/oh-my-zsh.sh
通过:https://github.com/robbyrussell/oh-my-zsh/commit/486fa1010df847bfd8823b4492623afc7c935709
原始答案:
这是 zsh 5.1.1 ~ 5.2(当前)中的一个错误。
插件< code > bracketed-paste-magic 在zsh版本中不起作用。
问题就在这里:
我建议您禁用带括号的粘贴魔法。
注释这些代码来自oh-my-zsh的~/. oh-my-zsh/lib/misc.zsh
解决问题:
if [[ $ZSH_VERSION != 5.1.1 ]]; then
for d in $fpath; do
if [[ -e "$d/url-quote-magic" ]]; then
if is-at-least 5.1; then
autoload -Uz bracketed-paste-magic
zle -N bracketed-paste bracketed-paste-magic
fi
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
break
fi
done
fi
通过
问题内容: 我有一个字符串“ \\ u003c”,它属于UTF-8字符集。由于存在双反斜杠,因此我无法将其解码为unicode。如何从“ \\ u003c”获取“ \ u003c”?我正在使用Java。 我尝试过 但无法实现我想要的。 这是我的代码 文件的内容是 \ u003c 问题答案: 不知道您是否仍在寻找解决问题的方法(因为您已经接受了答案),但是我仍然会添加我的答案作为针对 所述问题 的可
问题内容: 我正在将CSV文件导入MySQL数据库。可以通过支持文件路径中的正斜杠来实现。如果用户给出路径 MySQL不支持这种类型的路径模式。我想在路径中搜索反斜杠并将其替换为正斜杠,以实现以下目的: 怎么做? 问题答案: 在Java中,使用以下命令: 注意,这里不需要replace的正则表达式版本,即;仍会替换所有出现的搜索词,但会搜索 文字 字符串,而不是正则表达式匹配项。
问题内容: 我需要在路径字符串中替换为,但是以下代码失败。 有什么有用的建议吗? 问题答案: 使用函数filepath.ToSlash将操作系统路径分隔符替换为路径中的“ /”。 在Windows上,函数返回。在其他操作系统上,该函数按原样返回path参数。
问题内容: 我有以下字符串 我正在尝试这样做 如何逃避试图连接到mystr1的反斜杠? 问题答案: 您需要一个四倍的反斜杠: 原因: 正则表达式以匹配单个反斜杠: 用于描述此正则表达式的字符串:。 或者,您可以使用原始字符串,因此只需要双反斜杠即可:
问题内容: 在Java中,我有一个文件路径,例如“ C:\ A \ B \ C”,我希望将其更改为“ C:/ A / B / C”。如何替换反斜杠? 问题答案: String text = “C:\A\B\C”; String newString = text.replace(“\“, “/”); System.out.println(newString);
问题内容: 这是一个“到底发生了什么”的问题。我实际上不需要解决方案。 我必须用双反斜杠替换字符串中的所有单反斜杠。这就是我最终要做的… …其中strRootDirectory是上面的java.lang.String。 现在,我了解了第一个参数的四个反斜杠:regex期望两个反斜杠以表示单个文字反斜杠,而Java希望它们加倍。没关系。 但是,第二个参数的八个反斜杠到底是怎么回事?替换字符串不是应该