次のようにIは、環境モジュール(http://modules.sourceforge.net/)を扱う小さなelispのコードを作っ成功したバッファに、cmdが、次のようにバッファがメッセージバッファの末尾に「プロセス・モジュールが終了」しました:削除する方法メイクプロセスからのメッセージを「処理を終了」またはelispのコードでプロセスを開始
(setenv "LOADEDMODULES" "gcc/6.2.1")
(setenv "CXX" "g++")
(setenv "COMPILER_TYPE" "gcc")
(setenv "COMPILER_OF_TYPE" "Gcc")
(setenv "FC" "gfortran")
(setenv "COMPILER" "gnu")
(setenv "LOADEDMODULES_modshare" "gcc/6.2.1:1")
(setenv "FORTRAN_TYPE" "gfortran")
Process Module finished
をために動作しません(EVAL-バッファ)、「プロセス・モジュールが終了しました」。
私は(EVAL-バッファ)文の前 (セット・バッファCMD-バッファ) する(beginning-of-buffer) (削除マッチングライン "プロセス")
を追加しましたが、失敗しました。
私の考えは です。1.(eval-region)をバッファの先頭からプロセス終了行の前の行まで使います。 または 2.プロセス終了行を削除して(eval-buffer)を使用します。
ご迷惑をおかけして申し訳ありません。
「プロセスフィルタ」を使用して、必要なものを出力したり抑制したりすることをお勧めします。https://www.gnu.org/software/emacs/manual/html_node/elisp/Filter-Functions.html – lawlist
@私がelispコーディングに慣れていないので、process-filterを使ってstdoutから不要なメッセージを取り除く方法をサンプルコードで教えてください。 – Seong
私の 'start-process'がプロセスバッファのために' nil'を持っている(バッファを作成しないようにする)例へのリンクです。私は 'process-filter'を使って私が望むものを送ります'* Messages * 'バッファに追加します。 'process-filter'にはPROCESSとSTRINGという2つの引数があります。私が望むものとしたくないものを決めるために、まず出力されたすべての文字列( ''(message "my-output:%s" string) ''を見て、 '' string-マッチするか 'string-equal'となります。 http://emacs.stackexchange.com/a/5844/2287また、 'start-process'バッファを検索して置き換えることもできます。 – lawlist