私はハスケル自身を教え始めました。そのためには、Windows用にThe Haskell Platformをインストールしました。私は今のところWinGHCi
を使用しています。ディレクトリを変更するためのコマンド:cd
があることを知りました。しかし、問題は、私が現在どのディレクトリにいるのか、どのように分かっているのでしょうか?なぜ私はディレクトリを変更したいのですか?私は多くを検索しましたが、答えを見つけることができませんでした。WinGHCiの現在の作業ディレクトリを確認する方法
現在の作業ディレクトリを知る方法があるかどうか教えてください。私は、現在のディレクトリを表示するようにコマンドプロンプト自体を設定したいと思っています。これは、Linuxのコンソールによく似ています。
ダニエルの提案@続き、私はこれらをした:
- 私は、Windows 7上で働いていたので、そこには
.ghci
ファイルは(私はそれがUnixライクなOSのためだと思う)ではありませんので、私が作成しましたファイルghci.conf
をC:\Users\Apelles\AppData\Roaming\ghc
フォルダに、it is instructed hereとしてください。 - ダニエルの答えのスクリプトを
ghci.conf
に貼り付けてコピーします。 - その後、コンソールのようなウィンドウである
ghci.exe
を開始しました。私はそれが前に読み込むために通常使用したモジュールよりも少数のモジュールをロードしていることに気づいた。
あなたはそれがより多くのモジュールをロードします見ることができ、そして最後の行が言うように、
は、プロンプト文字列を解析できません:ここではスナップショットです。 Haskell構文を使用します。
この意味は?どの行が問題を引き起こしているか(次のスクリプトから)
私が前に言ったように、それはを意味し、モジュールのより少ない数を、ロードします。私はいくつかのランダムな名前にghci.conf
ファイルの名前を変更し、その後ghci.exe
を開始する場合も
let cur fill = do { cwd <- System.Directory.getCurrentDirectory; return (":set prompt \"" ++ cwd ++ fill ++ " \""); }
:def doprompt (\_ -> cur ">")
:def mycd (\dir -> System.Directory.setCurrentDirectory dir >> cur ">")
:doprompt
が、それはこれらのモジュールをロードしますghci.confの場合はghci.exe
が成功しますが、ある時点で失敗します。それを修正するには?
> 'プレリュードをお試しください! pwd'(またはWindowsのpwdに相当するもの)を指定します。 WinGHCiは普通のghciを実行していると思うので、うまくいくはずです。 –
@ダニエルフィッシャー:それは素晴らしい作品です。コマンドプロンプト自体を設定することは可能でしょうか? – Nawaz
はい、プロンプトに ':set prompt Whatever'(ghciコマンドの簡単なヘルプは':? ')と設定できます。しかしそれはセッションごとです。永続的なものにするには、あなたの '.ghci'ファイルで行います(私は彼らがWindows上で異なって呼び出されていると思いますが、何を覚えていないのでしょうか)。私はどのように現在のディレクトリにそれを設定するか分からない。 –