マニュアルページ用Emacsモード

マニュアルページ用Emacsモード

マニュアルページを翻訳していますが、Emacsを使用する際にいくつかの問題があります。

  1. 言語はどのように指定しますか? (人の場合、スウェーデン語のman -Lsv shutdown「sv」サブディレクトリ(ある場合)は次のとおりです。)

  2. Emacs manモードでは、以下を使用できます。窒素またはタイトルに従って前方または後方に移動します(roffでは次のようになります。).SH。ただし、ヘッダーに3つのスウェーデンの特殊文字(Å、ä、Ö)のうちの1つ(またはそれ以上)が含まれている場合、この方法は機能しません。私はそれらを脱出しても構いません(こうして\(:A)。 (ただし正しく表示されます。)

  3. プロジェクトで何が機能しているかを確認するには、M-x man RET ./ls.1絶対パスを使用します。これは、「実際の」マニュアルページ(/usr/share/manのマニュアルページ)を表示するのと同じマニュアルモードであるため、非常に良いです。文書を一部変更した場合、マンページをどのように更新しますか?revert-bufferバッファがファイルに関連付けられていないと言います。 (本当ではありませんが、わかります。)M-x load-file RETファイルの追跡が失われているようです。

ところで翻訳が面白いですね!

編集する:(最初のコメントを参照) テーブル

ベストアンサー1

roff ソースコードを編集するときにマニュアルページモードでマニュアルページを更新する方法:

;;;; MAN / man
(defvar *curr-man* "~/mansv/ls.1")

(defun edman ()
  "edit the current work-in-progress man page"
  (interactive)
  (find-file *curr-man*) )

(defun upman () ; edit: better version of this function below
  "update the current work-in-progress man page"
  (interactive)
  (buffer-menu)
  (revert-buffer)
  (with-temp-buffer
    (progn
      (insert-buffer-substring "*Buffer List*")
      (beginning-of-buffer)
        (let ((man-buffer (format "*Man %s*" *curr-man*)))
          (if (word-search-forward man-buffer (point-max) t) ; t = nil on fail
            (kill-buffer man-buffer) ))
      (man *curr-man*)
      (edman)
      (kill-buffer "*Buffer List*") )))

編集する

upmanこのバージョンがもう少し安定していることを願っています。新しいグローバル変数の導入を参照してください。

(defun upman ()
  "update the current work-in-progress man page"
  (interactive)
  (if (get-buffer *curr-man-file*) (save-buffer))
  (let ((man-buffer (format "*Man %s*" *curr-man*)))
    (if (get-buffer man-buffer) (kill-buffer man-buffer))
    (man *curr-man*)
    (edman) ))

おすすめ記事