複数レベルのネストされたディレクトリをナビゲートすることはしばしば苦痛です。 Firefoxではブックマークがあるので簡単です。したがって、ファイルをブックマークしたいのは入力です。
$ go --add classes "repo/www/public/util/classes"
その後、そのディレクトリに移動するには、次のように入力する必要があります。
$ go classes
以前も同様の機能を達成するためにシンボリックリンクを使用したことがありましたが、ホームディレクトリを複雑にしたくありませんでした。便利な他の多くの機能があります。たとえば、入力を開始しgo cl
てTabキーを押してオートコンプリートできるようにします。場合によっては、リポジトリの複数のコピーをチェックアウトするので、プログラムで複数のコンテキストを作成し、コンテキストのデフォルトディレクトリに相対的なブックマークを設定できるようにすることが役に立ちます。
もしそうなら、私自身のスクリプトセットを一緒にまとめる前に、すでに似たものはありますか?
答え1
似たようなものを探していると思います。自動ジャンプ。特定のディレクトリで費やされた時間に関連する「コアウェイト」セットの開発に時間を費やす必要があります。その後、「Classes」ディレクトリに多くの時間を費やしたと仮定すると、次のように入力してそのディレクトリに直接移動できます。
j cl
「キーの重み」を見ることができます。
jumpstat
答え2
述べたように、エイリアスは良いメカニズムです。 Bashシェルには、次の場所に直接移動できるメカニズムも組み込まれていますCDPATH
。に設定しますが、検索プログラムの代わりにPATH
使用します。cd
$ CDPATH=:~/repo/www/public/util
$ cd classes
/home/casebash/repo/www/public/util/classes
マンページから:
CDPATH The search path for the cd command. This is a colon-separated
list of directories in which the shell looks for destination
directories specified by the cd command. A sample value is
".:~:/usr".
私はこれを私が行きたい場所へのシンボリックリンクがあるディレクトリと組み合わせました:
$ mkdir ~/cdshortcut
$ ln -s ~/repo/www/public/util/classes ~/cdshortcut/classes
$ CDPATH=:~/cdshortcut
/home/casebash/cdshortcut/classes
欠点は、ディレクトリが正しく表示されないことです。ただし、これはcd -P
設定を使用して変更できますset -P
。
答え3
私はあまりにも長い間シェルブックマークツールを探していましたが、私が見つけた解決策は満足できません。
しかし、結局私は素晴らしいユニバーサルツールを見つけました。コマンドラインファジーファインダー。
主にファイルを「ファジー検索」することはできますが(上記のリンクを介して豊富なアニメーションgifを確認する)、任意のテキストデータをファイルに供給してそのデータをフィルタリングすることもできます。したがって、ショートカットのアイデアは簡単です。私たちにとって必要なのは、パス(つまりショートカット)を持つファイルを維持し、そのファイルをファジーフィルタリングすることだけです。次のようになります。cdg
(必要に応じて「cd global」から)コマンドを入力し、ブックマークのリストを取得し、数回のキーストロークで目的のブックマークを選択し、Enterキーを押します。作業ディレクトリを選択したプロジェクトに変更します。
とても速くて便利です。通常、目的の項目のうち3〜4文字だけを入力すると、残りはすべてフィルタリングされます。矢印キーまたはCtrl+j
/を使用してリストをナビゲートすることもできますCtrl+k
。
このショートカット/ブックマークソリューションの詳細な記事は次のとおりです。シェルの難読化されたショートカット。
答え4
私自身もalias
頻繁に訪れる長い路線を短縮することが多い。alias
esグループをesに入れて、ログインするbashrc
たびにbashにそれを覚えさせることができます。幸いなことに、bashはオートコンプリートのためのエイリアスを追加します。
私はあなたの場合に次のような内容を書きます。alias go-classes="cd ~/repo/www/public/util/classes"