English 中文(简体)
不承认体格疗法
原标题:pcase not recognising string matches
  • 时间:2023-08-17 23:51:55
  •  标签:
  • string
  • emacs

Am attempting to insert either a Latex Command or a UTF-8 Symbol to a buffer, but the pcase is giving me "No Match" when selecting "bigodot".

grafm in expected to me modified by removing the UTF-8 Symbol, by taking the first word before the first space, and use just the string descriptor "bigodot" for use with the pcase clause.


(defun imprint (selector kmstr &optional grapheme)
  "Insert Latex Command or the equivalent UTF-8 grapheme."

  (if (or (not grapheme) (equal selector "Command"))
      (insert kmstr)
    (insert grapheme)))

;;-------------------------------------

(defun bigops (grafm seltr)
  "Binary Operations."

  (interactive
    (let ( (csel  ("Symbol" "Command"))
           (cseq  ("bigodot ⨀" "bigoplus ⨁︁" "bigotimes ⨂︁")) )

      (list
        (completing-read "Grapheme: " cseq nil t "bigcap ⋂")
        (completing-read "Selector: " csel nil t "Command")) ))

  (setq grafm (car (split-string grafm)))
  (message "Grafm: .%S." grafm)

  (pcase grafm
    ("bigodot" (imprint seltr "\bigodot" "⨀"))
    ("bigoplus︁" (imprint seltr "\bigoplus" "⨁︁"))
    ("bigotimes︁" (imprint seltr "\bigotimes" "⨂︁"))
    (_  (message "%s" "No Match")) ))
问题回答

在你身边的不同地方,存在着隐蔽的特性,即编号65025,作为<条码>pcase的匹配,造成意外的对应失败。

你们可以视而不见。

(defun my-display-hidden (&optional remove)
  "Show/hide the hidden  ︁  (0xfe01) characters."
  (interactive "P")
  (if remove (remove-overlays)
    (save-excursion
      (goto-char (point-min))
      (while (search-forward "︁" nil t) ; (0xfe01)
        (let ((ov (make-overlay (match-beginning 0) (match-end 0))))
          (overlay-put ov  display
                       (buttonize "(0xfe01)"
                                  (let ((pos (match-beginning 0)))
                                    (lambda (_) (describe-char pos)))))
          (overlay-put ov  face  font-lock-warning-face))))))




相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签