首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不移动游标的情况下测试语法条件?

如何在不移动游标的情况下测试语法条件?
EN

Stack Overflow用户
提问于 2013-12-07 17:50:43
回答 1查看 70关注 0票数 1

我一直无法想出一种方法来测试语法条件而不移动游标-例如,skip-syntax-forwardskip-chars-forward都移动游标以返回t或正值。如何在不移动光标的情况下返回tnil

代码语言:javascript
复制
(defun lawlist-kill-word ()
  "Mark word / symbol + whitespace to the right of the cursor, and kill same."
  (interactive)
  (let* (
    (symbol-regexp "\\s.\\|\\s_")
    (word-regexp "\\sw"))
    (modify-syntax-entry ?' "_") ;; apostrophe = symbol constituent
    (cond
      ((< 0 (skip-syntax-forward "_."))
        (let ((end (point)))
          (set-mark end)
          (while (looking-back symbol-regexp)
            (backward-char))
          (let ((beg (point)))
            (delete-region beg end)
            (setq beg (point))
            (cond
              ((skip-chars-forward " \t")
              (setq end (point))
                (set-mark end)
                (delete-region beg end))))))
      ((< 0 (skip-syntax-forward "w"))
        (let ((end (point)))
          (set-mark end)
          (while (looking-back word-regexp)
            (backward-char))
          (let ((beg (point)))
            (delete-region beg end)
            (setq beg (point))
            (cond
              ((skip-chars-forward " \t")
              (setq end (point))
                (set-mark end)
                (delete-region beg end))))))
      (t
        (let ((beg (point)))
          (set-mark beg)
          (skip-chars-forward " \t")
            (let ((end (point)))
              (delete-region beg end)))
          (deactivate-mark)))
    (modify-syntax-entry ?' "w") ))  ;; apostrophe = word constituent

编辑lawlist-kill-word是一项正在进行的工作--对该函数的任何更新都将发布到与该问题相关的线程中,即:Emacs: delete whitespaces or a word

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-07 21:01:20

正如@Tobias所说:在save-excursion中包装光标移动。将您想要的任何值(例如(point))保存在变量中,并根据需要返回它们。

例如,如果您想要前面的位置有四行,请执行如下操作:

代码语言:javascript
复制
(let ((posn  (save-excursion (forward-line 4) (point))))
  posn)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20444541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档