回答編集履歴

1

追記

2021/07/24 11:10

投稿

otn
otn

スコア85901

test CHANGED
@@ -9,3 +9,43 @@
9
9
 
10
10
 
11
11
  `direnv`など「ディレクトリによって、xxxを切り替える」ような、`cd`を置き換える機能を既に使っていればそれと整合性を保って。
12
+
13
+
14
+
15
+ #ちょっと作ってみました。
16
+
17
+ `~/.histsave/`の下に、ディレクトリ名の`/`を`-`に置き換えたファイル名で保存します。
18
+
19
+ 保存してあるものが無いディレクトリに来た場合はヒストリーは不変ですが、クリアーしたければ、
20
+
21
+ `else history -c`を追加で。
22
+
23
+ ```Bash
24
+
25
+ cd(){
26
+
27
+ local DIR
28
+
29
+ DIR=$(pwd -P)
30
+
31
+ history -w ~/.histsave/"${DIR////-}"
32
+
33
+ builtin cd "$@"
34
+
35
+ DIR=$(pwd -P)
36
+
37
+ if [ -r ~/.histsave/"${DIR////-}" ]
38
+
39
+ then history -r ~/.histsave/"${DIR////-}"
40
+
41
+ fi
42
+
43
+ }
44
+
45
+ ```
46
+
47
+ > `cd`を置き換える機能を既に使っていればそれと整合性を保って。
48
+
49
+
50
+
51
+ には注意。関数の内容をマージしないといけない。