web-dev-qa-db-ja.com

oh-my-zshを使用してzshで「自動CD」を無効にする方法

これをグーグルしても結果は表示されませんでした。これが私が意味することです:私のパスにはxというバイナリファイルがあります(現在のフォルダーではなく、PATHにあります)、そしてalsoフォルダー現在の作業ディレクトリにある同じ名前。 xと入力すると、バイナリを実行したいのですが、代わりにそのフォルダーにcdします。どうすれば修正できますか?

32
Gabi Purcaru

3つの質問を1つにまとめました;-)

AUTO_CDオプションとその見つけ方

まず、探しているオプションはAUTO_CDです。 _man zshoptions_を検索すると、簡単に見つけることができます。ポケットベルの検索機能を使用します。通常、 / キーワードを入力します。と n 次の発生にジャンプします。これにより、以下が表示されます。

_[..]
   Changing Directories
       AUTO_CD (-J)
              If  a  command is issued that can't be executed as a normal command, and the command is the name of a directory, perform the cd command to that directory.
[..]
_

オプションは_unsetopt AUTO_CD_を使用して設定解除できます。

適切にオフにする

次のように記述されているoh-my-zshを使用しています

"zsh構成を管理するためのコミュニティ主導のフレームワーク" 120以上のオプションのプラグイン(Rails、git、OSX、ハブ、capistrano、brew、ant、macportsなど)が含まれています...

したがって、次のことは、フレームワークに従ってオプションを有効/無効にする方法を見つけることです。

readme.textile file は、プラグインを有効/無効にするための推奨される方法は.zshrcのエントリであると述べています。plugins=(git osx Ruby)どのプラグインがAUTO_CDオプションを使用しているかを調べます。マンページから発見されたように、-JスイッチまたはAUTO_CDを介して呼び出すことができます。 oh-my-zshはgithubで利用できるため、それを検索するとファイル_lib/theme-and-appearance.zsh_が表示されます。プラグイン全体の「テーマと外観」を無効にしたくない場合は、_unsetopt AUTO_CD_を.zshrcに挿入します。フレームワークを更新している場合は、変更が失われるため、oh-my-zshのファイルを直接変更しないでください。

実行可能ファイルが直接呼び出されない理由

3番目の質問は、バイナリを直接実行する方法です。たとえば、_./_のように_./do-something_を前に付けて、パスを介してバイナリファイルを実行する必要があります。これはセキュリティ機能の一種であり、変更しないでください。 USBスティックを差し込み、マウントし、lsで確認する方法。ホームディレクトリを削除するlsという実行可能ファイルがある場合、$ PATHの順序が上書きされるため、すべてが失われます。

繰り返し呼び出すコマンドがある場合は、.zshrcにエイリアスを設定するのが一般的な解決策です。

50
echox