2016-06-23 4 views
0

エラーメッセージ(messagewarningstop)をテキストラップすると、単語やファイルパスが分割されないようにするにはどうすればよいですか?RStudioのラップエラーメッセージ

long_message <- paste("Gee I'm really sorry but I couldn't find the file at", 
         "/usr/yourname/doc/misc/foo/bar/baz.txt because the directory", 
         "/usr/yourname/doc/misc/foo/bar/ doesn't exist. Take a deep", 
         "breath, step away from the keyboard, do some relaxation", 
         "exercises, and try again." 

私はの線に沿って何か考えている:

  • メッセージは、少なくとも80文字の長さの場合の指数を見つけ、コンソールの幅(それは80文字だと言う)
  • を検出します空白文字
  • 上では \n
  • \nから再度カウントスタート、リピートでその空白を交換することなく80に最も近いです

関連質問:How does RStudio determine the console width, and why does it seem to be getting it consistently wrong?

この機能は、パッケージのためであるとして、理想的には、私は、依存関係を避けたいです。

message(paste(stringi::stri_wrap(long_message), collapse = "\n")) 
+0

Iの自己回答でこれを私が欲しいもののほとんどを解決するソリューションですが、誰かがファイルパスをカット&ペーストしたい場合に備えて、ファイルパスを行間で分割しないでください。言い換えれば、 '/'は単語の終わりの文字と見なすべきではありません。 – C8H10N4O2

答えて

1

または{ベース}機能とを::paste(..., collapse = "\n")でそれをラップすることによって、私たちが行うことができますのでstringiパッケージから

+0

興味深いことに、基本関数は '/'を空白文字として扱わず、ファイルパス全体をメッセージの同じ行に保持します。これは私が欲しいものです、ありがとう! – C8H10N4O2

1

stri_wrapはすでに、これを行い

stop(paste(strwrap(long_message), collapse = "\n"))