我已經開始自學Haskell了,爲此我已經爲Windows安裝了The Haskell Platform。截至目前,我正在使用WinGHCi
。我瞭解到它有用於更改目錄的命令:cd
。但問題是,我怎麼知道我目前在哪個目錄?不知道爲什麼我會想改變目錄。我搜查了很多,但找不到答案。如何在WinGHCi中查看當前工作目錄
請告訴我是否有辦法瞭解當前工作目錄。最好我想配置命令提示符來顯示當前目錄,就像Linux的控制檯一樣。
繼@丹尼爾的建議下,我做了這些:
- 由於我的工作在Windows 7上,沒有
.ghci
文件(我認爲這是類Unix操作系統),所以我創建了一個文件ghci.conf
在C:\Users\Apelles\AppData\Roaming\ghc
文件夾中,如it is instructed here。 - 將丹尼爾答案中的腳本複製粘貼到
ghci.conf
。 - 然後我開始
ghci.exe
這是一個類似控制檯的窗口。我注意到它裝載的模塊比之前通常使用的還要少。這裏是快照:
正如你可以看到它加載多個模塊,最後一行說,
無法解析提示字符串。使用Haskell語法。
這是什麼意思?哪一行導致問題(來自以下腳本)?
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
,它加載這些模塊:
正如我以前說過,它加載更少的模塊的數量,這意味着與ghci.conf,ghci.exe
做成功,但在某些時候失敗。如何解決這個問題?
嘗試'前奏>:! pwd'(或任何Windows相當於pwd的)。我認爲WinGHCi在底下運行一個普通的ghci,所以這應該工作。 –
@DanielFischer:這很好。是否可以配置命令提示符本身? – Nawaz
是的,你可以使用':set prompt Whatever'(在'ghci命令的簡短幫助中鍵入':?'''')來配置提示符。然而,這是每次會議。爲了使它成爲永久的,請在'.ghci'文件中進行(我認爲它們在Windows上的調用方式不同,不記得是什麼)。不過,我不確定如何將其設置爲當前目錄。 –