{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Emacs", 
  "description": "", 
  "home_page_url": "https://www.v2ex.com/go/emacs", 
  "feed_url": "https://www.v2ex.com/feed/emacs.json", 
  "icon": "https://cdn.v2ex.com/navatar/c52f/1bd6/254_large.png?m=1333644112", 
  "favicon": "https://cdn.v2ex.com/navatar/c52f/1bd6/254_normal.png?m=1333644112", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/yibie", 
        "name": "yibie", 
        "avatar": "https://cdn.v2ex.com/avatar/a5cd/d4aa/737_large.png?m=1739279632"
      }, 
      "url": "https://www.v2ex.com/t/1120182", 
      "title": "\u7ed9 org-zettel-ref-mode \u6dfb\u52a0 AI \u603b\u7ed3\u529f\u80fd", 
      "id": "https://www.v2ex.com/t/1120182", 
      "date_published": "2025-03-21T08:25:06+00:00", 
      "content_html": "<p>\u7ed9 org-zettel-ref-mode \u8fd9\u4e2a\u9605\u8bfb\u63d2\u4ef6\u6dfb\u52a0\u4e86 AI \u603b\u7ed3\u529f\u80fd\uff0c\u6548\u679c\u8ba9\u4eba\u6ee1\u610f\n[\u6280\u672f\u6808]\nEmacs + org-mode + org-zettel-ref-mode + gptel + ollama + gemma3:14b</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lcj2class", 
        "name": "lcj2class", 
        "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202"
      }, 
      "url": "https://www.v2ex.com/t/1092342", 
      "title": "Emacs 30 \u65b0\u7279\u6027\u9884\u89c8", 
      "id": "https://www.v2ex.com/t/1092342", 
      "date_published": "2024-11-25T03:28:27+00:00", 
      "content_html": "<blockquote>\n<p><a href=\"https://emacs.liujiacai.net/post/046-emacs-30/\" rel=\"nofollow\">https://emacs.liujiacai.net/post/046-emacs-30/</a></p>\n</blockquote>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lcj2class", 
        "name": "lcj2class", 
        "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202"
      }, 
      "url": "https://www.v2ex.com/t/953181", 
      "title": "\u300eMade with Emacs\u300f \u535a\u5ba2\u6536\u96c6", 
      "id": "https://www.v2ex.com/t/953181", 
      "date_published": "2023-07-01T00:25:50+00:00", 
      "content_html": "<p>\u7f18\u8d77\uff1a <a href=\"https://emacstalk.codeberg.page/post/035-made-with-emacs/\" rel=\"nofollow\">https://emacstalk.codeberg.page/post/035-made-with-emacs/</a></p>\n<p>\u6240\u4ee5\u60f3\u7740\u4e0d\u5982\u6536\u96c6\u4e00\u4e0b Made with Emacs \u7684\u535a\u5ba2\u5427\uff0c\u5177\u4f53\u89c1\uff1a</p>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/kir1oEpRgtwHOB4mS-DgWA\" rel=\"nofollow\">https://mp.weixin.qq.com/s/kir1oEpRgtwHOB4mS-DgWA</a></li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sinboy1988", 
        "name": "sinboy1988", 
        "avatar": "https://cdn.v2ex.com/gravatar/ecef88f6f0d443ccf528ed553d18bba7?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/912024", 
      "title": "\u65b0\u624b\u5411\u95ee\u4e0b\uff0c\u8c03\u8bd5\u7a0b\u5e8f", 
      "id": "https://www.v2ex.com/t/912024", 
      "date_published": "2023-01-31T11:03:48+00:00", 
      "content_html": "<p>\u6211\u7528\u7684 doom emacs \uff0c\u4f7f\u7528 lsp-java\n\u7136\u540e\u5728~/.doom.d/config.el \u4e2d\u52a0\u5165\u4e86</p>\n<pre><code class=\"language-elisp\">(setq lsp-java-9-args '(\n\"-XX:+UseParallelGC\"\n\"-XX:GCTimeRatio=4\"\n\"-XX:AdaptiveSizePolicyWeight=90\"\n\"-Dsun.zip.disableMemoryMapping=true\"\n\"-Denv=test\n\"-Xmx8G\"\n\"-Xms1G\"\n\"-javaagent:~/.m2/m2repo/org/projectlombok/lombok/1.18.12/lombok-1.18.12.jar\"))\n</code></pre>\n<p>M-x dap-debug-edit-template \u6dfb\u52a0\u6a21\u677f</p>\n<pre><code class=\"language-lisp\">(dap-register-debug-template\n  \"Java Run Configuration\"\n  (list :name \"Debug (Launch) - Current File\"\n        :type \"java\"\n        :request \"launch\"\n        :args \"hello\"\n        :vmArgs \"-Denv=test\"\n        :jvmArgs \"-Denv=test\"\n        :cwd nil\n        :stopOnEntry :json-false\n        :host \"localhost\"\n        :request \"launch\"\n        :modulePaths []\n        :classPaths nil\n        :projectName \"MyApp\"\n        :MainClass Hello))\n</code></pre>\n<p>Hello.java</p>\n<pre><code class=\"language-java\">\nSystem.getProperty(\"env\")\n</code></pre>\n<p>M-x dap-debug \uff0c\u4e0d\u80fd\u83b7\u53d6\u503c\u5230 dev \u7684\u503c\n\u6211\u60f3\u8c61\u95ee\u95ee\u662f\u5c11\u4e86\u4ec0\u4e48\u6b65\u9aa4\u5417\uff0c\u8fd8\u662f\u7528\u7684\u65b9\u6cd5\u6709\u9519\u8bef\uff1f\u521a\u63a5\u89e6\u65b0\u624b\u6c42\u6559</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gridsah", 
        "name": "gridsah", 
        "avatar": "https://cdn.v2ex.com/gravatar/3d139f86f81f6931ce76f9953045e39d?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/850135", 
      "date_modified": "2022-04-29T14:47:39+00:00", 
      "content_html": "<p>\u4e00\u4e2a\u6709\u70b9\u5947\u602a\u7684\u95ee\u9898\u3002\u6211\u5728 emacs \u91cc\u7528 M-x lsz/org-export-publish Ret \u6267\u884c\u5bfc\u51fa\u7684\u65f6\u5019\uff0c\u4ee3\u7801\u5757\u662f\u53ef\u4ee5\u6b63\u5e38\u9ad8\u4eae\u7684\u3002\u4f46\u6211\u4e00\u65e6\u4f7f\u7528 emacs --script ~/.emacs.d/lisp/script-org-export-publish.el \u6765\u5bfc\u51fa\uff0c\u4ee3\u7801\u5757\u7684\u9ad8\u4eae\u5c31\u6ca1\u4e86</p>\n<pre><code class=\"language-emacs-lisp\">(use-package htmlize)\n\n(use-package org\n  :hook\n  ('before-save . 'lsz/org-mode-hook-func-before-save)\n  :config\n  (setq org-startup-truncated nil)\n  (setq org-support-shift-select t)\n\n  (setq org-use-sub-superscripts '{})\n\n  (setq org-use-fast-todo-selection t)\n  (setq org-todo-keywords '((sequence \"TODO(t)\" \"DOING(i)\"\n                                      \"|\"\n                                      \"DONE(d)\" \"ABORT(a)\")))\n  )\n\n(use-package ox-html\n  :ensure org\n  :config\n  (setq org-html-htmlize-output-type 'inline-css)\n  (setq org-src-fontify-natively t)\n  )\n\n(defun lsz/org-export-publish()\n  \"Publish org site by publish script.\"\n  (interactive)\n  (load \"~/.emacs.d/lisp/script-org-export-publish.el\"))\n\n(use-package ox-publish\n  :ensure org\n  :config\n\n  ;; (setq org-html-postamble t)\n  ;; (setq org-html-postamble-format '((\"en\" \"\")))\n\n  (setq org-export-with-sub-superscripts '{})\n\n  (setq\n   org-publish-project-alist\n   (let* ((lsz/site-path \"~/Documents/LSZOrgArticle/\")\n          (lsz/site-pub-path \"~/Documents/LSZOrgArticlePublish/\")\n          (get-content (lambda (x)\n                         (with-temp-buffer\n                           (insert-file-contents (concat lsz/site-path x))\n                           (buffer-string))))\n          (lsz/site-postamble (funcall get-content \"template/postamble.html\"))\n          (lsz/site-preamble (funcall get-content \"template/preamble.html\"))\n          (lsz/site-head (funcall get-content \"template/head.html\")))\n     `(\n       (\"blog\"\n        :base-directory ,(concat lsz/site-path \"article/blog/\")\n        :base-extension \"org\"\n        :publishing-directory ,(concat lsz/site-pub-path \"article/blog/\")\n        :publishing-function org-html-publish-to-html\n        :recursive t\n        :headline-levels 4\n\n        :auto-sitemap t\n        :sitemap-filename \"sitemap-index.org\"\n        :sitemap-title \"blog\"\n\n        :html-doctype \"html5\"\n        :html-head ,lsz/site-head\n        :html-preamble ,lsz/site-preamble\n        :html-postamble ,lsz/site-postamble\n        :htmlized-source t\n\n        :with-toc t\n        )\n       (\"reading\"\n        :base-directory ,(concat lsz/site-path \"article/reading/\")\n        :base-extension \"org\"\n        :publishing-directory ,(concat lsz/site-pub-path \"article/reading/\")\n        :publishing-function org-html-publish-to-html\n        :recursive t\n        :headline-levels 4\n\n        :auto-sitemap t\n        :sitemap-filename \"sitemap-index.org\"\n        :sitemap-title \"reading\"\n\n        :html-doctype \"html5\"\n        :html-head ,lsz/site-head\n        :html-preamble ,lsz/site-preamble\n        :html-postamble ,lsz/site-postamble\n        :htmlized-source t\n\n        :with-toc t\n        )\n       (\"wiki\"\n        :base-directory ,(concat lsz/site-path \"article/wiki/\")\n        :base-extension \"org\"\n        :publishing-directory ,(concat lsz/site-pub-path \"article/wiki/\")\n        ;; :publishing-function org-html-publish-to-html\n        :recursive t\n        :headline-levels 4\n\n        :auto-sitemap t\n        :sitemap-filename \"sitemap-index.org\"\n        :sitemap-title \"wiki\"\n\n        ;; :html-doctype \"html5\"\n        :html-head ,lsz/site-head\n        :html-preamble ,lsz/site-preamble\n        :html-postamble ,lsz/site-postamble\n        ;; :htmlized-source t\n\n        :with-toc t\n        )\n       (\"site\"\n        :base-directory ,(concat lsz/site-path \"article/site/\")\n        :base-extension \"org\"\n        :publishing-directory ,(concat lsz/site-pub-path \"article/site/\")\n        :publishing-function org-html-publish-to-html\n        :recursive t\n        :headline-levels 4\n\n        :html-doctype \"html5\"\n        :html-head ,lsz/site-head\n        :html-preamble ,lsz/site-preamble\n        :html-postamble ,lsz/site-postamble\n        :htmlized-source t\n\n        :with-toc nil\n        )\n       (\"static\"\n        :base-directory ,(concat lsz/site-path \"article_static/\")\n        :base-extension \"css\\\\|js\\\\|png\\\\|jpg\\\\|gif\\\\|zip\\\\|7z\\\\|rar\\\\|pdf\"\n        :publishing-directory ,(concat lsz/site-pub-path \"/article_static\")\n        :publishing-function org-publish-attachment\n        :recursive t\n        )\n       (\"all\" :components (\"blog\" \"reading\" \"wiki\" \"site\" \"static\"))\n       ))))\n</code></pre>\n<p>\u8fd9\u662f ~/.emacs.d/lisp/script-org-export-publish.el</p>\n<pre><code class=\"language-emacs-lisp\">;;; need environment\n(package-initialize)\n(load \"~/.emacs.d/init.el\")\n\n;;; publish file\n(org-publish-all)\n</code></pre>\n<p>\u8fd9\u662f\u6b63\u5e38\u6e32\u67d3\u51fa\u6765\u7684\uff0c\u6709\u4ee3\u7801\u9ad8\u4eae\u7684 html</p>\n<pre><code class=\"language-html\">&lt;pre class=\"src src-python\"&gt;&lt;span style=\"color: #a020f0;\"&gt;import&lt;/span&gt; csv\n\n&lt;span style=\"color: #a020f0;\"&gt;with&lt;/span&gt; &lt;span style=\"color: #483d8b;\"&gt;open&lt;/span&gt;(&lt;span style=\"color: #8b2252;\"&gt;'stock.csv'&lt;/span&gt;,&lt;span style=\"color: #8b2252;\"&gt;'r'&lt;/span&gt;) &lt;span style=\"color: #a020f0;\"&gt;as&lt;/span&gt; fp:\n    &lt;span style=\"color: #a0522d;\"&gt;reader&lt;/span&gt; = csv.reader(fp)\n    &lt;span style=\"color: #a0522d;\"&gt;titles&lt;/span&gt; = &lt;span style=\"color: #483d8b;\"&gt;next&lt;/span&gt;(reader)\n    &lt;span style=\"color: #a020f0;\"&gt;for&lt;/span&gt; x &lt;span style=\"color: #a020f0;\"&gt;in&lt;/span&gt; reader:\n        &lt;span style=\"color: #a020f0;\"&gt;print&lt;/span&gt;(x)\n&lt;/pre&gt;\n</code></pre>\n<p>\u8fd9\u662f emacs --script \u6e32\u67d3\u51fa\u6765\u7684 html:</p>\n<pre><code class=\"language-html\">&lt;pre class=\"src src-python\"&gt;&lt;span style=\"font-weight: bold;\"&gt;import&lt;/span&gt; csv\n\n&lt;span style=\"font-weight: bold;\"&gt;with&lt;/span&gt; &lt;span style=\"font-weight: bold;\"&gt;open&lt;/span&gt;(&lt;span style=\"font-style: italic;\"&gt;'stock.csv'&lt;/span&gt;,&lt;span style=\"font-style: italic;\"&gt;'r'&lt;/span&gt;) &lt;span style=\"font-weight: bold;\"&gt;as&lt;/span&gt; fp:\n    &lt;span style=\"font-weight: bold; font-style: italic;\"&gt;reader&lt;/span&gt; = csv.reader(fp)\n    &lt;span style=\"font-weight: bold; font-style: italic;\"&gt;titles&lt;/span&gt; = &lt;span style=\"font-weight: bold;\"&gt;next&lt;/span&gt;(reader)\n    &lt;span style=\"font-weight: bold;\"&gt;for&lt;/span&gt; x &lt;span style=\"font-weight: bold;\"&gt;in&lt;/span&gt; reader:\n        &lt;span style=\"font-weight: bold;\"&gt;print&lt;/span&gt;(x)\n&lt;/pre&gt;\n</code></pre>\n<p>\u6548\u679c\u56fe\u5728 <a href=\"https://emacs-china.org/t/org-emacs-script-org-publish-all/20782\" rel=\"nofollow\">https://emacs-china.org/t/org-emacs-script-org-publish-all/20782</a></p>\n<p>\u8001\u54e5\u4eec\u554a\uff0c\u8fd9\u662f\u548b\u56de\u4e8b\uff0c\u8be5\u4ece\u54ea\u4e0b\u624b\u6392\u67e5\u95ee\u9898\uff0c\u6211 google \u4e86\u51e0\u4e2a\u5c0f\u65f6\u5b8c\u5168\u6ca1\u6709\u5934\u7eea\u3002</p>\n", 
      "date_published": "2022-04-29T14:47:09+00:00", 
      "title": "\u6c42\u52a9\uff0c org \u6587\u4ef6\u4f7f\u7528 emacs \u2013script \u6267\u884c org-publish-all \u7684\u65f6\u5019\u4ee3\u7801\u5757\u6ca1\u6709\u9ad8\u4eae\uff1f", 
      "id": "https://www.v2ex.com/t/850135"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/pythonee", 
        "name": "pythonee", 
        "avatar": "https://cdn.v2ex.com/avatar/4b6e/52b7/29622_large.png?m=1642211709"
      }, 
      "url": "https://www.v2ex.com/t/834224", 
      "title": "Emacs \u5728 Windows \u4e0b\u4f53\u9a8c\u5982\u4f55", 
      "id": "https://www.v2ex.com/t/834224", 
      "date_published": "2022-02-16T06:08:13+00:00", 
      "content_html": "<p>\u516c\u53f8\u7535\u8111\u9884\u88c5\u4e86 Windows \uff0c\u4e14\u4e0d\u80fd\u6539\u88c5 Linux \u548c\u865a\u62df\u673a\uff0c\u5c31\u60f3\u95ee\u95ee Windows \u80fd\u8fbe\u5230 Linux \u4e0b\u7684\u4f53\u9a8c\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lcj2class", 
        "name": "lcj2class", 
        "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202"
      }, 
      "url": "https://www.v2ex.com/t/819767", 
      "title": "GPG in Emacs", 
      "id": "https://www.v2ex.com/t/819767", 
      "date_published": "2021-12-03T04:59:58+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://emacstalk.github.io/post/011/\" rel=\"nofollow noopener\">https://emacstalk.github.io/post/011/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lcj2class", 
        "name": "lcj2class", 
        "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202"
      }, 
      "url": "https://www.v2ex.com/t/813199", 
      "title": "Emacs 28 \u65b0\u7279\u6027\u4ecb\u7ecd", 
      "id": "https://www.v2ex.com/t/813199", 
      "date_published": "2021-11-05T01:46:10+00:00", 
      "content_html": "<p><a href=\"https://emacstalk.github.io/post/009/\" rel=\"nofollow\">https://emacstalk.github.io/post/009/</a> </p>\n<p>\u7f51\u7edc\u4e0d\u597d\u7684\u53ef\u4ee5\u8bbf\u95ee\u4e0b\u9762\u94fe\u63a5\uff1a</p>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/QXr8ECwmLbAM1TL6371TVQ\" rel=\"nofollow\">https://mp.weixin.qq.com/s/QXr8ECwmLbAM1TL6371TVQ</a></li>\n<li><a href=\"https://zhuanlan.zhihu.com/p/429645239\" rel=\"nofollow\">https://zhuanlan.zhihu.com/p/429645239</a></li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/darksword21", 
        "name": "darksword21", 
        "avatar": "https://cdn.v2ex.com/avatar/eb20/d71c/380437_large.png?m=1608826215"
      }, 
      "url": "https://www.v2ex.com/t/795959", 
      "date_modified": "2021-08-15T23:54:08+00:00", 
      "content_html": "<p><a href=\"https://404cn.github.io/post/setup-golang-develop-env-on-emacs/\" rel=\"nofollow\">\u539f\u6587</a></p>\n<p>ps:\n\u8bf7\u5927\u5bb6\u4e0d\u8981\u5f15\u53d1\u7f16\u8f91\u5668\u7684\u6218\u4e89\uff0c\u6211\u89c9\u5f97\u53ea\u8981\u7528\u7684\u987a\u624b\uff0c\u53ef\u4ee5\u5b8c\u6210\u5de5\u4f5c\uff0c\u5927\u5bb6\u53ef\u4ee5\u81ea\u5df1\u60f3\u7528\u4ec0\u4e48\u5c31\u7528\u4ec0\u4e48\uff0c\u6ca1\u6709\u7edd\u5bf9\u7684\u597d\u574f\u4e4b\u5206\u3002\n\u7b2c\u4e00\u6b21\u5c1d\u8bd5\u5199\u4e1c\u897f\uff0c\u5982\u679c\u6709\u54ea\u91cc\u6709\u9519\u8bef\u6b22\u8fce\u6307\u51fa\uff0c\u5305\u62ec\u75c5\u53e5\uff08\u4e0d\u8981\u5632\u8bbd\u6211\uff0crua \uff09</p>\n<h1>Table of Contents</h1>\n<ol>\n<li><a href=\"#org655805f\" rel=\"nofollow\">\u5f00\u542f Emacs \u81ea\u5e26\u7684\u62ec\u53f7\u5339\u914d</a></li>\n<li><a href=\"#org8171ce0\" rel=\"nofollow\">\u5b89\u88c5 straight.el</a></li>\n<li><a href=\"#org2eac2d1\" rel=\"nofollow\">\u8bbe\u7f6e major-mode</a></li>\n<li><a href=\"#orgb7351e3\" rel=\"nofollow\">\u4ee3\u7801\u8865\u5168\u3001\u8df3\u8f6c</a></li>\n<li><a href=\"#org777a08b\" rel=\"nofollow\">\u603b\u7ed3</a></li>\n</ol>\n<p>\u4f7f\u7528 Emacs \u5f00\u53d1 Golang \u4e00\u6bb5\u65f6\u95f4\u65f6\u95f4\u4e86\uff0c\u4eca\u5929\u5c06\u76f8\u5173\u914d\u7f6e\u548c\u8e29\u8fc7\u7684\u5751\u603b\u7ed3\u5206\u4eab\u51fa\u6765\uff0c\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u7684\u5e76\u4e0d\u662f\u4ece\u96f6\u5f00\u59cb\u7684\u914d\u7f6e\uff0c\u4e3b\u8981\u90fd\u662f\u4e0e Golang \u5f00\u53d1\u529f\u80fd\u76f8\u5173\u7684\u914d\u7f6e\uff0c\u9ed8\u8ba4\u8ba4\u4e3a\u4f60\u5df2\u7ecf\u4e86\u89e3\u5982\u4f55\u5728 Emacs \u67e5\u770b\u4e00\u4e9b\u5185\u7f6e\u7684\u51fd\u6570\u6587\u6863\uff0c\u7ed1\u5b9a\u5feb\u6377\u952e\u7b49\u57fa\u672c\u64cd\u4f5c\uff0c\u4e00\u4e9b\u57fa\u7840\u7684 Emacs \u529f\u80fd\u53ef\u4ee5\u53c2\u8003\u68a6\u68a6\u7684 <a href=\"https://github.com/condy0919/emacs-newbie/blob/master/introduction-to-builtin-modes.md\" rel=\"nofollow\">Emacs builtin modes \u529f\u80fd\u4ecb\u7ecd</a>\u3002</p>\n<p>\u5728\u4f7f\u7528\u4efb\u4f55 \u7f16\u8f91\u5668 /IDE \u5f00\u53d1\u65f6\uff0c\u6700\u6838\u5fc3\u7684\u9700\u6c42\u65e0\u975e\u4ee5\u4e0b\u51e0\u70b9\uff1a</p>\n<ul>\n<li>\u62ec\u53f7\u7684\u81ea\u52a8\u5339\u914d</li>\n<li>\u4ee3\u7801\u7684\u81ea\u52a8\u8865\u5168</li>\n<li>\u67e5\u627e\u5b9a\u4e49\u3001\u5f15\u7528</li>\n<li>\u9759\u6001\u68c0\u67e5</li>\n<li>\u5728\u9879\u76ee\u4e2d\u6a21\u7cca\u67e5\u627e\uff08\u6587\u4ef6 /\u5b57\u7b26\u4e32\uff09</li>\n</ul>\n<p><a></a></p>\n<h1>\u5f00\u542f Emacs \u81ea\u5e26\u7684\u62ec\u53f7\u5339\u914d</h1>\n<p>Emacs \u81ea\u5e26\u7684 <code>electric-pair-mode</code> \u5df2\u7ecf\u8db3\u591f\u597d\u7528\uff0c\u53ea\u4e0d\u8fc7\u9ed8\u8ba4\u6ca1\u6709\u5f00\u542f\u3002</p>\n<pre><code>(setq electric-pair-inhibit-predicate 'electric-pair-conservative-inhibit)\n(add-hook 'prog-mode-hook #'electric-pair-mode)\n</code></pre>\n<p><a></a></p>\n<h1>\u5b89\u88c5 straight.el</h1>\n<p>\u5728\u8fdb\u884c\u4e0b\u4e00\u6b65\u914d\u7f6e\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u5148\u5b89\u88c5 <a href=\"https://github.com/raxod502/straight.el\" rel=\"nofollow\">straight.el</a> \uff0c\u56e0\u4e3a\u6211\u4eec\u8981\u7528\u5b83\u6765\u5b89\u88c5\u5176\u4ed6\u7684\u7b2c\u4e09\u65b9\u5305\u3002</p>\n<pre><code>(setq straight-check-for-modifications '(check-on-save find-when-checking))\n(setq straight-vc-git-default-clone-depth 1)\n\n(setq straight-disable-native-compile\n      (when (fboundp 'native-comp-available-p)\n    (not (native-comp-available-p))))\n\n(defvar bootstrap-version)\n(let ((bootstrap-file\n       (expand-file-name \"straight/repos/straight.el/bootstrap.el\" user-emacs-directory))\n      (bootstrap-version 5))\n  (unless (file-exists-p bootstrap-file)\n    (with-current-buffer\n        (url-retrieve-synchronously\n         \"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el\"\n         'silent 'inhibit-cookies)\n      (goto-char (point-max))\n      (eval-print-last-sexp)))\n  (load bootstrap-file nil 'nomessage))\n</code></pre>\n<p>straight.el \u5728\u5b89\u88c5\u5176\u4ed6\u5305\u65f6\u9700\u8981\u8bbf\u95ee github\uff0c\u5982\u679c\u4f60\u7684\u7f51\u7edc\u4e0d\u591f <code>\u7eff\u8272</code> \u54b3\u54b3\u2026</p>\n<p>\u53ef\u4ee5\u5c06\u5b89\u88c5\u65f6\u7684 <code><a href=\"http://github.com\" rel=\"nofollow\">github.com</a></code> \u66ff\u6362\u4e3a <code><a href=\"http://github.com.cnpmjs.org\" rel=\"nofollow\">github.com.cnpmjs.org</a></code> \u3002</p>\n<pre><code>(defun +set-github-mirror (oldfunc &amp;rest args)\n  (let ((url (apply oldfunc args)))\n    (replace-regexp-in-string (rx (group \"github.com\"))\n                              \"github.com.cnpmjs.org\" url nil nil 1)))\n(advice-add 'straight-vc-git--encode-url :around #'+set-github-mirror)\n</code></pre>\n<p><a></a></p>\n<h1>\u8bbe\u7f6e major-mode</h1>\n<p>\u5b89\u88c5 <a href=\"https://github.com/dominikh/go-mode.el\" rel=\"nofollow\">go-mode.el</a> \uff0c\u5176\u4e3a\u6211\u4eec\u5728\u8fdb\u884c Golang \u5f00\u53d1\u65f6\u63d0\u4f9b\u4e86\u76f8\u5f53\u591a\u7684\u5e38\u7528\u529f\u80fd\u3002</p>\n<pre><code>(straight-use-package 'go-mode)\n</code></pre>\n<p>\u8bbe\u7f6e\u7f29\u8fdb\u3002</p>\n<pre><code>(setq-default tab-width 4\n              indent-tabs-mode nil)\n</code></pre>\n<p>\u4f7f\u7528 <code>goimports</code> \u4ee3\u66ff <code>gofmt</code> \u5728\u6587\u4ef6\u4fdd\u5b58\u540e\u81ea\u52a8\u683c\u5f0f\u5316\u6211\u4eec\u7684\u4ee3\u7801</p>\n<pre><code>(setq gofmt-command \"goimports\")\n(add-hook 'before-save-hook #'gofmt-before-save)\n</code></pre>\n<p>\u5982\u679c\u4f60\u4f7f\u7528\u7684\u662f MacOS \u7cfb\u7edf\uff0c\u90a3\u4e48\u9700\u8981\u4f7f\u7528 <a href=\"https://github.com/purcell/exec-path-from-shell\" rel=\"nofollow\">exec-path-from-shell</a> \u8ba9 Emacs \u8bfb\u53d6\u7cfb\u7edf\u7684\u73af\u5883\u53d8\u91cf\uff0c\u4e0d\u7136 Emacs \u53ef\u80fd\u627e\u4e0d\u5230\u4f60\u5b89\u88c5\u7684 go</p>\n<pre><code>(when (eq system-type 'darwin)\n  (straight-use-package 'exec-path-from-shell)\n  (setq exec-path-from-shell-arguments '(\"-l\"))\n  (add-hook 'after-init-hook #'exec-path-from-shell-initialize)\n  (with-eval-after-load \"go-mode\"\n    (with-eval-after-load \"exec-path-from-shell\"\n      (exec-path-from-shell-copy-envs '(\"GOPATH\" \"GO111MODULE\" \"GOPROXY\")))))\n</code></pre>\n<p>go-mode \u5728\u683c\u5f0f\u5316\u4ee3\u7801\u65f6\u5982\u679c\u53d1\u73b0\u9519\u8bef\u4f1a\u5f39\u51fa\u4e00\u4e2a buffer\uff0c\u8fd9\u4f1a\u6253\u4e71\u6211\u4eec\u7684\u7a97\u53e3\u5e03\u5c40\uff0c\u5176\u5b9e\u6211\u4eec\u53ea\u9700\u8981\u7b80\u5355\u7684\u8bbe\u7f6e\u4e0b\u81ea\u5e26\u7684 <code>flymake-mode</code> \u5c31\u53ef\u4ee5\u65b9\u4fbf\u7684\u5728\u9519\u8bef\u4e4b\u95f4\u8df3\u8f6c\u800c\u4e0d\u662f\u901a\u8fc7\u4e00\u4e2a\u5355\u72ec\u7684 buffer \u67e5\u770b\u3002</p>\n<pre><code>(add-hook 'prog-mode-hook #'flymake-mode)\n(with-eval-after-load \"flymake\"\n  (define-key flymake-mode-map (kbd \"C-c C-b\") 'flymake-show-diagnostics-buffer)\n  (define-key flymake-mode-map (kbd \"M-n\") 'flymake-goto-next-error)\n  (define-key flymake-mode-map (kbd \"M-p\") 'flymake-goto-prev-error))\n</code></pre>\n<p>\u8fd9\u6837\u5c31\u53ef\u4ee5\u4f7f\u7528 <code>M-n</code> \uff0c <code>M-p</code> \u5728\u9519\u8bef\u4e4b\u95f4\u79fb\u52a8\uff0c\u7136\u540e\u628a go-mode \u81ea\u52a8\u5f39\u51fa\u7684\u8fd9\u4e2a buffer \u5173\u6389\u3002</p>\n<pre><code>(setq gofmt-show-errors nil)\n</code></pre>\n<p><a></a></p>\n<h1>\u4ee3\u7801\u8865\u5168\u3001\u8df3\u8f6c</h1>\n<p>\u5b89\u88c5 <a href=\"http://company-mode.github.io/\" rel=\"nofollow\">company-mode</a> \uff0c\u5728\u8865\u5168\u65f6\u53ef\u4ee5\u4f7f\u7528 <code>C-p</code> <code>C-n</code> \u6216\u8005 <code>TAB</code> \u8fdb\u884c\u9009\u62e9\uff0c\u56de\u8f66\u5b8c\u6210\u8865\u5168\u3002</p>\n<pre><code>(straight-use-package 'company)\n(add-hook 'prog-mode-hook #'company-mode)\n(setq company-tooltip-limit 10\n      company-tooltip-align-annotations t\n      company-tooltip-width-grow-only t\n      company-abort-manual-when-too-short t\n      company-require-match nil\n      company-backends '(company-capf)\n      company-tooltip-margin 0)\n(with-eval-after-load \"company\"\n  (define-key company-active-map [tab] 'company-complete-common-or-cycle)\n  (define-key company-active-map (kbd \"TAB\") 'company-complete-common-or-cycle)\n  (define-key company-active-map (kbd \"C-p\") #'company-select-previous)\n  (define-key company-active-map (kbd \"C-n\") #'company-select-next))\n</code></pre>\n<p>\u5b89\u88c5 <a href=\"https://github.com/joaotavora/eglot\" rel=\"nofollow\">eglot</a> \uff0c\u4e00\u4e2a Emacs \u4e2d\u8f7b\u91cf\u7ea7\u7684 LSP \u5ba2\u6237\u7aef\uff0c\u5728 go-mode \u4e2d\u542f\u7528\u3002</p>\n<pre><code>(straight-use-package 'eglot)\n(add-hook 'go-mode-hook #'eglot-ensure)\n(setq eglot-ignored-server-capabilites '(:documentHighlightProvider)\n      read-process-output-max (* 1024 1024))\n</code></pre>\n<p>eglot \u4f7f\u7528 Emacs \u5185\u7f6e\u7684 project.el \u7ba1\u7406\u9879\u76ee\uff0c\u4ee5 .git \u76ee\u5f55\u4f5c\u4e3a\u9879\u76ee\u7684\u6839\u76ee\u5f55\uff0c\u5982\u679c\u4f60\u7684\u9879\u76ee\u5305\u542b\u4e00\u4e9b\u5b50\u9879\u76ee\uff0c\u4f8b\u5982\uff1a</p>\n<pre><code>\u251c\u2500\u2500 .git\n\u251c\u2500\u2500 project1\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 go.mod\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 main.go\n\u251c\u2500\u2500 project2\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 go.mod\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 main.go\n\u2514\u2500\u2500 project3\n    \u251c\u2500\u2500 go.mod\n    \u2514\u2500\u2500 main.go\n</code></pre>\n<p>\u5982\u679c\u4f60\u4e0d\u60f3\u8ba9 project1 \u4e2d\u7684\u4ee3\u7801\u51fa\u73b0\u5728 project2 \u7684\u8865\u5168\u4e2d\uff0c\u6216\u8005\u5728 project2 \u4e2d\u67e5\u627e\u5b9a\u4e49\u65f6\u4e0d\u60f3\u8981 project1 \u4e2d\u7684\u5b9a\u4e49\u51fa\u73b0\u5728\u4f60\u7684\u9009\u62e9\u5217\u8868\u4e2d\u65f6\uff0c\u5219\u63a8\u8350\u4f7f\u7528 <code>go.mod</code> \u6240\u5728\u7684\u76ee\u5f55\u4e3a\u9879\u76ee\u7684\u6839\u76ee\u5f55\uff0c\u89e3\u51b3\u4e0d\u540c\u9879\u76ee\u95f4\u7684\u4ee3\u7801\u8865\u5168\u4e0e\u8df3\u8f6c\u5f71\u54cd\u3002</p>\n<pre><code>(with-eval-after-load \"go-mode\"\n  (with-eval-after-load \"project\"\n    (defun project-find-go-module (dir)\n      (when-let ((root (locate-dominating-file dir \"go.mod\")))\n        (cons 'go-module root)))\n    (cl-defmethod project-root ((project (head go-module)))\n      (cdr project))\n    (add-hook 'project-find-functions #'project-find-go-module)))\n</code></pre>\n<p>eglot \u9ed8\u8ba4\u4f1a\u4f7f\u7528 eldoc \u663e\u793a\u51fd\u6570\u7b49\u6587\u6863\uff0c\u4f46\u662f\u5f88\u591a\u65f6\u5019\u6211\u4eec\u4e0d\u662f\u60f3\u7acb\u5373\u67e5\u770b\uff0c\u4e3a\u4e86\u9632\u6b62\u6587\u6863\u6270\u4e71\u89c6\u7ebf\uff0c\u7ed9 eldoc \u8bbe\u7f6e\u4e2a delay \u65f6\u95f4\u3002</p>\n<pre><code>(setq eldoc-idle-dealy 2)\n</code></pre>\n<p>\u5982\u679c\u4f60\u60f3\u5728\u8865\u5168\u51fd\u6570\u65f6\u5e26\u6709\u5360\u4f4d\u7b26\uff0c\u53ef\u4ee5\u5bf9\u9879\u76ee\u8fdb\u884c\u5355\u72ec\u7684\u914d\u7f6e\uff0c\u53ea\u9700\u8981\u5728\u9879\u76ee\u6839\u76ee\u5f55\u7684 <code>.dir-locals.el</code> \u4e2d\u6dfb\u52a0\u5982\u4e0b\u4ee3\u7801\uff0ceglot \u5c31\u4f1a\u5728\u521d\u59cb\u5316 gopls \u4e4b\u540e\u4fee\u6539 gopls \u7684\u914d\u7f6e\uff0c\u5f53\u7136\u8fd9\u4e2a\u529f\u80fd\u4f9d\u8d56 <a href=\"https://github.com/joaotavora/yasnippet\" rel=\"nofollow\">yasnippet</a> \uff0c\u6240\u4ee5\u6211\u4eec\u4e5f\u9700\u8981\u5b89\u88c5\u5b83\u3002</p>\n<pre><code>(straight-use-package 'yasnippet)\n(add-hook 'prog-mode-hook #'yas-minor-mode)\n</code></pre>\n<p>\u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e2d\u521b\u5efa <code>.dir-locals.el</code> \u3002</p>\n<pre><code>((go-mode\n  . ((eglot-workspace-configuration\n      . ((:gopls . (:usePlaceholders t)))))))\n</code></pre>\n<p>\u5f53\u7136\u4e5f\u53ef\u4ee5\u5728\u4f60\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u9ed8\u8ba4\u5f00\u542f\uff0c\u8fd9\u6837\u5c31\u4e0d\u9700\u8981\u5bf9\u9879\u76ee\u5355\u72ec\u8bbe\u7f6e\u3002</p>\n<pre><code>(setq-default eglot-workspace-configuration\n              '((gopls\n                 (usePlaceholders . t))))\n</code></pre>\n<p>\u53e6\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684 tip \u662f\u5982\u679c\u4f60\u7684\u9879\u76ee\u4f7f\u7528\u4e86 <a href=\"https://golang.org/pkg/go/build/#hdr-Build_Constraints\" rel=\"nofollow\">Build Constraints</a> \uff0c\u4e5f\u53ef\u4ee5\u9488\u5bf9\u9879\u76ee\u5355\u72ec\u4fee\u6539 <code>gopls</code> \u7684\u914d\u7f6e\u4f7f\u4ee3\u7801\u7684\u8865\u5168\u4e0e\u8df3\u8f6c\u5b8c\u7f8e\u7684\u5de5\u4f5c\u3002</p>\n<pre><code>((go-mode\n  . ((eglot-workspace-configuration\n      . ((:gopls . (:buildFlags [\"-tags=debug\"])))))))\n</code></pre>\n<p>\u8fd9\u91cc\u5c31\u4e0d\u5199\u51fa\u5168\u5c40\u5f00\u542f\u7684\u793a\u4f8b\u4e86\uff0c\u800c\u4e14\u8fd9\u4e2a\u529f\u80fd\u4e00\u822c\u4e0d\u9700\u8981\u5168\u5c40\u5f00\u542f\u3002</p>\n<p><a></a></p>\n<h1>\u603b\u7ed3</h1>\n<p>Emacs \u5185\u7f6e\u7684 electric-pair-mode \u5e2e\u6211\u4eec\u5b9e\u73b0\u4e86\u62ec\u53f7\u5339\u914d\uff0cproject.el \u53ef\u4ee5\u5728\u9879\u76ee\u4e2d\u67e5\u627e\u6587\u4ef6\u3001\u5b57\u7b26\u4e32\u7b49\uff08 <code>project-find-file</code> <code>project-search</code> <code>project-switch-to-buffer</code> \uff09\u3002</p>\n<p>\u5728\u5b89\u88c5\u4e86 eglot \u3001company-mode \u540e\u5b9e\u73b0\u4e86\u4ee3\u7801\u7684\u8865\u5168\u3001\u8df3\u8f6c\u7b49\u529f\u80fd\uff08 <code>xref-find-definitions</code> <code>xref-find-references</code> \uff09\uff0c\u540c\u65f6 eglot \u914d\u5408\u5185\u7f6e\u7684 flymake \u4e5f\u4e3a\u6211\u4eec\u63d0\u4f9b\u4e86\u9759\u6001\u68c0\u67e5\u3002</p>\n<p>\u5f53\u7136\u8fd9\u4e9b\u63d2\u4ef6\u7684\u529f\u80fd\u8fdc\u4e0d\u53ea\u8fd9\u4e9b\uff0c\u4f8b\u5982 eglot \u53ef\u4ee5\u5e2e\u4f60\u91cd\u547d\u540d\u51fd\u6570\u6216\u53d8\u91cf\uff08\u540c\u65f6\u4fee\u6539\u5176\u5f15\u7528\u5904\u7684\u540d\u5b57\uff09\uff0ccompany-mode \u4e0d\u4ec5\u53ef\u4ee5\u8865\u5168\u4ee3\u7801\u4e5f\u53ef\u4ee5\u8865\u5168\u6587\u4ef6\u8def\u5f84\u3001\u4ee3\u7801\u7247\u6bb5\uff0c\u5728\u7f16\u5199 Golang \u65f6\u9700\u8981\u7528\u5230\u7684\u4e00\u4e9b\u5de5\u5177\u94fe\u662f\u4e0d\u662f\u4e5f\u53ef\u4ee5\u901a\u8fc7 elisp \u7ba1\u7406\u4ece\u800c\u8fbe\u5230\u4e00\u4e2a\u547d\u4ee4\u8fdb\u884c\u5b89\u88c5 /\u66f4\u65b0\u7b49\u3002</p>\n<p>\u5728 Emacs \u4e2d\u80fd\u9650\u5236\u4f60\u7684\u53ea\u6709\u4f60\u7684\u60f3\u8c61\u529b\u4e0e\u884c\u52a8\u529b\uff0c\u79cd\u79cd\u5f3a\u5927\u6216\u5b9e\u7528\u7684\u529f\u80fd\u4e0d\u53ef\u80fd\u5728\u4e00\u7bc7\u6587\u7ae0\u4e2d\u5168\u90e8\u4ecb\u7ecd\uff0c\u5269\u4e0b\u7684\u5c31\u9700\u8981\u4f60\u81ea\u5df1\u53d1\u73b0\u6216\u8005\u6839\u636e\u81ea\u8eab\u7279\u5b9a\u9700\u6c42\u8fdb\u884c\u6269\u5c55\u4e86\u3002</p>\n", 
      "date_published": "2021-08-15T17:02:27+00:00", 
      "title": "Emacs Golang \u5f00\u53d1\u73af\u5883\u914d\u7f6e", 
      "id": "https://www.v2ex.com/t/795959"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lcj2class", 
        "name": "lcj2class", 
        "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202"
      }, 
      "url": "https://www.v2ex.com/t/794420", 
      "title": "[Emacs Tips] \u4f7f\u7528 Dired \u5feb\u901f\u79fb\u52a8\u6587\u4ef6", 
      "id": "https://www.v2ex.com/t/794420", 
      "date_published": "2021-08-08T08:38:59+00:00", 
      "content_html": "<blockquote>\n<p>\u5173\u6ce8 <a href=\"https://emacstalk.github.io/post/003/\" rel=\"nofollow\">EmacsTalk</a> \u6536\u83b7\u66f4\u591a Emacs \u4f7f\u7528\u6280\u5de7</p>\n</blockquote>\n<p>\u5728\u7b2c\u4e94\u671f\u8282\u76ee\u91cc\u63a8\u8350\u8fc7 <a href=\"https://www.raycast.com/\" rel=\"nofollow\">Raycast</a> \u8fd9\u4e2a\u795e\u5668\uff0c\u4e4b\u524d\u77e5\u9053\u5b83\u53ef\u4ee5\u76f4\u63a5\u6267\u884c\u811a\u672c\uff0c\u4f46\u4e00\u76f4\u6ca1\u5c1d\u8bd5\u8fc7\uff0c\u6700\u8fd1\u53d1\u73b0\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a <a href=\"https://github.com/raycast/script-commands\" rel=\"nofollow\">script-commands</a> \u4ed3\u5e93\uff0c\u91cc\u9762\u6574\u7406\u4e86\u4e00\u4e9b\u5e38\u7528\u7684\u811a\u672c\uff0c\u6bd4\u5982\u6e05\u7a7a\u5e9f\u7eb8\u7bd3\u3001\u5237\u65b0 DNS \u7b49\uff0c\u6bd4\u8f83\u5b9e\u7528\u3002</p>\n<p>\u4f46\u8fd9\u4e2a\u4ed3\u5e93\u7684\u811a\u672c\u975e\u5e38\u591a\uff0c\u6211\u9700\u8981\u7684\u53ea\u662f\u5176\u4e2d\u5f88\u5c0f\u4e00\u90e8\u5206\uff0c\u6240\u4ee5\u9700\u8981\u4e00\u79cd\u65b9\u5f0f\u6765\u4fbf\u6377\u5730\u5728\u4e24\u4e2a\u76ee\u5f55\u95f4\u62f7\u8d1d\u6587\u4ef6\uff08\u79f0\u4e3a src \u4e0e dst \uff09\u3002</p>\n<p>\u4e4b\u524d\u7684\u8bdd\u6211\u90fd\u662f\u5728 Dired \u91cc mark \u76f8\u5173\u6587\u4ef6\uff0c\u7136\u540e\u518d\u5728 minibuffer \u91cc\u627e\u5230 dst\uff0c\u5982\u679c src \u548c dst \u79bb\u5f97\u6bd4\u8f83\u8fdc\uff0c\u6574\u4e2a\u8fc7\u7a0b\u4f1a\u975e\u5e38\u67af\u71e5\u3001\u4f4e\u6548\uff0c\u4eca\u5929\u5c1d\u8bd5 Google \u4e86\u4e00\u4e0b<a href=\"https://emacs.stackexchange.com/questions/5603/how-to-quickly-copy-move-file-in-emacs-dired\" rel=\"nofollow\">\u8fd9\u4e2a\u95ee\u9898</a>\uff0c\u53d1\u73b0\u4e00\u4e2a\u597d\u65b9\u5f0f\uff0c\u6d41\u7a0b\u5982\u4e0b\uff1a</p>\n<ol>\n<li>\u6253\u5f00\u4e24\u4e2a Dired \u7a97\u53e3\uff0c\u5206\u522b\u5bf9\u5e94 src \u76ee\u5f55\u4e0e dst \u76ee\u5f55</li>\n<li>\u5728 src \u91cc mark \u6587\u4ef6\u540e\uff0c\u6309 C \u62f7\u8d1d\u65f6\uff0c\u63d0\u793a\u7684\u76ee\u5f55\u9ed8\u8ba4\u5c31\u662f dst</li>\n<li>\u76f4\u63a5\u56de\u8f66\u5373\u53ef\u590d\u5236\u6587\u4ef6</li>\n</ol>\n<p>\u8bbe\u7f6e <code>(setq dired-dwim-target t)</code> \u5373\u53ef\u4f7f\u7528\u4e0a\u8ff0\u529f\u80fd\u3002Emacs is amazing \uff01</p>\n<p><img alt=\"img\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://img.alicdn.com/imgextra/i2/581166664/O1CN01xPceni1z6A51fp11T_%21%21581166664.gif\" title=\"dired \u79fb\u52a8\u6587\u4ef6\u793a\u610f\u56fe\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/vevlins", 
        "name": "vevlins", 
        "avatar": "https://cdn.v2ex.com/avatar/677c/39d0/274232_large.png?m=1711777186"
      }, 
      "url": "https://www.v2ex.com/t/662083", 
      "title": "spacemacs \u5982\u4f55\u8ba9\u5f53\u524d buffer \u4e2d\u7684\u5185\u5bb9\u6c34\u5e73\u5c45\u4e2d\uff1f", 
      "id": "https://www.v2ex.com/t/662083", 
      "date_published": "2020-04-13T12:16:49+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ginjedoad", 
        "name": "ginjedoad", 
        "avatar": "https://cdn.v2ex.com/gravatar/db9c411131417874d03d1fa859c040da?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/654921", 
      "title": "\u516c\u4f17\u53f7\u91cc\u600e\u4e48\u76f4\u63a5\u5b9e\u73b0 Latex \u5199\u51fa\u6765\u7684\u79d1\u5b66\u6587\u7ae0 PDF \u4e4b\u7c7b\u7684\u6548\u679c\uff1f", 
      "id": "https://www.v2ex.com/t/654921", 
      "date_published": "2020-03-21T11:01:04+00:00", 
      "content_html": "<p>\u4f5c\u4e3a\u4e00\u4e2a\u6709\u4fee\u517b\u7684\u7a0b\u5e8f\u5458\uff0c\u6709\u4ec0\u4e48\u597d\u7684\u529e\u6cd5\uff0c\u5728\u516c\u4f17\u53f7\u7684\u6587\u7ae0\u505a\u6210 Latex \u5bfc\u51fa\u7684 PDF \u6548\u679c\u7684\u6587\u7ae0\u5462\uff1f E = mc^2.</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sandboxcn", 
        "name": "sandboxcn", 
        "avatar": "https://cdn.v2ex.com/gravatar/456a42507e9817b8ba2ce179fb87b997?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/549716", 
      "date_modified": "2019-03-28T14:45:50+00:00", 
      "content_html": "<p>\u5df2\u7ecf\u8bbe\u7f6e\u4e0b\u6c89</p>\n", 
      "date_published": "2019-03-28T14:37:00+00:00", 
      "title": "macOS 10.14.4 \u72b6\u6001\u680f\u7535\u6c60\u767e\u5206\u6bd4\u9009\u9879\u56de\u5f52\uff08\u4e0d\u597d\u610f\u601d \u4ee5\u524d\u4e00\u76f4\u90fd\u6709\ud83d\ude02\uff09", 
      "id": "https://www.v2ex.com/t/549716"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/frylkrttj", 
        "name": "frylkrttj", 
        "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594"
      }, 
      "url": "https://www.v2ex.com/t/533833", 
      "title": "emacs \u81ea\u52a8\u5b89\u88c5 package \u5305", 
      "id": "https://www.v2ex.com/t/533833", 
      "date_published": "2019-02-11T01:44:08+00:00", 
      "content_html": "<p>\u4e0b\u9762\u662f\u522b\u4eba\u7684\u914d\u7f6e\uff0c\u6709\u4e9b\u770b\u4e0d\u61c2\uff0c\u8bf7\u95ee min-version  \u8fd9\u4e2a\u662f\u4ec0\u4e48\u554a\uff0c\u600e\u4e48\u6211\u5728 melpa \u91cc\u9762\u627e\u4e0d\u5230\u8fd9\u4e2a\u5305\uff1f</p>\n<pre><code>\n(require 'package)\n(setq package-archives\n  '((\"gnu\" . \"https://elpa.gnu.org/packages/\")\n     (\"melpa\" . \"https://melpa.org/packages/\")\n     (\"org\" . \"http://orgmode.org/elpa/\")))\n \n(defun require-package (package &amp;optional min-version no-refresh)\n  \"Install given PACKAGE, optionally requiring MIN-VERSION.\nIf NO-REFRESH is non-nil, the available package lists will not be\nre-downloaded in order to locate PACKAGE.\"\n  (or (package-installed-p package min-version)\n      (let* ((known (cdr (assoc package package-archive-contents)))\n             (versions (mapcar #'package-desc-version known)))\n        (if (cl-find-if (lambda (v) (version-list-&lt;= min-version v)) versions)\n            (package-install package)\n          (if no-refresh\n              (error \"No version of %s &gt;= %S is available\" package min-version)\n            (package-refresh-contents)\n            (require-package package min-version t))))))\n\n(defun maybe-require-package (package &amp;optional min-version no-refresh)\n  \"Try to install PACKAGE, and return non-nil if successful.\nIn the event of failure, return nil and print a warning message.\nOptionally require MIN-VERSION.  If NO-REFRESH is non-nil, the\navailable package lists will not be re-downloaded in order to\nlocate PACKAGE.\"\n  (condition-case err\n      (require-package package min-version no-refresh)\n    (error\n     (message \"Couldn't install optional package `%s': %S\" package err)\n     nil)))\n\n\n(setq package-enable-at-startup nil)\n(package-initialize)\n\n(require-package 'magit) ;;;auto install magit\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/frylkrttj", 
        "name": "frylkrttj", 
        "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594"
      }, 
      "url": "https://www.v2ex.com/t/533554", 
      "title": "emacs \u600e\u4e48\u63a7\u5236\u5149\u6807", 
      "id": "https://www.v2ex.com/t/533554", 
      "date_published": "2019-02-09T04:49:39+00:00", 
      "content_html": "<p>\u5728\u9ad8\u4eae\u62ec\u53f7\u4e0b\uff0c\u6211\u4ece  \u201c{ \u201d \u5f00\u59cb\u6eda\u52a8\u5c4f\u5e55\u60f3\u6d4f\u89c8\u81f3 \u201c}\u201d\uff0c\u7136\u800c\u5149\u6807\u5374\u8ddf\u7740\u7ffb\u9875\u8dd1\u4e86\uff0c\u201c}\u201d\u8fd8\u6ca1\u627e\u5230\u201c{ \u201d\u4f4d\u7f6e\u4e5f\u8ddf\u4e22\u4e86\uff0c\u8fd9\u79cd\u60c5\u51b5\u5927\u795e\u662f\u600e\u4e48\u89e3\u51b3\u7684\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/frylkrttj", 
        "name": "frylkrttj", 
        "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594"
      }, 
      "url": "https://www.v2ex.com/t/527797", 
      "title": "\u600e\u4e48\u77e5\u9053 emacs \u542f\u7528\u4e86\u90a3\u51e0\u4e2a\u5b89\u88c5\u5305\uff1f", 
      "id": "https://www.v2ex.com/t/527797", 
      "date_published": "2019-01-17T01:47:09+00:00", 
      "content_html": "<p>\u6211\u5b89\u88c5\u4e86\u4e00\u4e9b\u8f6f\u4ef6\u5305\uff0c\u4e5f\u770b\u7740\u5305\u6559\u7a0b\u914d\u7f6e\u4e86\u4e0b\uff0c\u6709\u4e9b\u6ca1\u770b\u61c2\u5c31\u6ca1\u914d\u7f6e\u3002\u73b0\u5728\u60f3\u77e5\u9053 emacs \u662f\u5426\u542f\u7528\u4e86\u8fd9\u4e9b\u5305\u600e\u4e48\u505a\uff1f\n\u6216\u8005\u8bf4 emacs \u600e\u4e48\u6d4b\u8bd5\u4e0b\u6211\u6253\u5f00\u6587\u4ef6\u7684\u65f6\u5019\uff0c\u662f\u5426\u80fd\u81ea\u52a8\u8c03\u7528\u6211\u5b89\u88c5\u7684\u5305\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/frylkrttj", 
        "name": "frylkrttj", 
        "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594"
      }, 
      "url": "https://www.v2ex.com/t/526779", 
      "title": "\u6e90\u66f4\u65b0\u540e\u4e0d\u80fd\u4fdd\u5b58\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/526779", 
      "date_published": "2019-01-14T02:33:29+00:00", 
      "content_html": "<p>\u6bcf\u6b21 Mx package-refresh-contents  \u540e\u4e0b\u6b21 M-x package-list-packages \u518d\u8fdb\u5165\u5305\u5217\u8868\u4e3a\u4ec0\u4e48\u6ca1\u4fdd\u5b58\u4e0a\u6b21\u66f4\u65b0\u7684\u7ed3\u679c\uff1f\u8fd9\u6837\u6bcf\u6b21\u5b89\u88c5\u8f6f\u4ef6\u5305\u90fd\u8981\u91cd\u590d\u66f4\u65b0\u7b49\u597d\u4e45\uff0c\u6709\u529e\u6cd5\u4fdd\u5b58\u4e0a\u6b21\u7684\u66f4\u65b0\u7ed3\u679c\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Tancred", 
        "name": "Tancred", 
        "avatar": "https://cdn.v2ex.com/gravatar/9c8ce5184e4483990a6c4ee8a023c184?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/452562", 
      "title": "\u4e3a\u4ec0\u4e48\u5728 Emacs \u4e0b\u6253\u5f00 Python \u6587\u4ef6\u5c31\u662f\u663e\u793a Tab \u65f6 8 \u4e2a\u5b57\u7b26", 
      "id": "https://www.v2ex.com/t/452562", 
      "date_published": "2018-05-06T09:01:07+00:00", 
      "content_html": "<p>\u8fd9\u4e2a\u6587\u4ef6\u5728 Sublime \u4e0b\u663e\u793a\u7684\u662f 4 \u4e2a\u5b57\u7b26\u7684\uff0c\u5230\u4e86 Emacs \u4e0b\u663e\u793a\u7684\u4e0d\u5bf9\u52b2\u3002</p>\n<p>\u6211\u5728 Emacs \u4e0b\u65b0\u5efa\u7684\u6587\u4ef6\uff0cTab \u5c31\u662f 4 \u4e2a\u5b57\u7b26\u7684\u3002</p>\n<p>\u5728 Sublime \u4e0b\u6253\u5f00\u7684\u6587\u4ef6\uff0c\u518d\u5230 Emacs \u4e2d\u6253\u5f00\uff0cTab \u663e\u793a\u51fa\u6765\u5c31\u662f 8 \u4e2a\u5b57\u7b26\u4e86</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dsdshcym", 
        "name": "dsdshcym", 
        "avatar": "https://cdn.v2ex.com/avatar/b71e/cc36/68157_large.png?m=1410088771"
      }, 
      "url": "https://www.v2ex.com/t/426033", 
      "date_modified": "2018-01-26T00:57:31+00:00", 
      "content_html": "<p>\u6700\u8fd1\u4ece\u81ea\u5df1\u7684\u914d\u7f6e\u8fc1\u79fb\u5230\u4e86 doom-emacs\uff0c\u5206\u4eab\u4e00\u4e0b\u5fc3\u8def\u5386\u7a0b\u3002</p>\n<p><a href=\"http://dsdshcym.github.io/blog/2018/01/22/compare-doom-emacs-spacemacs-vanilla-emacs/\" rel=\"nofollow\">http://dsdshcym.github.io/blog/2018/01/22/compare-doom-emacs-spacemacs-vanilla-emacs/</a></p>\n", 
      "date_published": "2018-01-26T00:56:44+00:00", 
      "title": "Compare Doom-emacs, Spacemacs, and vanilla Emacs", 
      "id": "https://www.v2ex.com/t/426033"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/linux40", 
        "name": "linux40", 
        "avatar": "https://cdn.v2ex.com/avatar/06d5/42e3/107266_large.png?m=1604939410"
      }, 
      "url": "https://www.v2ex.com/t/422628", 
      "title": "Emacs \u8865\u5168\u5934\u6587\u4ef6\u7684\u90a3\u4e2a company-c-header \u6709\u4eba\u7528\u8fc7\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/422628", 
      "date_published": "2018-01-13T07:59:10+00:00", 
      "content_html": "<p>\u6240\u4ee5\u63d2\u4ef6\u90fd\u88c5\u7684 MELPA \u4e0a\u7684\u6700\u65b0\u7248\uff0c\u4f46\u8fd9\u4e2a\u63d2\u4ef6\u62a5\u9519\u8bf4 clang failed with error 1\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ycz0926", 
        "name": "ycz0926", 
        "avatar": "https://cdn.v2ex.com/avatar/8736/3191/212962_large.png?m=1568379868"
      }, 
      "url": "https://www.v2ex.com/t/416752", 
      "date_modified": "2017-12-22T02:17:08+00:00", 
      "content_html": "\u4e00\u76f4\u5728\u7528 elpy mode \u5199 python\uff0c\u8fd9\u4e24\u5929\u53d1\u89c9\u6709\u70b9\u4e0d\u5bf9\u52b2\uff0celpy-importmagic-fixup \u6ca1\u4e86\u2026\u2026\r<br /><a target=\"_blank\" href=\"https://github.com/jorgenschaefer/elpy/issues/1230\" rel=\"nofollow\">https://github.com/jorgenschaefer/elpy/issues/1230</a>\r<br />\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u66ff\u4ee3 importmagic \u7684 package \uff1f", 
      "date_published": "2017-12-22T02:15:52+00:00", 
      "title": "elpy \u628a importmagic \u7ed9 remove \u4e86\ud83d\ude02", 
      "id": "https://www.v2ex.com/t/416752"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/haolly", 
        "name": "haolly", 
        "avatar": "https://cdn.v2ex.com/avatar/7fbb/006d/39068_large.png?m=1699181684"
      }, 
      "url": "https://www.v2ex.com/t/408379", 
      "title": "Emacs \u5728 window 10 \u4e0b\u9762\u8fd0\u884c\u597d\u6162\u5440\uff0c\u6709\u6ca1\u6709\u4eba\u548c\u6211\u4e00\u6837\uff1f", 
      "id": "https://www.v2ex.com/t/408379", 
      "date_published": "2017-11-21T13:25:58+00:00", 
      "content_html": "\u5bb6\u91cc\u7684\u7535\u8111\u662f mac\uff0c\u4e5f\u88c5\u4e86 Emacs\uff0c\u4e00\u70b9\u4e5f\u4e0d\u5361\uff0c\u4f46\u662f\u5728\u516c\u53f8\u7684 pc \u4e0a\u9762\u5c31\u662f\u975e\u5e38\u5361\uff0c\u7b2c\u4e00\u6b21\u542f\u52a8\u8981 10s\uff0cc-v \u9700\u8981\u7b49 1s \u5de6\u53f3\u624d\u5237\u65b0\uff0cc-n \u8fde\u7eed\u6309\u591a\u6b21\u5149\u6807\u5c31\u4f1a\u5361\u4f4f\u4e0d\u52a8\r<br />\u8fd9\u5565\u548b\u6ef4\u4e86\u3002\u3002\u3002\u3002\u6362\u4e86\u597d\u51e0\u4e2a\u7248\u672c\u4e86\u90fd\u662f\u4e00\u6837\u7684\u5361\r<br />\u8bd5\u8fc7\u7684\u7248\u672c\uff1a\r<br /><a target=\"_blank\" href=\"https://github.com/vigou3/emacs-modified-windows\" rel=\"nofollow\">https://github.com/vigou3/emacs-modified-windows</a>\r<br /><a target=\"_blank\" href=\"https://www.gnu.org/software/emacs/download.html#windows\" rel=\"nofollow\">https://www.gnu.org/software/emacs/download.html#windows</a>\r<br /><a target=\"_blank\" href=\"https://ntemacs.sourceforge.io/\" rel=\"nofollow\">https://ntemacs.sourceforge.io/</a>\r<br /><a target=\"_blank\" href=\"https://chocolatey.org/packages?q=emacs\" rel=\"nofollow\">https://chocolatey.org/packages?q=emacs</a> \u91cc\u9762\u7684\u4e24\u4e2a\u90fd\u8bd5\u8fc7\u4e86\r<br />\r<br />\u662f\u4e0d\u662f\u6211\u7535\u8111\u66f4\u65b0\u592a\u9891\u7e41\u4e86\uff1f\uff1f\r<br />\u6211\u8fd9\u51e0\u5929\u521a\u521a\u66f4\u65b0\u4e86 win10 \u5230 1709\uff0cbuild 16299 \u4e86"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/TangMonk", 
        "name": "TangMonk", 
        "avatar": "https://cdn.v2ex.com/avatar/c5f1/ae9e/55793_large.png?m=1644466105"
      }, 
      "url": "https://www.v2ex.com/t/405071", 
      "date_modified": "2017-11-09T12:51:49+00:00", 
      "content_html": "<p>\u611f\u89c9\u5b8c\u7206\u5404\u79cd\u6587\u6863\u7f16\u8f91\u5668\u554a, \u57fa\u672c\u4e0a\u53ef\u4ee5\u66ff\u6362\u6389\u6211\u4e70\u7684 Mweb \u4e4b\u7c7b\u7684\u7f16\u8f91\u5668\u4e86\uff0c\u4e0d\u6127\u662f\u795e\u7684\u7f16\u8f91\u5668</p>\n<p><a href=\"http://orgmode.org/features.html\" rel=\"nofollow\">http://orgmode.org/features.html</a></p>\n", 
      "date_published": "2017-11-09T12:49:19+00:00", 
      "title": "emacs \u7684 org mode \u597d\u5f3a\u5927\u554a", 
      "id": "https://www.v2ex.com/t/405071"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Tancred", 
        "name": "Tancred", 
        "avatar": "https://cdn.v2ex.com/gravatar/9c8ce5184e4483990a6c4ee8a023c184?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/400753", 
      "title": "HHKB Pro2 \u63a5\u4e0a U \u76d8\u540e\u7535\u8111\u63d0\u793a\u201cUSB \u96c6\u7ebf\u5668\u6ca1\u6709\u8db3\u591f\u7684\u7535\u6e90\u201d", 
      "id": "https://www.v2ex.com/t/400753", 
      "date_published": "2017-10-25T14:10:42+00:00", 
      "content_html": "<p>Win7 \u63d0\u793a\uff1a\n\u201c\u8d85\u51fa\u4e86 USB \u96c6\u7ebf\u5668\u7535\u6e90\u201d\n\u201c\u96c6\u7ebf\u5668\u6ca1\u6709\u8db3\u591f\u7535\u6e90\uff0c\u65e0\u6cd5\u64cd\u4f5c USB \u5927\u5bb9\u91cf\u5b58\u50a8\u8bbe\u5907\u201d</p>\n<p>\u73b0\u5728\u6709\u4e00\u4e2a\u63a5\u53e3\u662f\u53ef\u4ee5\u7528\u7684\uff0c\u6211\u63a5\u4e0a\u4e86\u65e0\u7ebf\u9f20\u6807\u7684\u63a5\u6536\u5668\uff1b\u53e6\u4e00\u4e2a\u63a5\u53e3\u63a5 U \u76d8\u7684\u65f6\u5019\u5c31\u4f1a\u6709\u4e0a\u9762\u7684\u63d0\u793a\u2026\u2026</p>\n<p>\u662f\u4e0d\u662f\u8bf4\uff0c\u6211\u8fd9\u5757 HHKB \u952e\u76d8\u7684\u90a3\u4e2a USB \u63a5\u53e3\u574f\u4e86\uff0c\u8bf7\u95ee\u5927\u5bb6\u77e5\u9053\u600e\u4e48\u4fee\u4e00\u4e0b\u561b\uff1f\u8fd8\u53ef\u4ee5\u62a2\u6551\u4e00\u4e0b\u4e0d\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/seagle0128", 
        "name": "seagle0128", 
        "avatar": "https://cdn.v2ex.com/gravatar/ed699e01710921ff93df7d9d7532c970?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/389925", 
      "date_modified": "2017-09-11T16:29:35+00:00", 
      "content_html": "<p>\u5b89\u5229\u4e00\u4e2a\u81ea\u5df1\u7684 Emacs \u914d\u7f6e\uff1a<a href=\"https://github.com/seagle0128/.emacs.d\" rel=\"nofollow\">Centaur Emacs</a>\u3002</p>\n<p><a href=\"https://github.com/seagle0128/.emacs.d\" rel=\"nofollow\">https://github.com/seagle0128/.emacs.d</a></p>\n<p>\u4e2a\u4eba\u4e0d\u4e60\u60ef Spacemacs \u7684\u914d\u7f6e\uff0c\u559c\u6b22\u7eaf\u7cb9\u7684 Emacs \u5feb\u6377\u952e\uff0c\u8ffd\u6c42\u7b80\u6d01\u6025\u901f\u7684\u7f16\u8f91\u4f53\u9a8c\u3002Centaur Emacs \u662f\u4e00\u4e2a\u8f7b\u91cf\u5316\u7684\u914d\u7f6e\u65b9\u6848\uff0c\u80fd\u6ee1\u8db3\u6211\u65e5\u5e38\u7684\u7edd\u5927\u90e8\u5206\u9700\u6c42\uff0c\u7f8e\u89c2\u5374\u53c8\u4e0d\u90a3\u4e48\u8017\u8d39 CPU \u548c\u5185\u5b58\u8d44\u6e90\uff0c\u542f\u52a8\u4e5f\u975e\u5e38\u5feb\u901f\uff08 2s \u4ee5\u5185\uff09\u3002\u559c\u6b22\u7684\u53ef\u4ee5\u8bd5\u7528\u4e0b :)</p>\n<p><img alt=\"Main\" src=\"https://github.com/seagle0128/.emacs.d/raw/master/images/screenshots/main.png\"></p>\n<p><img alt=\"Programming\" src=\"https://github.com/seagle0128/.emacs.d/raw/master/images/screenshots/programming.png\"></p>\n<p><img alt=\"Search\" src=\"https://github.com/seagle0128/.emacs.d/raw/master/images/screenshots/search.png\"></p>\n<p><img alt=\"Magit\" src=\"https://github.com/seagle0128/.emacs.d/raw/master/images/screenshots/magit.png\"></p>\n", 
      "date_published": "2017-09-11T16:27:40+00:00", 
      "title": "\u4e0d\u8c08 Spacemacs\uff0c\u53ea\u8c08 Centaur Emacs", 
      "id": "https://www.v2ex.com/t/389925"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Seymer", 
        "name": "Seymer", 
        "avatar": "https://cdn.v2ex.com/avatar/4b7b/0c45/112138_large.png?m=1773067990"
      }, 
      "url": "https://www.v2ex.com/t/370724", 
      "date_modified": "2017-06-24T00:49:29+00:00", 
      "content_html": "<a target=\"_blank\" href=\"/i/9O5Mb2G2l.png\" target=\"_blank\" title=\"\u5728\u65b0\u7a97\u53e3\u6253\u5f00\u56fe\u7247 9O5Mb2G2l.png\"><img src=\"//i.v2ex.co/9O5Mb2G2l.png\" class=\"embedded_image\" /></a>\r<br />Emacs-24.5 \u5df2\u7ecf\u5378\u8f7d\u6389\u4e86\uff0c\u4e3a\u4ec0\u4e48\u4ecd\u663e\u793a\u5df2\u5b89\u88c5\uff1f\r<br /> \u73b0\u5728\u662f\u4e0d\u652f\u6301\u9884\u53d1\u884c\u7248\u4e86\u5417\uff0c\u600e\u4e48\u786e\u5b9a\u8fd9\u4e2a\u53d1\u884c\u7248\u7684\u7248\u672c\u53f7\uff1f\r<br /> \u5982\u679c\u662f\u4ec5\u652f\u6301 24.5 \u6216\u4e4b\u524d\u7248\u672c\uff0c\u90a3\u5982\u4f55\u5b89\u88c5\u65e7\u7248\u672c\uff0c\u8c22\u8c22\uff01\u5e0c\u671b\u4e0d\u541d\u8d50\u6559\u3002", 
      "date_published": "2017-06-24T00:48:58+00:00", 
      "title": "\u5728\u7528 brew \u91cd\u65b0\u5b89\u88c5 Emacs \u65f6\u9047\u5230\u7684\u95ee\u9898\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u3002", 
      "id": "https://www.v2ex.com/t/370724"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ding3my", 
        "name": "ding3my", 
        "avatar": "https://cdn.v2ex.com/gravatar/4f3333ac8823d6017577e99aabf68ada?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/348011", 
      "title": "emacs \u7684 dired \u6a21\u5f0f\u6709\u5feb\u901f\u5207\u6362\u76ee\u5f55\u7684\u65b9\u6848\u6216\u63d2\u4ef6\u4e48\uff1f", 
      "id": "https://www.v2ex.com/t/348011", 
      "date_published": "2017-03-16T12:03:03+00:00", 
      "content_html": "<p>\u6c42\u666e\u53ca\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Crossin", 
        "name": "Crossin", 
        "avatar": "https://cdn.v2ex.com/avatar/3216/f719/45328_large.png?m=1378992167"
      }, 
      "url": "https://www.v2ex.com/t/346066", 
      "title": "\u7528 emacs \u7684\uff0c\u5c0f\u6307\u4f24\u4e0d\u8d77\u554a", 
      "id": "https://www.v2ex.com/t/346066", 
      "date_published": "2017-03-09T02:54:10+00:00", 
      "content_html": "\u6628\u665a\u4e0d\u77e5\u4e3a\u5565\uff0c\u7a81\u7136\u53d1\u73b0\u5de6\u624b\u5c0f\u6307\u6307\u5c16\u5f88\u75bc\uff0c\u770b\u770b\u4e5f\u6ca1\u6709\u4f24\u53e3\uff0c\u5c31\u6ca1\u591a\u60f3\u3002\r<br />\r<br />\u4eca\u5929\u5f00\u59cb\u5199\u4ee3\u7801\uff0c\u6253\u5f00 emacs \u5199\u4e86\u51e0\u884c\u5c31\u53d1\u73b0\u5f71\u54cd\u5f88\u5927\u554a\uff01\u8fd8\u80fd\u4e0d\u80fd\u6109\u5feb\u5730\u677f\u7816\u4e86\u2026\u2026\r<br />\r<br />PS \uff1a ctrl \u88ab\u66ff\u6362\u5230\u4e86 caps lock \u4e0a"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/megatron", 
        "name": "megatron", 
        "avatar": "https://cdn.v2ex.com/avatar/f5b5/a18a/166167_large.png?m=1459676747"
      }, 
      "url": "https://www.v2ex.com/t/306863", 
      "date_modified": "2016-09-18T05:27:22+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://www.gnu.org/software/emacs/\" rel=\"nofollow\">http://www.gnu.org/software/emacs/</a>", 
      "date_published": "2016-09-17T23:44:03+00:00", 
      "title": "emacs25.1 \u53d1\u5e03\u4e86", 
      "id": "https://www.v2ex.com/t/306863"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ecloud", 
        "name": "ecloud", 
        "avatar": "https://cdn.v2ex.com/avatar/c430/bf33/151087_large.png?m=1716871651"
      }, 
      "url": "https://www.v2ex.com/t/304101", 
      "title": "\u7528 Emacs \u505a PostgreSQL \u89e3\u91ca\u5668\u4e00\u4e8b\u4e0d\u660e", 
      "id": "https://www.v2ex.com/t/304101", 
      "date_published": "2016-09-05T09:58:43+00:00", 
      "content_html": "<p>\u770b\u8fd9\u4e2a\u4eba\u5bb6\u7684\u6f14\u793a\u5f88\u7f8e\u597d\uff08 SQLi \u7a97\u53e3\u91cc\u7684\u67e5\u8be2\u7ed3\u679c\u662f\u65b0\u8d77\u7684\u4e00\u884c\u663e\u793a\uff09</p>\n<p>\u7136\u800c\u6211\u5b9e\u9a8c\u7684\u7ed3\u679c\u5374\u5f88\u5947\u8469\uff08 SQL \u7a97\u53e3\u91cc\u7684\u547d\u4ee4\uff0c\u53d1\u9001\u5230 SQLi \u7a97\u53e3\u4ee5\u540e\uff0c\u6ca1\u6709\u65b0\u8d77\u4e00\u884c\u663e\u793a\uff0c\u63d0\u793a\u7b26\u6324\u5360\u4e86\u5217\u540d\u7684\u7a7a\u95f4\uff09</p>\n<p>\u800c\u4e14\uff0c\u4e3a\u4ec0\u4e48\u6211\u7684\u63d0\u793a\u7b26\u8ddf\u4eba\u5bb6\u7684\u4e0d\u4e00\u6837\uff1f\u96be\u9053\u56e0\u4e3a\u6211\u662f root \uff1f</p>\n<pre><code>qubeon=#  ?column?\n----------\n        1\n(1 row)\n\nqubeon=# select 1;\n ?column?\n----------\n        1\n(1 row)\n</code></pre>\n<p>\u53e6\u5916\u4e00\u4e2a\u66f4\u660e\u663e\u7684\u67e5\u8be2\u7ed3\u679c\uff08\u65e0\u8bba\u7528 C-r,C-b \u8fd8\u662f C-c \u90fd\u4e00\u4e2a\u9e1f\u6837\uff09</p>\n<pre><code>qubeon=#            oid_user_id            | user_mobile\n----------------------------------+-------------\n c3b41eca4a0b46ba8d70de80a36eed27 | 134579003\n b1e09b60d2d648a3a0f7d61a579a0a08 | 974579099\n c622af97e5734c79a64fcf674a52f6c6 | 134579005\n</code></pre>\n<p>\u683c\u5f0f\u5168\u6bc1\u4e86\u554a</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/y", 
        "name": "y", 
        "avatar": "https://cdn.v2ex.com/avatar/bbec/daa1/32220_large.png?m=1359955801"
      }, 
      "url": "https://www.v2ex.com/t/303837", 
      "date_modified": "2016-09-04T17:08:29+00:00", 
      "content_html": "\u5076\u5c14\u6362\u5230\u641c\u72d7\uff0c\u89c9\u5f97\u7279\u522b\u4e0d\u65b9\u4fbf", 
      "date_published": "2016-09-04T08:40:33+00:00", 
      "title": "\u6709\u6ca1\u6709\u529e\u6cd5\u5728\u7528 Emacs \u7684\u65f6\u5019\u81ea\u52a8\u5207\u6362\u6210\u82f1\u6587\u8f93\u5165\u6cd5\uff1f", 
      "id": "https://www.v2ex.com/t/303837"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/LukeXuan", 
        "name": "LukeXuan", 
        "avatar": "https://cdn.v2ex.com/gravatar/f437e63494863b2726d85aa002acff72?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/299935", 
      "title": "melpa down", 
      "id": "https://www.v2ex.com/t/299935", 
      "date_published": "2016-08-17T08:04:02+00:00", 
      "content_html": "<p>\u6628\u5929 melpa down \u4e86\u534a\u5929\u6ca1\u6709\u4eba\u8bf4\u561b\n\u770b\u8d77\u6765 V2EX \u7528\u6237\u4e0d\u662f\u5f88\u591a</p>\n<p>spacemacs \u60f3\u88c5\u4e2a php layer \u4e00\u76f4\u62a5\u9519\u7ed3\u679c\u53d1\u73b0\u4e0d\u662f\u6211\u7684\u9505</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/aborn", 
        "name": "aborn", 
        "avatar": "https://cdn.v2ex.com/avatar/6e23/8e67/143008_large.png?m=1446989240"
      }, 
      "url": "https://www.v2ex.com/t/288153", 
      "title": "v2ex-mode\uff0c\u5728 emacs \u4e0b\u8bbf\u95ee V \u7ad9", 
      "id": "https://www.v2ex.com/t/288153", 
      "date_published": "2016-06-24T14:31:09+00:00", 
      "content_html": "<p>\u4eca\u5929\u82b1\u4e86\u70b9\u65f6\u95f4\u5199\u4e86\u4e00\u4e2a v2ex-mode,\u8fd9\u6837\u5c31\u53ef\u4ee5\u5728 emacs \u4e0b\u8bbf\u95ee V \u7ad9\u4e86\u3002<br>\n\u9879\u76ee\u94fe\u63a5\uff1a <a href=\"https://github.com/aborn/v2ex-mode\" rel=\"nofollow\">https://github.com/aborn/v2ex-mode</a><br>\n\u4e0a\u56fe\uff1a\n<img alt=\"\" src=\"https://raw.githubusercontent.com/aborn/v2ex-mode/master/doc/v2ex.png\" title=\"v2ex conent list\"></p>\n<p>\u4e0d\u8fc7\u7531\u4e8e V \u7ad9\u5f00\u653e\u7684 API \u53ea\u6709\uff1a<strong>\u6700\u70ed\u4e3b\u9898</strong>\u548c<strong>\u6700\u65b0\u4e3b\u9898</strong><br>\n\u6240\u4ee5\u53ea\u80fd\u67e5\u770b\u8fd9\u4e24\u4e2a topic \u7684\u5185\u5bb9\u3002<br>\n\u53c2\u8003\uff1a <a href=\"http://v2ex.com/p/7v9TEc53\" rel=\"nofollow\">http://v2ex.com/p/7v9TEc53</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/XiaST", 
        "name": "XiaST", 
        "avatar": "https://cdn.v2ex.com/gravatar/1f77b78f0b1ce117785aee4a1524d084?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/280074", 
      "title": "\u5728 emacs \u4e2d\u6709\u6ca1\u6709\u80fd\u76f4\u63a5\u4f7f\u7528 imap \u534f\u8bae\u7684\u540c\u65f6\u4e0b\u8f7d\u90ae\u4ef6\u5230\u672c\u5730\u6216\u8005\u4f7f\u7528 pop3 \u4f46\u662f\u4e0d\u5220\u9664\u670d\u52a1\u5668\u90ae\u4ef6\u7684\u90ae\u4ef6\u5ba2\u6237\u7aef\uff1f", 
      "id": "https://www.v2ex.com/t/280074", 
      "date_published": "2016-05-20T08:56:56+00:00", 
      "content_html": "<p>\u7528\u4e86\u4e00\u6bb5\u65f6\u95f4\u7684 gnus \uff0c\u4f46\u662f\u53d1\u73b0\u6709\u4e0a\u8ff0\u7684\u4e24\u4e2a\u95ee\u9898\u3002\u6709\u6ca1\u6709\u4e00\u4e2a\u80fd\u540c\u65f6\u5728\u670d\u52a1\u5668\u4e0a\u548c\u672c\u5730\u90fd\u6709\u90ae\u4ef6\u5b58\u6863\u7684\u65b9\u6848\uff1f\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1775624785"
      }, 
      "url": "https://www.v2ex.com/t/277308", 
      "title": "GNU Emacs \u7684\u65b0\u7f51\u7ad9", 
      "id": "https://www.v2ex.com/t/277308", 
      "date_published": "2016-05-09T04:19:06+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://www.gnu.org/software/emacs/index.html\" rel=\"nofollow\">http://www.gnu.org/software/emacs/index.html</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/raawaa", 
        "name": "raawaa", 
        "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950"
      }, 
      "url": "https://www.v2ex.com/t/276612", 
      "title": "Emacs \u914d\u5408\u4f7f\u7528 ibus \u8f93\u5165\u6cd5\u7684\u4e00\u4e2a\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/276612", 
      "date_published": "2016-05-05T12:19:29+00:00", 
      "content_html": "<p>\u6700\u8fd1\u4e0d\u518d\u4f7f\u7528 DE \uff0c\u6539\u4e3a\u5355\u72ec\u7528 i3wm \uff0c\u53d1\u73b0 Emacs \u4e2d\u4e0d\u80fd\u8f93\u5165\u4e2d\u6587\u4e86\u3002\u6700\u540e\u67e5\u51fa\u6765\u662f ibus-daemon \u542f\u52a8\u65f6\u5fc5\u987b\u52a0\u5165 --xim \u9009\u9879\u3002\u4e8e\u662f\u5728\u542f\u52a8\u914d\u7f6e\u6587\u4ef6<code>~/.xprofile</code>\u4e2d\u6dfb\u52a0<code>ibus-daemon -d -x</code>\u3002\u4e4b\u540e\u5c31\u90fd\u6b63\u5e38\u4e86\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/XiaST", 
        "name": "XiaST", 
        "avatar": "https://cdn.v2ex.com/gravatar/1f77b78f0b1ce117785aee4a1524d084?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/276241", 
      "title": "Ubuntu \u4e0b\u4f7f\u7528\u4e86 GNU \u7684 nnimap \u8bbe\u7f6e\u4e86\u90ae\u7bb1\u670d\u52a1\u5668\uff0c\u6211\u60f3\u77e5\u9053\u7684\u662f\u63a5\u6536\u5230\u90ae\u4ef6\u7684\u9ed8\u8ba4\u4fdd\u5b58\u4f4d\u7f6e\u5728\u4f55\u5904\uff0c\u5c1d\u8bd5\u5bfb\u627e\u4e86\u4e00\u4e0b\u8868\u793a\u6839\u672c\u627e\u4e0d\u5230\uff0c\u5728 home \u76ee\u5f55\u4e0b\u7684 Mail \u548c News \u76ee\u5f55\u4e0b\u5747\u672a\u627e\u5230", 
      "id": "https://www.v2ex.com/t/276241", 
      "date_published": "2016-05-04T05:48:17+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/truehyp", 
        "name": "truehyp", 
        "avatar": "https://cdn.v2ex.com/gravatar/ed3ccca8d87f179bb5120c4e9d12836b?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/271387", 
      "title": "\u5173\u4e8e org-mode 8 \u5bfc\u51fa html \u7684\u4e00\u4e2a\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/271387", 
      "date_published": "2016-04-15T09:10:29+00:00", 
      "content_html": "\u91cd\u65b0\u7528 Emacs \u540e\uff0c\u53d1\u73b0 org-mode \u7684\u7248\u672c\u5347\u5230\u4e86 8 \r<br />org-mode \u5bfc\u51fa\u4e3a html \u8981 \u914d\u7f6e HOME \u548c UP \u94fe\u63a5\u5185\u5bb9\uff0c\u4e4b\u524d\u53ea\u8981 #+HTML_LINK_HOME:  \u5c31\u53ef\u4ee5\u6307\u5b9a HOME \u7684\u94fe\u63a5\u5730\u5740\u3002\r<br />\u6211\u67e5\u5230 org-mode 8 \uff0c\u9ed8\u8ba4\u662f\u4e0d\u80fd\u6307\u5b9a\u7edd\u5bf9\u94fe\u63a5\u5730\u5740\uff0c\u6240\u4ee5\u6211\u8bbe\u7f6e\u4e86 #+HTML-LINK-USE-ABS-URL:  t \uff0c\u53ef\u5bfc\u51fa\u6210 html \u65f6\uff0c HOME \u7684\u94fe\u63a5\u5730\u5740\u8fd8\u662f\u4e3a\u7a7a\u3002\r<br />&lt;div id=&quot;org-div-home-and-up&quot;&gt;\r<br /> &lt;a accesskey=&quot;H&quot; href=&quot;&quot;&gt; HOME &lt;/a&gt;\r<br />\r<br />\u95ee\u9898\u662f\u4e0d\u5927\uff0c\u6211\u4e4b\u524d\u5c31\u7528\u811a\u672c\u6539\u4e0b html \u6587\u4ef6\u3002\u4f46\u603b\u60f3\u5f04\u597d\u5b83\uff0c\u54ea\u4f4d\u5927\u795e\u77e5\u9053\u600e\u4e48\u914d\u7f6e\u4e48\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/raawaa", 
        "name": "raawaa", 
        "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950"
      }, 
      "url": "https://www.v2ex.com/t/260099", 
      "title": "\u5728 emacsclient \u4e2d\u5e94\u7528\u4e2d\u6587\u5b57\u4f53\u8bbe\u7f6e", 
      "id": "https://www.v2ex.com/t/260099", 
      "date_published": "2016-03-01T02:14:22+00:00", 
      "content_html": "<p>daemon \u6a21\u5f0f\u4e0b\u7528<code>emacsclient -c</code>\u53d1\u73b0\u5b57\u4f53\u8bbe\u7f6e\u6ca1\u6709\u751f\u6548\uff0c\u6298\u817e\u4e00\u756a\u4e4b\u540e\u53d1\u73b0\u5982\u4e0b\u65b9\u6cd5\uff1a</p>\n<div class=\"highlight\"><pre><span class=\"c1\">;;; \u8bbe\u7f6e\u4e2d\u6587\u5b57\u4f53</span>\n<span class=\"p\">(</span><span class=\"nb\">defun</span> <span class=\"nv\">my-apply-font</span> <span class=\"p\">()</span>\n  <span class=\"p\">(</span><span class=\"nv\">set-default-font</span> <span class=\"s\">&quot;Consolas&quot;</span><span class=\"p\">)</span>\n  <span class=\"p\">(</span><span class=\"nv\">set-fontset-font</span> <span class=\"s\">&quot;fontset-default&quot;</span> <span class=\"ss\">&#39;chinese-gbk</span> <span class=\"s\">&quot;\u5fae\u8f6f\u96c5\u9ed1&quot;</span><span class=\"p\">)</span>\n\n  <span class=\"p\">(</span><span class=\"k\">setq</span> <span class=\"nv\">face-font-rescale-alist</span> <span class=\"o\">&#39;</span><span class=\"p\">((</span><span class=\"s\">&quot;\u5b8b\u4f53&quot;</span> <span class=\"o\">.</span> <span class=\"mf\">1.2</span><span class=\"p\">)</span>\n                                  <span class=\"p\">(</span><span class=\"s\">&quot;\u5fae\u8f6f\u96c5\u9ed1&quot;</span> <span class=\"o\">.</span> <span class=\"mf\">1.1</span><span class=\"p\">)</span>\n                                  <span class=\"p\">)))</span>\n<span class=\"p\">(</span><span class=\"nv\">my-apply-font</span><span class=\"p\">)</span>\n<span class=\"c1\">;;; \u4f7f\u5b57\u4f53\u8bbe\u7f6e\u5e94\u7528\u5230 client \u4e2d</span>\n<span class=\"p\">(</span><span class=\"nv\">add-hook</span> <span class=\"ss\">&#39;after-make-frame-functions</span>\n          <span class=\"p\">(</span><span class=\"k\">lambda</span> <span class=\"p\">(</span><span class=\"nv\">frame</span><span class=\"p\">)</span>\n            <span class=\"p\">(</span><span class=\"nv\">select-frame</span> <span class=\"nv\">frame</span><span class=\"p\">)</span>\n            <span class=\"p\">(</span><span class=\"nv\">my-apply-font</span><span class=\"p\">)))</span>\n</pre></div>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wlwood", 
        "name": "wlwood", 
        "avatar": "https://cdn.v2ex.com/gravatar/12038866f3a74624c9420adf690c1dc2?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/253996", 
      "date_modified": "2016-01-28T06:36:56+00:00", 
      "content_html": "<p>emacs \u8be5\u5982\u4f55\u663e\u793a\u51fa tab \u952e\u5462\uff1f\u627e\u4e86\u8c8c\u4f3c\u6709\u4e2a tab-display.el \u3002\u7136\u800c\uff0c\u8c8c\u4f3c\u4e0b\u8f7d\u5730\u65b9\u90fd\u4e0d\u80fd\u7528\u4e86\u3002\u3002\u3002\u3002</p>\n", 
      "date_published": "2016-01-28T06:34:19+00:00", 
      "title": "emacs \u663e\u793a\u51fa tab \u952e", 
      "id": "https://www.v2ex.com/t/253996"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hick", 
        "name": "hick", 
        "avatar": "https://cdn.v2ex.com/avatar/d4be/5395/48453_large.png?m=1383290405"
      }, 
      "url": "https://www.v2ex.com/t/252788", 
      "title": "Emacs 25.1 \u5373\u5c06\u652f\u6301\u5185\u5d4c webkit \u6d4f\u89c8\u5668", 
      "id": "https://www.v2ex.com/t/252788", 
      "date_published": "2016-01-23T02:19:13+00:00", 
      "content_html": "<p>\u54c8\u54c8\u54c8, \u4e00\u822c\u81ea\u5df1\u4eba\u4e0d\u8bf4\u54b1 Emacs \u662f\u4e2a\u64cd\u4f5c\u7cfb\u7edf... </p>\n\n<p>XWidget Branch has been merged into Emacs 25.1  \u8fd9\u610f\u5473\u7740\u79bb\u5728 Emacs \u91cc\u5d4c\u5165 webkit \u6d4f\u89c8\u5668\u4e0d\u8fdc\u4e86!  \u770b\u5230\u8fd9\u4e2a\u6d88\u606f\u6bd4\u8f83\u6fc0\u52a8, \u5f00\u59cb\u8fd8\u6000\u7591\u662f\u4e0d\u662f\u6211\u7406\u89e3\u9519\u4e86, \u73b0\u5728\u7684 Emacs \u7ef4\u62a4\u8005 John Wiegley \u5728\u90ae\u4ef6\u5217\u8868\u6709\u5bf9 push \u7684\u4eba\u8bc4\u8bba: Yes, thank you!  A momentous moment! reddit \u7684\u7f51\u53cb\u8bc4\u8bba\u8868\u793a\u4ee5\u540e\u5c31\u5728 Emacs \u5bb6\u4f4f\u4e86, \u4e0d\u8d70\u4e86!   Emacs \u5185\u80fd\u5d4c\u5165\u975e\u7eaf\u6587\u672c\u7684\u6d4f\u89c8\u5668\u5e76\u7ed3\u5408 Emacs lisp \u7684\u7f16\u7a0b\u64cd\u63a7\u80fd\u529b, \u80fd\u8ba9 Emacs \u7684\u4f7f\u7528\u63d0\u5347\u5f88\u5927\u7684\u4e00\u4e2a\u53f0\u9636</p>\n\n<p>\u76f8\u5173\u90ae\u4ef6\u5217\u8868\u8ba8\u8bba\u53c2\u89c1 <a target=\"_blank\" rel=\"nofollow\" href=\"http://thread.gmane.org/gmane.emacs.devel/196096/\">http://thread.gmane.org/gmane.emacs.devel/196096/</a></p>\n\n<p>\u4e0d\u4e86\u89e3 XWidgets \u610f\u5473\u7740\u4ec0\u4e48\u7684\u53ef\u4ee5\u770b\u770b\u8fd9\u91cc   <a target=\"_blank\" rel=\"nofollow\" href=\"https://www.emacswiki.org/emacs/EmacsXWidgets\">https://www.emacswiki.org/emacs/EmacsXWidgets</a></p>\n\n<p>\u66f4\u591a\u8be6\u60c5\u53c2\u89c1  <a target=\"_blank\" rel=\"nofollow\" href=\"http://mp.weixin.qq.com/s?__biz=MzAwOTIxMjg0NQ==&amp;mid=406266766&amp;idx=1&amp;sn=cf6a381445deb3eb5b530f9df72ffd99&amp;scene=0\">http://mp.weixin.qq.com/s?__biz=MzAwOTIxMjg0NQ==&amp;mid=406266766&amp;idx=1&amp;sn=cf6a381445deb3eb5b530f9df72ffd99&amp;scene=0</a>  \u6216\u8005\u8fd9\u91cc <a target=\"_blank\" rel=\"nofollow\" href=\"http://emacsist.com/10692\">http://emacsist.com/10692</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/raawaa", 
        "name": "raawaa", 
        "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950"
      }, 
      "url": "https://www.v2ex.com/t/249874", 
      "title": "Emacs \u5206\u522b\u8bbe\u7f6e\u4e2d\u82f1\u6587\u5b57\u4f53\u53ca org-mode \u8868\u683c\u5bf9\u9f50", 
      "id": "https://www.v2ex.com/t/249874", 
      "date_published": "2016-01-11T06:20:40+00:00", 
      "content_html": "<p>\u53d1\u73b0\u7f51\u4e0a\u5f88\u591a\u65b9\u6cd5\u8bd5\u4e0b\u6765\u90fd\u6709\u5f88\u591a\u95ee\u9898\uff0c\u6700\u540e\u7ec8\u4e8e\u627e\u5230\u4e86\u4e2a\u6bd4\u8f83\u597d\u7684\u65b9\u6cd5\uff0c\u8d34\u5728\u8fd9\u91cc\u5907\u5fd8\uff1a</p>\n<div class=\"highlight\"><pre><span class=\"c1\">; ~/.emacs</span>\n\n<span class=\"p\">(</span><span class=\"nv\">set-default-font</span> <span class=\"s\">&quot;Consolas&quot;</span><span class=\"p\">)</span>\n<span class=\"p\">(</span><span class=\"nv\">set-fontset-font</span> <span class=\"s\">&quot;fontset-default&quot;</span> <span class=\"ss\">&#39;chinese-gbk</span> <span class=\"s\">&quot;\u5fae\u8f6f\u96c5\u9ed1&quot;</span><span class=\"p\">)</span>\n\n<span class=\"p\">(</span><span class=\"k\">setq</span> <span class=\"nv\">face-font-rescale-alist</span> <span class=\"o\">&#39;</span><span class=\"p\">((</span><span class=\"s\">&quot;\u5b8b\u4f53&quot;</span> <span class=\"o\">.</span> <span class=\"mf\">1.2</span><span class=\"p\">)</span>\n                <span class=\"p\">(</span><span class=\"s\">&quot;\u5fae\u8f6f\u96c5\u9ed1&quot;</span> <span class=\"o\">.</span> <span class=\"mf\">1.1</span><span class=\"p\">)</span>\n                <span class=\"p\">))</span>\n</pre></div>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/raawaa", 
        "name": "raawaa", 
        "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950"
      }, 
      "url": "https://www.v2ex.com/t/246035", 
      "title": "\u7ec8\u4e8e\u641e\u5b9a\u4e86\u65b0\u5e06\u65b0\u95fb\u7ec4", 
      "id": "https://www.v2ex.com/t/246035", 
      "date_published": "2015-12-25T03:23:45+00:00", 
      "content_html": "<p>\u65b0\u5e06\u7684\u5b57\u7b26\u7f16\u7801\u771f\u662f\u633a\u96be\u641e\u7684\u3002</p>\n\n<p><img src=\"https://ooo.0o0.ooo/2015/12/24/567cb70d531db.png\" alt=\"emacs_gnus.png\"></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/tcstory", 
        "name": "tcstory", 
        "avatar": "https://cdn.v2ex.com/avatar/b206/19a0/78971_large.png?m=1462597435"
      }, 
      "url": "https://www.v2ex.com/t/239928", 
      "title": "\u9047\u5230 symbol's value as variable is void", 
      "id": "https://www.v2ex.com/t/239928", 
      "date_published": "2015-11-30T02:14:33+00:00", 
      "content_html": "<p>\u611f\u89c9\u5f88\u5947\u602a\u7684\u95ee\u9898,\u81ea\u5df1\u4f7f\u7528\u7684\u662f el-get \u6765\u7ba1\u7406\u63d2\u4ef6,\u6628\u665a\u770b\u4e86\u4e00\u4e0b magit \u7684\u6587\u6863,\u60f3\u7ed9 magit \u8bbe\u7f6e\u4e00\u4e2a\u5feb\u6377\u952e,\u5c31\u6839\u636e\u6587\u6863\u7684\u63d0\u793a\u8bbe\u7f6e\u4e86<code>(global-set-key (kbd &quot;C-x g&quot;) \u2019 magit-status)</code>,\u7ed3\u679c\u5374\u9047\u5230\u4e86\u4e0a\u9762\u63d0\u5230\u7684\u95ee\u9898,\u8fd9\u5230\u5e95\u662f\u8fd9\u4e48\u56de\u4e8b\u5462?<br>\n\u5176\u5b9e\u6211\u5728\u7528 company-tern \u7684\u65f6\u5019\u4e5f\u9047\u5230\u4e86\u7c7b\u4f3c\u7684\u95ee\u9898,\u7136\u540e\u627e\u5230\u8d44\u6599\u4f7f\u7528\u4e0b\u9762\u7684\u65b9\u6cd5\u6765\u89e3\u51b3\u4e86</p>\n<div class=\"highlight\"><pre>(with-eval-after-load &#39;company\n     (add-to-list &#39;company-backends &#39;company-tern))\n</pre></div>\n\n<p>\u6211\u6bd4\u8f83\u611f\u89c9\u5947\u602a\u7684\u662f,\u4e0d\u662f el-get \u5e2e\u6211\u52a0\u8f7d\u4e86\u63d2\u4ef6\u4e86\u5417?\u4e3a\u4ec0\u4e48\u8fd8\u4f1a\u9047\u5230\u8fd9\u6837\u7684\u95ee\u9898.</p>\n\n<p>el-get \u7684\u914d\u7f6e\u5982\u4e0b</p>\n<div class=\"highlight\"><pre>(add-to-list &#39;load-path &quot;~/.emacs.d/el-get/el-get&quot;)\n\n  (unless (require &#39;el-get nil &#39;noerror)\n     (with-current-buffer\n            (url-retrieve-synchronously\n                    &quot;https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el&quot;)\n                (goto-char (point-max))\n                    (eval-print-last-sexp)))\n\n  (add-to-list &#39;el-get-recipe-path &quot;~/.emacs.d/el-get-user/recipes&quot;)\n  (el-get &#39;sync)\n</pre></div>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hikkikuma1991", 
        "name": "hikkikuma1991", 
        "avatar": "https://cdn.v2ex.com/avatar/9eba/7a6f/139644_large.png?m=1468285827"
      }, 
      "url": "https://www.v2ex.com/t/235523", 
      "date_modified": "2015-11-12T01:45:51+00:00", 
      "content_html": "<h1>Start</h1>\n\n<p>Emacs \u662f\u4e00\u4e2a\u529f\u80fd\u76f8\u5bf9\u8f83\u591a\u800c\u4e14\u5f88\u590d\u6742\u7684 text\u00adeditor \uff0c\u6240\u4ee5\u60f3\u8981\u719f\u7ec3\u4f7f\u7528\u5fc5\u987b\u8981\u5bf9 emacs \u7684\u4e00\u4e9b\u57fa\u672c\u6982\u5ff5\u8fdb\u884c\uf9ba\u89e3\uff0c\uf9ba\u89e3\u8fd9\u4e9b\u6982\u5ff5\u6700\u597d\u7684\u6559\u7a0b\u5c31\u662f emacs \u81ea\u5e26\u7684 \u201c Emacs Tutorial \u201c\u3002\u53ef\u4ee5\u901a\u8fc7\u70b9\u51fb\u83dc\u5355\u680f\u7684 Help-&gt;Emacs Tutorial(choose language)\u8fdb\u884c\u5b66\u4e60\u3002</p>\n\n<h1>\u5c06 Emacs \u6253\u9020\u6210\u8212\u9002\u7684\u4ee3\u7801\u9605\u8bfb\u5668</h1>\n\n<p>\u8981\u60f3\u5c06 Emacs \u6253\u9020\u6210\u8212\u9002\u7684\u4ee3\u7801\u9605\u8bfb\u73af\u5883\u9664\uf9ba\u9700\u8981 Emacs \u672c\u4f53\u4e4b\u5916\uff0c\u8fd8\u9700\u8981\u51e0\u79cd\u63d2 \u4ef6\u6765\u5e2e\u52a9\u6211\u4eec\u5b9e\u73b0\u8fd9\u4e2a\u613f\u671b\u3002 Emacs \u662f\u4e00\u79cd\u6269\u5c55\u6027\u5f88\u5f3a\u7684\u7f16\u8f91\u5668\uff0c\u5e76\u4e14\u5b9a\u4e49\uf9ba\u4e00\u79cd elisp \u8bed\u8a00\u6765\u4e13\u95e8\u914d\u7f6e Emacs \u5e76\u5f00\u53d1\u65b0\u7684\u529f\u80fd\u3002\u6211\u4eec\u4e3a\u5c06 emacs \u6253\u9020\u6210\u4ee3\u7801\u9605\u8bfb\u5668\u6240 \u9700\u8981\u7684\u63d2\u4ef6\u4e3b\u8981\u6709 CEDET \uff0c ECB \u4ee5\u53ca CSCOPE \uff0c\u4e0b\u9762\u5206\u522b\u4ecb\u7ecd\u4e00\u4e0b\u8fd9\u51e0\u4e2a\u63d2\u4ef6\u7684\u4f5c\u7528\u3002</p>\n\n<h2>CEDET</h2>\n\n<p>cedet \u662f\u4e00\u5806\u5b8c\u5168\u7528 elisp \u5b9e\u73b0\u7684 emacs \u5de5\u5177\u7684\u96c6\u5408\u3002\u5305\u542b\uf9ba\u5f88\u591a\u7684\u529f\u80fd\uff0c\u8fd9\u4e2a\u63d2\u4ef6 \u7684\u4e3b\u8981\u76ee\u7684\u662f\u4e3a Emacs \u63d0\u4f9b\u57fa\u7840\u529f\u80fd\u7684\u652f\u6301\u4ee5\u4f7f\u5176\u53d8\u6210\u53d8\u6210\u7c7b\u4f3c Eclipse \u6216 VS \u7cfb\u5217 \u8fd9\u6837\u7684\u9ad8\u7ea7\u5f00\u53d1\u73af\u5883\u3002</p>\n\n<h2>ECB</h2>\n\n<p>ECB \u662f\u201c Emacs Code Browser \u201d\u7684\u7b80\u79f0\uff0c\u4ece\u5176\u540d\u5b57\u5c31\u53ef\u4ee5\u770b\u51fa\u8fd9\u4e2a\u63d2\u4ef6\u7684\u4f5c\u7528\u662f\u5c06 Emacs \u53d8\u6210\u4e00<br>\n\u4e2a\u4ee3\u7801\u6d4f\u89c8\u5668\u3002\u4f7f\u7528\uf9baECB \u4e4b\u540e\u7684\u6548\u679c\u53ef\u89c1\u4e0b\u56fe\u3002<br>\n<img src=\"http://img.blog.csdn.net/20151106160157716\" alt=\"ecb\"></p>\n\n<h2>CSCOPE</h2>\n\n<p>Cscope \u662f\u4e00\u6b3e\u5f00\u6e90\u514d\u8d39\u7684 C/C++\u6d4f\u89c8\u5de5\u5177\uff0c\u81ea\u5e26\u4e00\u4e2a\u57fa\u4e8e\u6587\u672c\u7684\u7528\u6237\u754c\u9762\uff0c\u901a\u8fc7 cscope \u53ef\u4ee5\u5f88\u65b9\u4fbf\u5730\u627e\u5230\u67d0\u4e2a\u51fd\u6570\u6216\u53d8\uf97e\u7684\u5b9a\u4e49\u4f4d\u7f6e\u3001\u88ab\u8c03\u7528\u7684\u4f4d\u7f6e\u7b49\u4fe1\u606f\u3002 Cscope \u5bf9 C /C++\u652f\u6301\u8f83\u597d\uff0c\u4e5f\u53ef\u4ee5\u81ea\u5df1\u5b9a\u5236\u6765\u652f\u6301 Java \u548c Perl \u3001 Python \u7b49\u811a\u672c\u8bed \u8a00\u3002\u6240\u4ee5 CSCOPE \u662f\u4e00\u4e2a\u4e3a\u4ee3\u7801\u6d4f\u89c8\u63d0\u4f9b\u57fa\u7840\u529f\u80fd\u7684\u7a0b\u5e8f\uff0c\u8fd9\u4e2a\u7a0b\u5e8f\u5e76\uf967\u662f\u4e3a\uf9ba Emacs \u800c\u4e13\u95e8\u5f00\u53d1\u7684\uff0c\u56e0\u6b64\u8981\u60f3\u5728 Emacs \u4e0a\u4f7f\u7528\u8fd9\u4e2a\u7a0b\u5e8f\u9700\u8981\u5728 Emacs \u4e2d\u5b89\u88c5\u63d2\u4ef6\u8c03 \u7528 CSCOPE \u63d0\u4f9b\u7684\u529f\u80fd\u3002</p>\n\n<h1>\u5b89\u88c5</h1>\n\n<p>\u63a5\u4e0b\u6765\u4ecb\u7ecd\u8fd9\u4e9b\u63d2\u4ef6\u7684\u5b89\u88c5\u8fc7\u7a0b\uff0c\u9996\u5148 CEDET \u7684\u652f\u6301\u662f\u76f4\u63a5\u5305\u542b\u5728 emacs \u4e2d\u7684\u5e76\uf967 \u9700\u8981\u989d\u5916\u5b89\u88c5\uff0c\u56e0\u6b64\u6211\u4eec\u53ea\u8981\u5b89\u88c5 ECB \u548c CSCOPE \u5c31\u53ef\u4ee5\uf9ba\u3002\u5728\u4ecb\u7ecd\u5177\u4f53\u7684\u5b89\u88c5\u8fc7\u7a0b \u4e4b\u524d\u5148\u4ecb\u7ecd\u4e0b emacs \u7684\u63d2\u4ef6\u914d\u7f6e\u8fc7\u7a0b\u3002</p>\n\n<h2>Emacs \u7684\u63d2\u4ef6\u914d\u7f6e</h2>\n\n<p>\u7b80\u5355\u5730\u8bf4 Emacs \u7684\u63d2\u4ef6\u914d\u7f6e\u4e3b\u8981\u6709\u4ee5\u4e0b\u4e24\u6b65\uff0c\u7b2c\u4e00\u6b65\u662f\u5c06\u63d2\u4ef6\u6587\u4ef6\u62f7\u8d1d\u5230 emacs \u7684 \u63d2\u4ef6\u6587\u4ef6\u5939\uff08\u9ed8\u8ba4\u662f\uff5e\u6587\u4ef6\u5939\u4e0b\u7684.emacs.d/\uff09\u4e2d\uff0c\u7b2c\u4e8c\u90e8\u662f\u5728 emacs \u7684\u914d\u7f6e\u6587\u4ef6 \uff08\uff5e\u4e0b\u7684.emacs \uff09\u4e2d\u63cf\u8ff0\u8fd9\u4e2a\u63d2\u4ef6\u7684\u8def\u5f84 loadpath)\u5e76\u542f\u7528\u63d2\u4ef6\u3002</p>\n\n<h2>ECB \u7684\u5b89\u88c5</h2>\n\n<p><a target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/alexott/ecb\">https://github.com/alexott/ecb</a> \u4e0b\u8f7d ecb \u7684 tar \u6587\u4ef6\uff0c\u89e3\u538b\u540e\u5c06\u89e3\u538b\u51fa\u6765\u7684\u6587\u4ef6 \u62f7\u8d1d\u5230.emacs.d \u4e2d\u5e76\u7f16\u8f91 emacs \u914d\u7f6e\u6587\u4ef6\u52a0\u5165\u4ee5\u4e0b\u4ee3\u7801\u3002\u6ce8\u610f\u5c06\u6587\u4ef6\u7684\u4f4d\u7f6e\u6539\u6210\u81ea \u5df1\u7684\u4f4d\u7f6e\u3002</p>\n<div class=\"highlight\"><pre>\u037e\u037e\u5c06 ECB \u7684\u8def\u5f84\u6dfb\u52a0\u5230\u8bfb\u53d6\u5217\u8868\u4e2d\n(add\u00adto\u00adlist &#39;load\u00adpath &quot;/home/augustus/.emacs.d/ecb\u00admaster&quot;)\n\u037e\u037e\u544a\u8bc9 emacs \u542f\u7528 ecb\n(require &#39;ecb)\n</pre></div>\n\n<p>\u4fdd\u5b58 emacs \u914d\u7f6e\u6587\u4ef6\u5e76\u91cd\u65b0\u542f\u52a8 emacs \u5c31\u53ef\u4ee5\u5728\u83dc\u5355\u680f\u7684 Tools\u00ad&gt;Start Code Browser \u6253\u5f00 ecb\uf9ba\u3002</p>\n\n<h2>CSCOPE \u7684\u5b89\u88c5</h2>\n\n<p>\u9996\u5148\u8981\u5728\u7cfb\u7edf\u4e0a\u5b89\u88c5 CSCOPE</p>\n<div class=\"highlight\"><pre>sudo apt\u00adget install cscope\n</pre></div>\n\n<p>\u7136\u540e\u53bb CSCOPE \u7684\u5b98\u7f51 <a target=\"_blank\" rel=\"nofollow\" href=\"http://cscope.sourceforge.net/\">http://cscope.sourceforge.net/</a> \u4e0b\u8f7d\u6e90\u7801\u5305\uff0c\u5e76\u5c06\u5176\u4e2d\u7684 xcscope.el \u62f7\u8d1d\u5230<br>\nloadpath \u5305\u542b\u7684\u76ee\u5f55\u91cc\u3002\u5e76\u5728.emacs \u91cc\u9762\u52a0\u4e0a</p>\n<div class=\"highlight\"><pre>\u037e\u037e\u544a\u8bc9 emacs \u542f\u7528 cscope\n(require &#39;xcscope)\n</pre></div>\n\n<p>\u81f3\u6b64\uff0c\u7528 emacs \u6765\u9605\u8bfb c/c++\u6e90\u4ee3\u7801\u6240\u9700\u8981\u7684\u5de5\u5177\u5305\u90fd\u5b89\u88c5\u597d\uf9ba\uff0c\u5f53\u7136\u7528 emacs \u6765\u5199\u4ee3\u7801\u8c03\u8bd5\u4ee3\u7801\u90fd\u662f\u5f88\u65b9\u4fbf\u7684\uff0c\u4e5f\u6709\u5f88\u591a\u76f8\u5173\u7684\u63d2\u4ef6\uff0c\u4f46\u8fd9\u5df2\uf967\u5728\u672c\u6587\u7684\u8303\u56f4\u4e4b\u5185\uf9ba\u3002</p>\n\n<h1>CSCOPE \u4f7f\u7528\u65b9\u6cd5</h1>\n\n<p>\u4e0b\u9762\u6211\u4eec\u7528 bitvisor \u7684\u6e90\u4ee3\u7801\u4e3a\u4f8b\u5c55\u793a\u4e00\u4e0b\u7528\u8fd9\u5957\u5de5\u5177\u9605\u8bfb\u6e90\u7801\u7684\u5f3a\u5927\u4e4b\u5904\u3002\u9996\u5148\u6211\u4eec\u7528\u914d\u7f6e\u597d\u7684 emacs \u6253\u5f00 vtmain.c \u6587\u4ef6\uff0c\u7136\u540e\u5728\u83dc\u5355\u680f\u91cc\u9009\u62e9 Tools\u00ad&gt;Start Code Browser(ECB)\u6765\u5f00\u542f ECB \uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528 M\u00adx &#39;ecb\u00adactivate \u6765\u5f00\u542f ecb \u3002\u5e76\u4e14\u53ef\u4ee5\u770b\u5230\u83dc\u5355\u680f\u91cc\u51fa\u73b0\uf9baCSCOPE \u7684\u83dc\u5355\uff0c\u4e0b\u9762\u6211\u5c31\u6765\u4e00\u4e00\u4ecb\u7ecd\u4e0b CSCOPE \u63d0\u4f9b\u7684 \u8fd9\u4e9b\u529f\u80fd\u90fd\u6709\u4ec0\u4e48\u4f5c\u7528\u3002</p>\n\n<h2>\u5efa\u7acb\u7d22\u5f15</h2>\n\n<p>\u9996\u5148 CSCOPE \u5bf9\u6e90\u7801\u8fdb\u884c\u5206\u6790\u65f6\u9700\u8981\u5bf9\u8981\u5206\u6790\u7684\u6e90\u7801\u5efa\u7acb\u4e00\u4e2a\u7d22\u5f15\uff0c\u5426\u5219\u5c31\u6ca1\u529e\u6cd5 \u63d0\u4f9b\u8bf8\u5982\u4ee3\u7801\u8df3\u8f6c\u4e4b\u7c7b\u7684\u529f\u80fd\u3002\u901a\u8fc7\u5728\u83dc\u5355\u680f\u9009\u62e9 Cscope\u00ad&gt;Cscope Database\u00ad&gt;Set Initial Dictionary \u8bbe\u7f6e\u4ee3\u7801\u7684\u521d\u59cb\u76ee\u5f55\uff0c\u7136\u540e\u518d\u9009\u62e9 create list of files to index \u5e76\u9009\u62e9\u4e00\u4e2a\u76ee\u5f55\uff0c\u8fd9\u6837 cscope \u5c31\u4f1a\u5bf9\u8be5\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6e90 \u4ee3\u7801\u5efa\u7acb\u7d22\u5f15\uff0c\u4e5f\u5c31\u610f\u5473\u7740\u5728\u4f60\u9009\u62e9\u7684\u8fd9\u4e2a\u76ee\u5f55\u8303\u56f4\u4e4b\u5185\u7684\u6240\u6709\u6e90\u4ee3\u7801\u90fd\u53ef\u4ee5\u5728\u4f60\u9605\u8bfb\u548c\u5206\u6790\u7684\u65f6\u5019\u8fdb\u884c\u53d8\uf97e\u51fd\u6570\u7b49\u5185\u5bb9\u7684\u8df3\u8f6c\u3002</p>\n\n<h2>\u529f\u80fd\u4ecb\u7ecd</h2>\n\n<h3>Find Symbol</h3>\n\n<p>\u6211\u4eec\u4ee5 Find Symbol \u8fd9\u4e2a\u6307\u4ee4\u4e3a\u4f8b\u4ecb\u7ecd\u4e0b CSCOPE \u7684\u4f7f\u7528\uff0c\u5176\u4ed6\u7684\u6307\u4ee4\u548c\u8fd9\u4e2a\u6307\u4ee4\u7684 \u529f\u80fd\u662f\u7c7b\u4f3c\u7684\u3002\u5982\u6587\u5b57\u610f\u601d\u6240\u8ff0\uff0c\u8fd9\u4e2a\u6307\u4ee4\u63d0\u4f9b\u7684\u529f\u80fd\u662f\u5728\u6e90\u4ee3\u7801\u4e2d\u641c\u7d22\u4e00\u4e2a Symbol \uff0c\u8fd9\u4e2a Symbol \u53ef\u4ee5\u7406\u89e3\u4e3a\u53d8\uf97e\uff0c\u51fd\u6570\u540d\u79f0\uff0c\u7c7b\u540d\u7b49\u6709\u610f\u4e49\u7684\u7b26\u53f7\u3002\u901a\u8fc7\u9009 \u4e2d\u60f3\u8981\u67e5\u627e\u7684\u5185\u5bb9\u7136\u540e\u9009\u62e9\u8fd9\u4e2a\u6307\u4ee4\u5c31\u53ef\u4ee5\u5728\u6240\u6709\u6e90\u7801\u4e2d\u641c\u7d22\u9009\u4e2d\u7684\u8fd9\u4e2a\u7b26\u53f7\uf9ba\u3002 \u7136\u540e\u5c31\u4f1a\u770b\u5230\u4e0b\u56fe\u7684\u5185\u5bb9</p>\n\n<p><img src=\"http://img.blog.csdn.net/20151106160845518\" alt=\"function\"></p>\n\n<p>CSCOPE \u7ed9\u51fa\uf9ba\u6240\u6709\u5305\u542b\u8fd9\u4e2a Symbol \u7684\u6587\u4ef6 list \uff0c \u53ea\u8981\u70b9\u51fb\u9f20\u6807\u4e2d\u952e\u5c31\u53ef\u4ee5\u67e5\u770b\u5bf9\u5e94\u7684\u90a3\u884c\u4ee3\u7801\uf9ba\u3002\u5f53\u4f60\u770b\u5b8c\u4ee3\u7801\u60f3\u8981\u56de\u5230\u8df3\u8f6c\u4e4b\u524d\u7684\u90a3\u6bb5\u4ee3\u7801\u53ea\u8981\u9009\u62e9 Cscope \u83dc\u5355\u91cc\u7684 pop mark \u529f\u80fd\u5c31\u597d\uf9ba\u3002\u7c7b\u4f3c\u7684\u529f\u80fd\u6709 Find globaldefinition no prompting, Find text String, Find egrep pattern, Find a file \u7b49\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7\u540d\u5b57\u6765\u5224\u65ad\u529f\u80fd\uff0c\u4f7f\u7528\u65b9\u6cd5\u4e0a\u548c Find Symbol \u662f\u4e00\u6837 \u7684\u3002\u5f53\u7136\u5982\u679c\u5b8c\u5168\u7528\u9f20\u6807\u9009\u62e9\u8fd9\u4e9b\u529f\u80fd\u7684\u8bdd\u6548\u7387\u662f\u975e\u5e38\u4f4e\u4e0b\u7684\uff0c\u6240\u4ee5\u6211\u4eec\u9700\u8981\u5feb \u6377\u952e\u6765\u63d0\u9ad8\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387, Emacs \u672c\u8eab\u4e3a\u8fd9\u4e9b\u529f\u80fd\u5b9a\u4e49\u597d\uf9ba\u4e00\u7ec4\u5feb\u6377\u952e\uff0c\u4f46\u662f\u4f7f \u7528\u8d77\u6765\u4e00\u70b9\u90fd\uf967\u65b9\u4fbf\uff0c\u4ee5 Find Symbol \u4e3a\u4f8b\u4ed6\u7684\u5feb\u6377\u952e\u662f&#39;C\u00adc s s&#39;,\u4e5f\u5c31\u662f\u8bf4\u8981\u6309\u4e0b Control+C \u518d\u6309 s s \u624d\u80fd\u5b8c\u6210\u8fd9\u4e00\u529f\u80fd\uff0c\u6240\u4ee5\u6211\u4eec\u8981\u6539\u9020 Cscope \u7684\u5feb\u6377\u952e\u3002</p>\n\n<h3>\u81ea\u5b9a\u4e49\u5feb\u6377\u952e</h3>\n\n<p>\u5728 emacs \u91cc\u81ea\u5b9a\u4e49\u5feb\u6377\u952e\u662f\u4e00\u4ef6\u5341\u5206\u65b9\u4fbf\u548c\u5feb\u6377\u7684\u4e8b\u60c5,\u53ea\u8981\u6253\u5f00.emacs \u6587\u4ef6\u8fdb\u884c \u8bbe\u7f6e\u5c31\u53ef\u4ee5\uf9ba\uff0c\u8fd9\u91cc\u6211\u7ed9\u51fa\u4e00\u6bb5.emacs \u4e2d\u8bbe\u7f6e\u5feb\u6377\u952e\u7684\u4ee3\u7801</p>\n<div class=\"highlight\"><pre>\u037e\u037e\u5c06 find\u00adthis\u00adfile \u529f\u80fd\u7ed1\u5b9a\u5230 Ctrl+F4 \u4e0a\n(define\u00adkey global\u00admap [(control f4)] &#39;cscope\u00adfind\u00adthis\u00adfile)\n\u037e\u037e\u5c06 find\u00adthis\u00adsymbol \u529f\u80fd\u7ed1\u5b9a\u5230 Ctrl+F5 \u4e0a\n(define\u00adkey global\u00admap [(control f5)] &#39;cscope\u00adfind\u00adthis\u00adsymbol)\n(define\u00adkey global\u00admap [(control f6)] &#39;cscope\u00adfind\u00adthis\u00adtext\u00adstring)\n(define\u00adkey global\u00admap [(control f7)] &#39;cscope\u00adfind\u00adglobal\u00addefinition\u00adno\u00adprompting)\n(define\u00adkey global\u00admap [(control f8)] &#39;cscope\u00adpop\u00admark)\n(define\u00adkey global\u00admap [(control f9)] &#39;cscope\u00adprev\u00adsymbol)\n(define\u00adkey global\u00admap [(control f10)] &#39;cscope\u00adnext\u00adsymbol)\n(define\u00adkey global\u00admap [(control f11)] &#39;cscope\u00adprev\u00adfile)\n(define\u00adkey global\u00admap [(control f12)] &#39;cscope\u00adnext\u00adfile)\n</pre></div>\n\n<p>\u8fd9\u6837\u901a\u8fc7\u4e00\u756a\u8c03\u8bd5\u548c\u9002\u5e94\u4e4b\u540e\u5c31\u80fd\u5f88\u5feb\u7684\u5b66\u4f1a Emacs \u770b\u6e90\u4ee3\u7801\u5566\uff01</p>\n", 
      "date_published": "2015-11-12T01:41:17+00:00", 
      "title": "\u5c06 Emacs \u6253\u9020\u6210\u9605\u8bfb\u6e90\u4ee3\u7801\u7684\u795e\u5668", 
      "id": "https://www.v2ex.com/t/235523"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zilongshanren", 
        "name": "zilongshanren", 
        "avatar": "https://cdn.v2ex.com/gravatar/f6a7787ff0f4bf318b0a9e21c6dea3db?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/235282", 
      "title": "Spacemacs Rocks \u89c6\u9891\u7cfb\u5217", 
      "id": "https://www.v2ex.com/t/235282", 
      "date_published": "2015-11-11T03:19:52+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://github.com/zilongshanren/Spacemacs-rocks/issues/5\" rel=\"nofollow\">https://github.com/zilongshanren/Spacemacs-rocks/issues/5</a>\r<br />\r<br />\u5e0c\u671b\u770b\u5230\u4e2d\u56fd\u6709\u66f4\u591a\u7684\u4eba\u6765\u4e00\u8d77\u5b66\u4e60 Emacs \u3002\r<br />\r<br />Happy hacking"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lukertty", 
        "name": "lukertty", 
        "avatar": "https://cdn.v2ex.com/gravatar/4715c4e141948def776ed9f6ac33deca?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/230272", 
      "title": "Emacs \u81ea\u5df1\u5df2\u7ecf\u5305\u62ec\u4e86\u90a3\u4e48\u591a\u6309\u952e\u7ec4\u5408\uff0c\u65b0\u5199\u7684\u51fd\u6570\u53ea\u80fd\u7ed1\u5b9a\u5230 C-x \u4e0a\u4e86\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/230272", 
      "date_published": "2015-10-22T11:20:38+00:00", 
      "content_html": "<p>\u5230\u5904\u90fd\u662f <code>non-prefix key</code> \uff0c C-h b \u5c31\u6ca1\u627e\u5230\u7a7a\u7684\u4f4d\u7f6e\uff0c\u5927\u5bb6\u662f\u600e\u4e48\u89e3\u51b3\u7684\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Feiox", 
        "name": "Feiox", 
        "avatar": "https://cdn.v2ex.com/avatar/1a88/dd10/39524_large.png?m=1688496787"
      }, 
      "url": "https://www.v2ex.com/t/228235", 
      "title": "\u5728 Mac \u4e0a\u4f7f\u7528 Emacs \u7684 Prelude \u914d\u7f6e\uff0c\u542f\u52a8\u62a5\u9519\uff0c\u6c42\u6559", 
      "id": "https://www.v2ex.com/t/228235", 
      "date_published": "2015-10-15T05:33:11+00:00", 
      "content_html": "<p>\u5728\u7ec8\u7aef\u4e2d\u542f\u52a8\u62a5\u9519\u5982\u4e0b\uff1a</p>\n<div class=\"highlight\"><pre>Warning (initialization): An error occurred while loading `/Users/Feiox/.emacs.d/init.el&#39;:\n\nSymbol&#39;s function definition is void: set-fontset-font\n\nTo ensure normal operation, you should investigate and remove the\ncause of the error in your initialization file.  Start Emacs with\nthe `--debug-init&#39; option to view a complete error backtrace.\n</pre></div>\n\n<p>\u5728 EmacsForMac \u7684 App \u4e2d\u542f\u52a8\uff0c\u62a5\u9519\uff1a</p>\n<div class=\"highlight\"><pre>Warning (initialization): An error occurred while loading `/Users/Feiox/.emacs.d/init.el&#39;:\n\nFile error: http://melpa.org/packages/cider-20151013.1548.tar, Not found\n\nTo ensure normal operation, you should investigate and remove the\ncause of the error in your initialization file.  Start Emacs with\nthe `--debug-init&#39; option to view a complete error backtrace.\n</pre></div>\n\n<p>\u8fd9\u662f\u7531\u4e8e\u4ec0\u4e48\u539f\u56e0\u5462\uff1f<br>\nP.S. \u539f\u59cb\u914d\u7f6e\u6587\u4ef6\u672a\u6539\u52a8\u8fc7</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/vitovan", 
        "name": "vitovan", 
        "avatar": "https://cdn.v2ex.com/avatar/9366/088b/28986_large.png?m=1722822490"
      }, 
      "url": "https://www.v2ex.com/t/224090", 
      "title": "Emacs 24.5 \u4e0d\u517c\u5bb9\u4efb\u4f55\u4e2d\u6587\u8f93\u5165\u6cd5", 
      "id": "https://www.v2ex.com/t/224090", 
      "date_published": "2015-09-27T13:53:00+00:00", 
      "content_html": "<p>\u5148\u770b\u8fd9\u91cc\uff1a<br>\n<a target=\"_blank\" rel=\"nofollow\" href=\"https://lists.gnu.org/archive/html/bug-gnu-emacs/2015-09/msg00356.html\">https://lists.gnu.org/archive/html/bug-gnu-emacs/2015-09/msg00356.html</a></p>\n\n<p>\u6211\u81ea\u4e2a\u513f\u8bd5\u4e86\u4e0b\uff0c iBus \u6216\u662f fcitx \u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u8fd0\u884c\u90fd\u5f88\u6b63\u5e38\uff0c\u552f\u72ec Emacs \u4e0d\u8ba4\u3002</p>\n\n<p>\u6700\u540e\u53ea\u597d\u6539\u7528 eim \u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/izgzhen", 
        "name": "izgzhen", 
        "avatar": "https://cdn.v2ex.com/avatar/5f62/a222/132801_large.png?m=1439467690"
      }, 
      "url": "https://www.v2ex.com/t/213825", 
      "title": "Emacs \u6ce8\u91ca\u7684\u65f6\u5019\u4ee3\u7801\u7740\u8272\u6709\u660e\u663e\u5361\u987f", 
      "id": "https://www.v2ex.com/t/213825", 
      "date_published": "2015-08-17T08:34:18+00:00", 
      "content_html": "<p>\u5c24\u5176\u662f C/C++\uff0c\u8f93\u5165 <code>/*</code> \u540e\u8981\u597d\u4e45\u624d\u80fd\u4e0a\u8272\u3002\u5220\u4e86\u6ce8\u91ca\u4e5f\u597d\u4e45\u624d\u80fd\u91cd\u65b0\u4e0a\u8272\u3002</p>\n\n<p>\u4e0d\u77e5\u9053\u5404\u4f4d\u6709\u6ca1\u6709\u8fd9\u79cd\u95ee\u9898\uff1f\u539f\u56e0\u662f\u4ec0\u4e48\uff1f</p>\n\n<p>\u6211\u7528\u7684\u662f os x \u7684 terminal</p>\n"
    }
  ]
}