簡略化された端末ナビゲーション

簡略化された端末ナビゲーション

私はIDEが将来の波であることを知っていますが、常にvimLinux端末でコーディングしています。古い犬には新しい才能があります。

とにかく長いパッケージ名を処理すると、ナビゲーションが困難になります。たとえば、端末でプロンプトの一部として現在のパスを表示できます。時々私はここにいます:

/foo/bar/src/com/example/yomama/

私が到達したい場所:

/foo/bar

私はいくつかの素晴らしいエイリアスがあります:

alias 1down="cd .."
alias 2down="cd ..;cd .."
alias 3down="cd ..;cd ..;cd .."
alias 4down="cd ..;cd ..;cd ..;cd .."
alias 5down="cd ..;cd ..;cd ..;cd ..;cd .."

だから私がそれを入力すると4down、パン!私はここにいます/foo/bar

私の現在の作業ディレクトリは次のとおりです。

/foo/bar/src/com/example/yomama/

/up 2で/foo/barにアクセスすることもできます。

だから、上がる量を計算する方が簡単なので、2up機能を実装するのが良いでしょう。シェルスクリプトの作成を始める前に、よりエレガントなソリューションを提供できるシェルツールがあるかどうかを知りたいです。実装できる文章を知っている人がいればボーナスポイントですNup

PS:すでに持っています。

alias bar = "cd /foo/bar"

ここでは、より一般的な解決策を探しています。

$PWDPPS:私はいつもクリックできるコンテンツをプロンプトに追加するのが本当にクールだと思いました。だからbarcdとをクリックします/foo/bar。しかし、おそらくグラフィックIDEに移動して終了する必要があるようです;-)

編集する:

Nupの私の定義は少し混乱しています。

Nupは、PWDのルートから始まるN番目のパス位置に移動します。したがって、現在/a/b/c/d/e/f/g/h/iにある場合、4upは/a/b/c/dに移動します。同様に、5down は /a/b/c/d を取得します。

デフォルトでは、「cd ..」を複数回タフに入力したり、「cd /a/b/c/d」を指定しなくてもパスを移動できます。

ベストアンサー1

ファイルの2つの機能を.bashrc使用すると、ディレクトリスタックを使用していくつかのナビゲーションを実行できます。

function down ()
{
  if [[ -z "$1" ]]
  then
   n=1
  else
   n=$1
  fi

  for ((i=0; i<$n; i++ ));
  do
      pushd .. > /dev/null
  done;
}
function up ()
{
  if [[ -z "$1" ]]
  then
   n=1
  else
   n=$1
  fi

  for ((i=0; i<$n; i++ ));
  do
      popd > /dev/null
  done;
#  dirs -c  # To clear directory on up motion
}

down Nとをそれぞれ使用できる場所ですup N

使用例:

~/tmp/bash/dir1/dir2/dir3$ down 4
~/tmp$ up 2
~/tmp/bash/dir1$ up 2
~/tmp/bash/dir1/dir2/dir3$ down 2
~/tmp/bash/dir1$ down 1
~/tmp/bash$ up 3
~/tmp/bash/dir1/dir2/dir3$

もちろん、up N使用する前には使用できませんdown N。予期しないことが発生したり、エラーメッセージが表示されることがあります。

おすすめ記事