LoginSignup
18
2

ターミナルへのコピペで勝手に"\"が追加されて困ったときに読む記事

Posted at

この記事はZOZO Advent Calendar 2023 #8 21日目の記事になります💁‍♂️

この記事で解決できること

ターミナル(iTerm, VScodeのターミナルも同様)にコピペしたときに勝手に" \ "が追加されてしまう問題を追加されないように修正し、解決していきます。

文字だけだとわかりづらいと思うので、このような現象です👇

- コピペ前
http://www.weather-from-the-future.com/forecast?date=2080-01-01&location=MoonBase

- コピペ後
http://www.weather-from-the-future.com/forecast\?date\=
2080-01-01\&location\=MoonBase

コピペ前とコピペ後で何が変わったのかというと"?", "&", "="の前に" \ "が追加されてしまっています...

この" \ "が勝手に追加されないように修正していきます👨‍💻

環境

  • macOS Ventura13.6.2
  • zsh 5.9
  • oh-my-zsh

解決方法

さっそく、解決方法を書きます!!

"oh my zsh"関係のファイルが原因なので修正します。修正すると行っても、下記ファイル(misc.zsh)の中身を数行コメントアウトするのみで解決します🙌

~/.oh-my-zsh/lib/misc.zsh
# *-magic is known buggy in some versions; disable if so
if [[ $DISABLE_MAGIC_FUNCTIONS != true ]]; 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

おつかれさまでした🎉 これで修正は完了です!!

(余談)なぜこの記事を書こうと思ったのか

修正自体は簡単です!!

しかし、日本語の記事を見つけることができず、英語の記事を呼んで解決したので少々時間がかかりました... 同士のためになればと思い書くことにしました👏

参考URL:https://github.com/ohmyzsh/ohmyzsh/issues/5569#issuecomment-453144639

原因

原因は、"oh my zsh"関係のファイルの設定でターミナルにコピペした特殊文字がエスケープシーケンスされてしまうところにありました。

今回の記事はここまで!! 良きzshライフを~~💁‍♂️

[おまけ] GPT先生に"エスケープシーケンス"について聞いてみた

エスケープシーケンスは、プログラミングやコンピューティングにおいて、特殊文字やコントロール文字を表現するために使用される方法です。

具体的には、エスケープシーケンスは特定の文字の前にバックスラッシュ(\)を置くことで、その文字が通常持つ特別な意味や機能を無効化(エスケープ)し、文字をリテラル(そのままの意味)として扱います。

例えば、ターミナルやシェルでコピペする際に、? や & といった特殊文字がコマンドや引数の区切りとして解釈されるのを防ぐために、これらの文字の前にバックスラッシュが追加されることがあります。これにより、これらの文字を文字通りの意味で扱うことができます。

18
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
2