Unicode 如何删除emacs中的非ascii字符

Unicode 如何删除emacs中的非ascii字符,unicode,emacs,character,Unicode,Emacs,Character,我对elisp编程非常陌生,我正在尝试编写一个Emacs elisp函数来删除高亮显示区域中的所有非ASCII字符。我在这里找到了如何查找非ASCII字符的示例elisp函数:。我试图自己修改它,但无法使它工作。有人能告诉我如何修改以下elisp函数来删除GNU Emacs中突出显示区域中的所有非ASCII字符吗 (defun find-first-non-ascii-char () "Find the first non-ascii character from point onwards

我对elisp编程非常陌生,我正在尝试编写一个Emacs elisp函数来删除高亮显示区域中的所有非ASCII字符。我在这里找到了如何查找非ASCII字符的示例elisp函数:。我试图自己修改它,但无法使它工作。有人能告诉我如何修改以下elisp函数来删除GNU Emacs中突出显示区域中的所有非ASCII字符吗

(defun find-first-non-ascii-char ()
  "Find the first non-ascii character from point onwards."
  (interactive)
  (let (point)
    (save-excursion
      (setq point
            (catch 'non-ascii
              (while (not (eobp))
                (or (eq (char-charset (following-char))
                        'ascii)
                    (throw 'non-ascii (point)))
                (forward-char 1)))))
    (if point
        (goto-char point)
        (message "No non-ascii characters."))))

我想我通过修改这篇文章的答案找到了答案:

以下是我的想法:

(defun del-binary_characters (beg end)
  "Delete binary characters in a region"
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (goto-char (point-min))
      (while (re-search-forward "[^[:ascii:]]" nil t)
        (replace-match "")))))

这并不是您所要求的,但要以交互方式查找非ASCII字符,您可以执行以下操作:

M-x search-forward-regexp
[^[:ascii:]]