{ "version": "https://jsonfeed.org/version/1", "title": "Emacs", "description": "", "home_page_url": "go/emacs", "feed_url": "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": "member/yibie", "name": "yibie", "avatar": "https://cdn.v2ex.com/avatar/a5cd/d4aa/737_large.png?m=1739279632" }, "url": "t/1120182", "title": "\u7ed9 org-zettel-ref-mode \u6dfb\u52a0 AI \u603b\u7ed3\u529f\u80fd", "id": "t/1120182", "date_published": "2025-03-21T08:25:06+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/lcj2class", "name": "lcj2class", "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202" }, "url": "t/1092342", "title": "Emacs 30 \u65b0\u7279\u6027\u9884\u89c8", "id": "t/1092342", "date_published": "2024-11-25T03:28:27+00:00", "content_html": "
\n

https://emacs.liujiacai.net/post/046-emacs-30/

\n
\n" }, { "author": { "url": "member/lcj2class", "name": "lcj2class", "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202" }, "url": "t/953181", "title": "\u300eMade with Emacs\u300f \u535a\u5ba2\u6536\u96c6", "id": "t/953181", "date_published": "2023-07-01T00:25:50+00:00", "content_html": "

\u7f18\u8d77\uff1a https://emacstalk.codeberg.page/post/035-made-with-emacs/

\n

\u6240\u4ee5\u60f3\u7740\u4e0d\u5982\u6536\u96c6\u4e00\u4e0b Made with Emacs \u7684\u535a\u5ba2\u5427\uff0c\u5177\u4f53\u89c1\uff1a

\n\n" }, { "author": { "url": "member/sinboy1988", "name": "sinboy1988", "avatar": "https://cdn.v2ex.com/gravatar/ecef88f6f0d443ccf528ed553d18bba7?s=73&d=retro" }, "url": "t/912024", "title": "\u65b0\u624b\u5411\u95ee\u4e0b\uff0c\u8c03\u8bd5\u7a0b\u5e8f", "id": "t/912024", "date_published": "2023-01-31T11:03:48+00:00", "content_html": "

\u6211\u7528\u7684 doom emacs \uff0c\u4f7f\u7528 lsp-java\n\u7136\u540e\u5728~/.doom.d/config.el \u4e2d\u52a0\u5165\u4e86

\n
(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
\n

M-x dap-debug-edit-template \u6dfb\u52a0\u6a21\u677f

\n
(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
\n

Hello.java

\n
\nSystem.getProperty(\"env\")\n
\n

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

\n" }, { "author": { "url": "member/gridsah", "name": "gridsah", "avatar": "https://cdn.v2ex.com/gravatar/3d139f86f81f6931ce76f9953045e39d?s=73&d=retro" }, "url": "t/850135", "date_modified": "2022-04-29T14:47:39+00:00", "content_html": "

\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

\n
(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
\n

\u8fd9\u662f ~/.emacs.d/lisp/script-org-export-publish.el

\n
;;; need environment\n(package-initialize)\n(load \"~/.emacs.d/init.el\")\n\n;;; publish file\n(org-publish-all)\n
\n

\u8fd9\u662f\u6b63\u5e38\u6e32\u67d3\u51fa\u6765\u7684\uff0c\u6709\u4ee3\u7801\u9ad8\u4eae\u7684 html

\n
<pre class=\"src src-python\"><span style=\"color: #a020f0;\">import</span> csv\n\n<span style=\"color: #a020f0;\">with</span> <span style=\"color: #483d8b;\">open</span>(<span style=\"color: #8b2252;\">'stock.csv'</span>,<span style=\"color: #8b2252;\">'r'</span>) <span style=\"color: #a020f0;\">as</span> fp:\n <span style=\"color: #a0522d;\">reader</span> = csv.reader(fp)\n <span style=\"color: #a0522d;\">titles</span> = <span style=\"color: #483d8b;\">next</span>(reader)\n <span style=\"color: #a020f0;\">for</span> x <span style=\"color: #a020f0;\">in</span> reader:\n <span style=\"color: #a020f0;\">print</span>(x)\n</pre>\n
\n

\u8fd9\u662f emacs --script \u6e32\u67d3\u51fa\u6765\u7684 html:

\n
<pre class=\"src src-python\"><span style=\"font-weight: bold;\">import</span> csv\n\n<span style=\"font-weight: bold;\">with</span> <span style=\"font-weight: bold;\">open</span>(<span style=\"font-style: italic;\">'stock.csv'</span>,<span style=\"font-style: italic;\">'r'</span>) <span style=\"font-weight: bold;\">as</span> fp:\n <span style=\"font-weight: bold; font-style: italic;\">reader</span> = csv.reader(fp)\n <span style=\"font-weight: bold; font-style: italic;\">titles</span> = <span style=\"font-weight: bold;\">next</span>(reader)\n <span style=\"font-weight: bold;\">for</span> x <span style=\"font-weight: bold;\">in</span> reader:\n <span style=\"font-weight: bold;\">print</span>(x)\n</pre>\n
\n

\u6548\u679c\u56fe\u5728 https://emacs-china.org/t/org-emacs-script-org-publish-all/20782

\n

\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

\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": "t/850135" }, { "author": { "url": "member/pythonee", "name": "pythonee", "avatar": "https://cdn.v2ex.com/avatar/4b6e/52b7/29622_large.png?m=1642211709" }, "url": "t/834224", "title": "Emacs \u5728 Windows \u4e0b\u4f53\u9a8c\u5982\u4f55", "id": "t/834224", "date_published": "2022-02-16T06:08:13+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/lcj2class", "name": "lcj2class", "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202" }, "url": "t/819767", "title": "GPG in Emacs", "id": "t/819767", "date_published": "2021-12-03T04:59:58+00:00", "content_html": "https://emacstalk.github.io/post/011/" }, { "author": { "url": "member/lcj2class", "name": "lcj2class", "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202" }, "url": "t/813199", "title": "Emacs 28 \u65b0\u7279\u6027\u4ecb\u7ecd", "id": "t/813199", "date_published": "2021-11-05T01:46:10+00:00", "content_html": "

https://emacstalk.github.io/post/009/

\n

\u7f51\u7edc\u4e0d\u597d\u7684\u53ef\u4ee5\u8bbf\u95ee\u4e0b\u9762\u94fe\u63a5\uff1a

\n\n" }, { "author": { "url": "member/darksword21", "name": "darksword21", "avatar": "https://cdn.v2ex.com/avatar/eb20/d71c/380437_large.png?m=1608826215" }, "url": "t/795959", "date_modified": "2021-08-15T23:54:08+00:00", "content_html": "

\u539f\u6587

\n

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

\n

Table of Contents

\n
    \n
  1. \u5f00\u542f Emacs \u81ea\u5e26\u7684\u62ec\u53f7\u5339\u914d
  2. \n
  3. \u5b89\u88c5 straight.el
  4. \n
  5. \u8bbe\u7f6e major-mode
  6. \n
  7. \u4ee3\u7801\u8865\u5168\u3001\u8df3\u8f6c
  8. \n
  9. \u603b\u7ed3
  10. \n
\n

\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 Emacs builtin modes \u529f\u80fd\u4ecb\u7ecd\u3002

\n

\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

\n\n

\n

\u5f00\u542f Emacs \u81ea\u5e26\u7684\u62ec\u53f7\u5339\u914d

\n

Emacs \u81ea\u5e26\u7684 electric-pair-mode \u5df2\u7ecf\u8db3\u591f\u597d\u7528\uff0c\u53ea\u4e0d\u8fc7\u9ed8\u8ba4\u6ca1\u6709\u5f00\u542f\u3002

\n
(setq electric-pair-inhibit-predicate 'electric-pair-conservative-inhibit)\n(add-hook 'prog-mode-hook #'electric-pair-mode)\n
\n

\n

\u5b89\u88c5 straight.el

\n

\u5728\u8fdb\u884c\u4e0b\u4e00\u6b65\u914d\u7f6e\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u5148\u5b89\u88c5 straight.el \uff0c\u56e0\u4e3a\u6211\u4eec\u8981\u7528\u5b83\u6765\u5b89\u88c5\u5176\u4ed6\u7684\u7b2c\u4e09\u65b9\u5305\u3002

\n
(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
\n

straight.el \u5728\u5b89\u88c5\u5176\u4ed6\u5305\u65f6\u9700\u8981\u8bbf\u95ee github\uff0c\u5982\u679c\u4f60\u7684\u7f51\u7edc\u4e0d\u591f \u7eff\u8272 \u54b3\u54b3\u2026

\n

\u53ef\u4ee5\u5c06\u5b89\u88c5\u65f6\u7684 github.com \u66ff\u6362\u4e3a github.com.cnpmjs.org \u3002

\n
(defun +set-github-mirror (oldfunc &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
\n

\n

\u8bbe\u7f6e major-mode

\n

\u5b89\u88c5 go-mode.el \uff0c\u5176\u4e3a\u6211\u4eec\u5728\u8fdb\u884c Golang \u5f00\u53d1\u65f6\u63d0\u4f9b\u4e86\u76f8\u5f53\u591a\u7684\u5e38\u7528\u529f\u80fd\u3002

\n
(straight-use-package 'go-mode)\n
\n

\u8bbe\u7f6e\u7f29\u8fdb\u3002

\n
(setq-default tab-width 4\n indent-tabs-mode nil)\n
\n

\u4f7f\u7528 goimports \u4ee3\u66ff gofmt \u5728\u6587\u4ef6\u4fdd\u5b58\u540e\u81ea\u52a8\u683c\u5f0f\u5316\u6211\u4eec\u7684\u4ee3\u7801

\n
(setq gofmt-command \"goimports\")\n(add-hook 'before-save-hook #'gofmt-before-save)\n
\n

\u5982\u679c\u4f60\u4f7f\u7528\u7684\u662f MacOS \u7cfb\u7edf\uff0c\u90a3\u4e48\u9700\u8981\u4f7f\u7528 exec-path-from-shell \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

\n
(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
\n

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 flymake-mode \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

\n
(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
\n

\u8fd9\u6837\u5c31\u53ef\u4ee5\u4f7f\u7528 M-n \uff0c M-p \u5728\u9519\u8bef\u4e4b\u95f4\u79fb\u52a8\uff0c\u7136\u540e\u628a go-mode \u81ea\u52a8\u5f39\u51fa\u7684\u8fd9\u4e2a buffer \u5173\u6389\u3002

\n
(setq gofmt-show-errors nil)\n
\n

\n

\u4ee3\u7801\u8865\u5168\u3001\u8df3\u8f6c

\n

\u5b89\u88c5 company-mode \uff0c\u5728\u8865\u5168\u65f6\u53ef\u4ee5\u4f7f\u7528 C-p C-n \u6216\u8005 TAB \u8fdb\u884c\u9009\u62e9\uff0c\u56de\u8f66\u5b8c\u6210\u8865\u5168\u3002

\n
(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
\n

\u5b89\u88c5 eglot \uff0c\u4e00\u4e2a Emacs \u4e2d\u8f7b\u91cf\u7ea7\u7684 LSP \u5ba2\u6237\u7aef\uff0c\u5728 go-mode \u4e2d\u542f\u7528\u3002

\n
(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
\n

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

\n
\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
\n

\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 go.mod \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

\n
(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
\n

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

\n
(setq eldoc-idle-dealy 2)\n
\n

\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 .dir-locals.el \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 yasnippet \uff0c\u6240\u4ee5\u6211\u4eec\u4e5f\u9700\u8981\u5b89\u88c5\u5b83\u3002

\n
(straight-use-package 'yasnippet)\n(add-hook 'prog-mode-hook #'yas-minor-mode)\n
\n

\u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e2d\u521b\u5efa .dir-locals.el \u3002

\n
((go-mode\n . ((eglot-workspace-configuration\n . ((:gopls . (:usePlaceholders t)))))))\n
\n

\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

\n
(setq-default eglot-workspace-configuration\n '((gopls\n (usePlaceholders . t))))\n
\n

\u53e6\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684 tip \u662f\u5982\u679c\u4f60\u7684\u9879\u76ee\u4f7f\u7528\u4e86 Build Constraints \uff0c\u4e5f\u53ef\u4ee5\u9488\u5bf9\u9879\u76ee\u5355\u72ec\u4fee\u6539 gopls \u7684\u914d\u7f6e\u4f7f\u4ee3\u7801\u7684\u8865\u5168\u4e0e\u8df3\u8f6c\u5b8c\u7f8e\u7684\u5de5\u4f5c\u3002

\n
((go-mode\n . ((eglot-workspace-configuration\n . ((:gopls . (:buildFlags [\"-tags=debug\"])))))))\n
\n

\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

\n

\n

\u603b\u7ed3

\n

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 project-find-file project-search project-switch-to-buffer \uff09\u3002

\n

\u5728\u5b89\u88c5\u4e86 eglot \u3001company-mode \u540e\u5b9e\u73b0\u4e86\u4ee3\u7801\u7684\u8865\u5168\u3001\u8df3\u8f6c\u7b49\u529f\u80fd\uff08 xref-find-definitions xref-find-references \uff09\uff0c\u540c\u65f6 eglot \u914d\u5408\u5185\u7f6e\u7684 flymake \u4e5f\u4e3a\u6211\u4eec\u63d0\u4f9b\u4e86\u9759\u6001\u68c0\u67e5\u3002

\n

\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

\n

\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

\n", "date_published": "2021-08-15T17:02:27+00:00", "title": "Emacs Golang \u5f00\u53d1\u73af\u5883\u914d\u7f6e", "id": "t/795959" }, { "author": { "url": "member/lcj2class", "name": "lcj2class", "avatar": "https://cdn.v2ex.com/avatar/b23f/7246/58407_large.png?m=1766834202" }, "url": "t/794420", "title": "[Emacs Tips] \u4f7f\u7528 Dired \u5feb\u901f\u79fb\u52a8\u6587\u4ef6", "id": "t/794420", "date_published": "2021-08-08T08:38:59+00:00", "content_html": "
\n

\u5173\u6ce8 EmacsTalk \u6536\u83b7\u66f4\u591a Emacs \u4f7f\u7528\u6280\u5de7

\n
\n

\u5728\u7b2c\u4e94\u671f\u8282\u76ee\u91cc\u63a8\u8350\u8fc7 Raycast \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 script-commands \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

\n

\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

\n

\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\u8fd9\u4e2a\u95ee\u9898\uff0c\u53d1\u73b0\u4e00\u4e2a\u597d\u65b9\u5f0f\uff0c\u6d41\u7a0b\u5982\u4e0b\uff1a

\n
    \n
  1. \u6253\u5f00\u4e24\u4e2a Dired \u7a97\u53e3\uff0c\u5206\u522b\u5bf9\u5e94 src \u76ee\u5f55\u4e0e dst \u76ee\u5f55
  2. \n
  3. \u5728 src \u91cc mark \u6587\u4ef6\u540e\uff0c\u6309 C \u62f7\u8d1d\u65f6\uff0c\u63d0\u793a\u7684\u76ee\u5f55\u9ed8\u8ba4\u5c31\u662f dst
  4. \n
  5. \u76f4\u63a5\u56de\u8f66\u5373\u53ef\u590d\u5236\u6587\u4ef6
  6. \n
\n

\u8bbe\u7f6e (setq dired-dwim-target t) \u5373\u53ef\u4f7f\u7528\u4e0a\u8ff0\u529f\u80fd\u3002Emacs is amazing \uff01

\n

\"img\"

\n" }, { "author": { "url": "member/vevlins", "name": "vevlins", "avatar": "https://cdn.v2ex.com/avatar/677c/39d0/274232_large.png?m=1711777186" }, "url": "t/662083", "title": "spacemacs \u5982\u4f55\u8ba9\u5f53\u524d buffer \u4e2d\u7684\u5185\u5bb9\u6c34\u5e73\u5c45\u4e2d\uff1f", "id": "t/662083", "date_published": "2020-04-13T12:16:49+00:00", "content_html": "" }, { "author": { "url": "member/ginjedoad", "name": "ginjedoad", "avatar": "https://cdn.v2ex.com/gravatar/db9c411131417874d03d1fa859c040da?s=73&d=retro" }, "url": "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": "t/654921", "date_published": "2020-03-21T11:01:04+00:00", "content_html": "

\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.

\n" }, { "author": { "url": "member/sandboxcn", "name": "sandboxcn", "avatar": "https://cdn.v2ex.com/gravatar/456a42507e9817b8ba2ce179fb87b997?s=73&d=retro" }, "url": "t/549716", "date_modified": "2019-03-28T14:45:50+00:00", "content_html": "

\u5df2\u7ecf\u8bbe\u7f6e\u4e0b\u6c89

\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": "t/549716" }, { "author": { "url": "member/frylkrttj", "name": "frylkrttj", "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594" }, "url": "t/533833", "title": "emacs \u81ea\u52a8\u5b89\u88c5 package \u5305", "id": "t/533833", "date_published": "2019-02-11T01:44:08+00:00", "content_html": "

\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

\n
\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 &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-<= min-version v)) versions)\n (package-install package)\n (if no-refresh\n (error \"No version of %s >= %S is available\" package min-version)\n (package-refresh-contents)\n (require-package package min-version t))))))\n\n(defun maybe-require-package (package &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
\n" }, { "author": { "url": "member/frylkrttj", "name": "frylkrttj", "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594" }, "url": "t/533554", "title": "emacs \u600e\u4e48\u63a7\u5236\u5149\u6807", "id": "t/533554", "date_published": "2019-02-09T04:49:39+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/frylkrttj", "name": "frylkrttj", "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594" }, "url": "t/527797", "title": "\u600e\u4e48\u77e5\u9053 emacs \u542f\u7528\u4e86\u90a3\u51e0\u4e2a\u5b89\u88c5\u5305\uff1f", "id": "t/527797", "date_published": "2019-01-17T01:47:09+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/frylkrttj", "name": "frylkrttj", "avatar": "https://cdn.v2ex.com/avatar/712c/88e0/376960_large.png?m=1547263594" }, "url": "t/526779", "title": "\u6e90\u66f4\u65b0\u540e\u4e0d\u80fd\u4fdd\u5b58\u5417\uff1f", "id": "t/526779", "date_published": "2019-01-14T02:33:29+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/Tancred", "name": "Tancred", "avatar": "https://cdn.v2ex.com/gravatar/9c8ce5184e4483990a6c4ee8a023c184?s=73&d=retro" }, "url": "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": "t/452562", "date_published": "2018-05-06T09:01:07+00:00", "content_html": "

\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

\n

\u6211\u5728 Emacs \u4e0b\u65b0\u5efa\u7684\u6587\u4ef6\uff0cTab \u5c31\u662f 4 \u4e2a\u5b57\u7b26\u7684\u3002

\n

\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

\n" }, { "author": { "url": "member/dsdshcym", "name": "dsdshcym", "avatar": "https://cdn.v2ex.com/avatar/b71e/cc36/68157_large.png?m=1410088771" }, "url": "t/426033", "date_modified": "2018-01-26T00:57:31+00:00", "content_html": "

\u6700\u8fd1\u4ece\u81ea\u5df1\u7684\u914d\u7f6e\u8fc1\u79fb\u5230\u4e86 doom-emacs\uff0c\u5206\u4eab\u4e00\u4e0b\u5fc3\u8def\u5386\u7a0b\u3002

\n

http://dsdshcym.github.io/blog/2018/01/22/compare-doom-emacs-spacemacs-vanilla-emacs/

\n", "date_published": "2018-01-26T00:56:44+00:00", "title": "Compare Doom-emacs, Spacemacs, and vanilla Emacs", "id": "t/426033" }, { "author": { "url": "member/linux40", "name": "linux40", "avatar": "https://cdn.v2ex.com/avatar/06d5/42e3/107266_large.png?m=1604939410" }, "url": "t/422628", "title": "Emacs \u8865\u5168\u5934\u6587\u4ef6\u7684\u90a3\u4e2a company-c-header \u6709\u4eba\u7528\u8fc7\u5417\uff1f", "id": "t/422628", "date_published": "2018-01-13T07:59:10+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/ycz0926", "name": "ycz0926", "avatar": "https://cdn.v2ex.com/avatar/8736/3191/212962_large.png?m=1568379868" }, "url": "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
https://github.com/jorgenschaefer/elpy/issues/1230\r
\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": "t/416752" }, { "author": { "url": "member/haolly", "name": "haolly", "avatar": "https://cdn.v2ex.com/avatar/7fbb/006d/39068_large.png?m=1699181684" }, "url": "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": "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
\u8fd9\u5565\u548b\u6ef4\u4e86\u3002\u3002\u3002\u3002\u6362\u4e86\u597d\u51e0\u4e2a\u7248\u672c\u4e86\u90fd\u662f\u4e00\u6837\u7684\u5361\r
\u8bd5\u8fc7\u7684\u7248\u672c\uff1a\r
https://github.com/vigou3/emacs-modified-windows\r
https://www.gnu.org/software/emacs/download.html#windows\r
https://ntemacs.sourceforge.io/\r
https://chocolatey.org/packages?q=emacs \u91cc\u9762\u7684\u4e24\u4e2a\u90fd\u8bd5\u8fc7\u4e86\r
\r
\u662f\u4e0d\u662f\u6211\u7535\u8111\u66f4\u65b0\u592a\u9891\u7e41\u4e86\uff1f\uff1f\r
\u6211\u8fd9\u51e0\u5929\u521a\u521a\u66f4\u65b0\u4e86 win10 \u5230 1709\uff0cbuild 16299 \u4e86" }, { "author": { "url": "member/TangMonk", "name": "TangMonk", "avatar": "https://cdn.v2ex.com/avatar/c5f1/ae9e/55793_large.png?m=1644466105" }, "url": "t/405071", "date_modified": "2017-11-09T12:51:49+00:00", "content_html": "

\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

\n

http://orgmode.org/features.html

\n", "date_published": "2017-11-09T12:49:19+00:00", "title": "emacs \u7684 org mode \u597d\u5f3a\u5927\u554a", "id": "t/405071" }, { "author": { "url": "member/Tancred", "name": "Tancred", "avatar": "https://cdn.v2ex.com/gravatar/9c8ce5184e4483990a6c4ee8a023c184?s=73&d=retro" }, "url": "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": "t/400753", "date_published": "2017-10-25T14:10:42+00:00", "content_html": "

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

\n

\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

\n

\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

\n" }, { "author": { "url": "member/seagle0128", "name": "seagle0128", "avatar": "https://cdn.v2ex.com/gravatar/ed699e01710921ff93df7d9d7532c970?s=73&d=retro" }, "url": "t/389925", "date_modified": "2017-09-11T16:29:35+00:00", "content_html": "

\u5b89\u5229\u4e00\u4e2a\u81ea\u5df1\u7684 Emacs \u914d\u7f6e\uff1aCentaur Emacs\u3002

\n

https://github.com/seagle0128/.emacs.d

\n

\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 :)

\n

\"Main\"

\n

\"Programming\"

\n

\"Search\"

\n

\"Magit\"

\n", "date_published": "2017-09-11T16:27:40+00:00", "title": "\u4e0d\u8c08 Spacemacs\uff0c\u53ea\u8c08 Centaur Emacs", "id": "t/389925" }, { "author": { "url": "member/Seymer", "name": "Seymer", "avatar": "https://cdn.v2ex.com/avatar/4b7b/0c45/112138_large.png?m=1773067990" }, "url": "t/370724", "date_modified": "2017-06-24T00:49:29+00:00", "content_html": "\r
Emacs-24.5 \u5df2\u7ecf\u5378\u8f7d\u6389\u4e86\uff0c\u4e3a\u4ec0\u4e48\u4ecd\u663e\u793a\u5df2\u5b89\u88c5\uff1f\r
\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
\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": "t/370724" }, { "author": { "url": "member/ding3my", "name": "ding3my", "avatar": "https://cdn.v2ex.com/gravatar/4f3333ac8823d6017577e99aabf68ada?s=73&d=retro" }, "url": "t/348011", "title": "emacs \u7684 dired \u6a21\u5f0f\u6709\u5feb\u901f\u5207\u6362\u76ee\u5f55\u7684\u65b9\u6848\u6216\u63d2\u4ef6\u4e48\uff1f", "id": "t/348011", "date_published": "2017-03-16T12:03:03+00:00", "content_html": "

\u6c42\u666e\u53ca\u3002

\n" }, { "author": { "url": "member/Crossin", "name": "Crossin", "avatar": "https://cdn.v2ex.com/avatar/3216/f719/45328_large.png?m=1378992167" }, "url": "t/346066", "title": "\u7528 emacs \u7684\uff0c\u5c0f\u6307\u4f24\u4e0d\u8d77\u554a", "id": "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
\r
\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
\r
PS \uff1a ctrl \u88ab\u66ff\u6362\u5230\u4e86 caps lock \u4e0a" }, { "author": { "url": "member/megatron", "name": "megatron", "avatar": "https://cdn.v2ex.com/avatar/f5b5/a18a/166167_large.png?m=1459676747" }, "url": "t/306863", "date_modified": "2016-09-18T05:27:22+00:00", "content_html": "http://www.gnu.org/software/emacs/", "date_published": "2016-09-17T23:44:03+00:00", "title": "emacs25.1 \u53d1\u5e03\u4e86", "id": "t/306863" }, { "author": { "url": "member/ecloud", "name": "ecloud", "avatar": "https://cdn.v2ex.com/avatar/c430/bf33/151087_large.png?m=1716871651" }, "url": "t/304101", "title": "\u7528 Emacs \u505a PostgreSQL \u89e3\u91ca\u5668\u4e00\u4e8b\u4e0d\u660e", "id": "t/304101", "date_published": "2016-09-05T09:58:43+00:00", "content_html": "

\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

\n

\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

\n

\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

\n
qubeon=# ?column?\n----------\n 1\n(1 row)\n\nqubeon=# select 1;\n ?column?\n----------\n 1\n(1 row)\n
\n

\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

\n
qubeon=# oid_user_id | user_mobile\n----------------------------------+-------------\n c3b41eca4a0b46ba8d70de80a36eed27 | 134579003\n b1e09b60d2d648a3a0f7d61a579a0a08 | 974579099\n c622af97e5734c79a64fcf674a52f6c6 | 134579005\n
\n

\u683c\u5f0f\u5168\u6bc1\u4e86\u554a

\n" }, { "author": { "url": "member/y", "name": "y", "avatar": "https://cdn.v2ex.com/avatar/bbec/daa1/32220_large.png?m=1359955801" }, "url": "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": "t/303837" }, { "author": { "url": "member/LukeXuan", "name": "LukeXuan", "avatar": "https://cdn.v2ex.com/gravatar/f437e63494863b2726d85aa002acff72?s=73&d=retro" }, "url": "t/299935", "title": "melpa down", "id": "t/299935", "date_published": "2016-08-17T08:04:02+00:00", "content_html": "

\u6628\u5929 melpa down \u4e86\u534a\u5929\u6ca1\u6709\u4eba\u8bf4\u561b\n\u770b\u8d77\u6765 V2EX \u7528\u6237\u4e0d\u662f\u5f88\u591a

\n

spacemacs \u60f3\u88c5\u4e2a php layer \u4e00\u76f4\u62a5\u9519\u7ed3\u679c\u53d1\u73b0\u4e0d\u662f\u6211\u7684\u9505

\n" }, { "author": { "url": "member/aborn", "name": "aborn", "avatar": "https://cdn.v2ex.com/avatar/6e23/8e67/143008_large.png?m=1446989240" }, "url": "t/288153", "title": "v2ex-mode\uff0c\u5728 emacs \u4e0b\u8bbf\u95ee V \u7ad9", "id": "t/288153", "date_published": "2016-06-24T14:31:09+00:00", "content_html": "

\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
\n\u9879\u76ee\u94fe\u63a5\uff1a https://github.com/aborn/v2ex-mode
\n\u4e0a\u56fe\uff1a\n\"\"

\n

\u4e0d\u8fc7\u7531\u4e8e V \u7ad9\u5f00\u653e\u7684 API \u53ea\u6709\uff1a\u6700\u70ed\u4e3b\u9898\u548c\u6700\u65b0\u4e3b\u9898
\n\u6240\u4ee5\u53ea\u80fd\u67e5\u770b\u8fd9\u4e24\u4e2a topic \u7684\u5185\u5bb9\u3002
\n\u53c2\u8003\uff1a http://v2ex.com/p/7v9TEc53

\n" }, { "author": { "url": "member/XiaST", "name": "XiaST", "avatar": "https://cdn.v2ex.com/gravatar/1f77b78f0b1ce117785aee4a1524d084?s=73&d=retro" }, "url": "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": "t/280074", "date_published": "2016-05-20T08:56:56+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/277308", "title": "GNU Emacs \u7684\u65b0\u7f51\u7ad9", "id": "t/277308", "date_published": "2016-05-09T04:19:06+00:00", "content_html": "http://www.gnu.org/software/emacs/index.html" }, { "author": { "url": "member/raawaa", "name": "raawaa", "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950" }, "url": "t/276612", "title": "Emacs \u914d\u5408\u4f7f\u7528 ibus \u8f93\u5165\u6cd5\u7684\u4e00\u4e2a\u95ee\u9898", "id": "t/276612", "date_published": "2016-05-05T12:19:29+00:00", "content_html": "

\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~/.xprofile\u4e2d\u6dfb\u52a0ibus-daemon -d -x\u3002\u4e4b\u540e\u5c31\u90fd\u6b63\u5e38\u4e86\u3002

\n" }, { "author": { "url": "member/XiaST", "name": "XiaST", "avatar": "https://cdn.v2ex.com/gravatar/1f77b78f0b1ce117785aee4a1524d084?s=73&d=retro" }, "url": "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": "t/276241", "date_published": "2016-05-04T05:48:17+00:00", "content_html": "" }, { "author": { "url": "member/truehyp", "name": "truehyp", "avatar": "https://cdn.v2ex.com/gravatar/ed3ccca8d87f179bb5120c4e9d12836b?s=73&d=retro" }, "url": "t/271387", "title": "\u5173\u4e8e org-mode 8 \u5bfc\u51fa html \u7684\u4e00\u4e2a\u95ee\u9898", "id": "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
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
\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
<div id="org-div-home-and-up">\r
<a accesskey="H" href=""> HOME </a>\r
\r
\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": "member/raawaa", "name": "raawaa", "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950" }, "url": "t/260099", "title": "\u5728 emacsclient \u4e2d\u5e94\u7528\u4e2d\u6587\u5b57\u4f53\u8bbe\u7f6e", "id": "t/260099", "date_published": "2016-03-01T02:14:22+00:00", "content_html": "

daemon \u6a21\u5f0f\u4e0b\u7528emacsclient -c\u53d1\u73b0\u5b57\u4f53\u8bbe\u7f6e\u6ca1\u6709\u751f\u6548\uff0c\u6298\u817e\u4e00\u756a\u4e4b\u540e\u53d1\u73b0\u5982\u4e0b\u65b9\u6cd5\uff1a

\n
;;; \u8bbe\u7f6e\u4e2d\u6587\u5b57\u4f53\n(defun my-apply-font ()\n (set-default-font "Consolas")\n (set-fontset-font "fontset-default" 'chinese-gbk "\u5fae\u8f6f\u96c5\u9ed1")\n\n (setq face-font-rescale-alist '(("\u5b8b\u4f53" . 1.2)\n ("\u5fae\u8f6f\u96c5\u9ed1" . 1.1)\n )))\n(my-apply-font)\n;;; \u4f7f\u5b57\u4f53\u8bbe\u7f6e\u5e94\u7528\u5230 client \u4e2d\n(add-hook 'after-make-frame-functions\n (lambda (frame)\n (select-frame frame)\n (my-apply-font)))\n
\n" }, { "author": { "url": "member/wlwood", "name": "wlwood", "avatar": "https://cdn.v2ex.com/gravatar/12038866f3a74624c9420adf690c1dc2?s=73&d=retro" }, "url": "t/253996", "date_modified": "2016-01-28T06:36:56+00:00", "content_html": "

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

\n", "date_published": "2016-01-28T06:34:19+00:00", "title": "emacs \u663e\u793a\u51fa tab \u952e", "id": "t/253996" }, { "author": { "url": "member/hick", "name": "hick", "avatar": "https://cdn.v2ex.com/avatar/d4be/5395/48453_large.png?m=1383290405" }, "url": "t/252788", "title": "Emacs 25.1 \u5373\u5c06\u652f\u6301\u5185\u5d4c webkit \u6d4f\u89c8\u5668", "id": "t/252788", "date_published": "2016-01-23T02:19:13+00:00", "content_html": "

\u54c8\u54c8\u54c8, \u4e00\u822c\u81ea\u5df1\u4eba\u4e0d\u8bf4\u54b1 Emacs \u662f\u4e2a\u64cd\u4f5c\u7cfb\u7edf...

\n\n

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

\n\n

\u76f8\u5173\u90ae\u4ef6\u5217\u8868\u8ba8\u8bba\u53c2\u89c1 http://thread.gmane.org/gmane.emacs.devel/196096/

\n\n

\u4e0d\u4e86\u89e3 XWidgets \u610f\u5473\u7740\u4ec0\u4e48\u7684\u53ef\u4ee5\u770b\u770b\u8fd9\u91cc https://www.emacswiki.org/emacs/EmacsXWidgets

\n\n

\u66f4\u591a\u8be6\u60c5\u53c2\u89c1 http://mp.weixin.qq.com/s?__biz=MzAwOTIxMjg0NQ==&mid=406266766&idx=1&sn=cf6a381445deb3eb5b530f9df72ffd99&scene=0 \u6216\u8005\u8fd9\u91cc http://emacsist.com/10692

\n" }, { "author": { "url": "member/raawaa", "name": "raawaa", "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950" }, "url": "t/249874", "title": "Emacs \u5206\u522b\u8bbe\u7f6e\u4e2d\u82f1\u6587\u5b57\u4f53\u53ca org-mode \u8868\u683c\u5bf9\u9f50", "id": "t/249874", "date_published": "2016-01-11T06:20:40+00:00", "content_html": "

\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

\n
; ~/.emacs\n\n(set-default-font "Consolas")\n(set-fontset-font "fontset-default" 'chinese-gbk "\u5fae\u8f6f\u96c5\u9ed1")\n\n(setq face-font-rescale-alist '(("\u5b8b\u4f53" . 1.2)\n ("\u5fae\u8f6f\u96c5\u9ed1" . 1.1)\n ))\n
\n" }, { "author": { "url": "member/raawaa", "name": "raawaa", "avatar": "https://cdn.v2ex.com/avatar/2e4b/0a43/125815_large.png?m=1650534950" }, "url": "t/246035", "title": "\u7ec8\u4e8e\u641e\u5b9a\u4e86\u65b0\u5e06\u65b0\u95fb\u7ec4", "id": "t/246035", "date_published": "2015-12-25T03:23:45+00:00", "content_html": "

\u65b0\u5e06\u7684\u5b57\u7b26\u7f16\u7801\u771f\u662f\u633a\u96be\u641e\u7684\u3002

\n\n

\"emacs_gnus.png\"

\n" }, { "author": { "url": "member/tcstory", "name": "tcstory", "avatar": "https://cdn.v2ex.com/avatar/b206/19a0/78971_large.png?m=1462597435" }, "url": "t/239928", "title": "\u9047\u5230 symbol's value as variable is void", "id": "t/239928", "date_published": "2015-11-30T02:14:33+00:00", "content_html": "

\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(global-set-key (kbd "C-x g") \u2019 magit-status),\u7ed3\u679c\u5374\u9047\u5230\u4e86\u4e0a\u9762\u63d0\u5230\u7684\u95ee\u9898,\u8fd9\u5230\u5e95\u662f\u8fd9\u4e48\u56de\u4e8b\u5462?
\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

\n
(with-eval-after-load 'company\n (add-to-list 'company-backends 'company-tern))\n
\n\n

\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.

\n\n

el-get \u7684\u914d\u7f6e\u5982\u4e0b

\n
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")\n\n (unless (require 'el-get nil 'noerror)\n (with-current-buffer\n (url-retrieve-synchronously\n "https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el")\n (goto-char (point-max))\n (eval-print-last-sexp)))\n\n (add-to-list 'el-get-recipe-path "~/.emacs.d/el-get-user/recipes")\n (el-get 'sync)\n
\n" }, { "author": { "url": "member/hikkikuma1991", "name": "hikkikuma1991", "avatar": "https://cdn.v2ex.com/avatar/9eba/7a6f/139644_large.png?m=1468285827" }, "url": "t/235523", "date_modified": "2015-11-12T01:45:51+00:00", "content_html": "

Start

\n\n

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->Emacs Tutorial(choose language)\u8fdb\u884c\u5b66\u4e60\u3002

\n\n

\u5c06 Emacs \u6253\u9020\u6210\u8212\u9002\u7684\u4ee3\u7801\u9605\u8bfb\u5668

\n\n

\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

\n\n

CEDET

\n\n

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

\n\n

ECB

\n\n

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
\n\u4e2a\u4ee3\u7801\u6d4f\u89c8\u5668\u3002\u4f7f\u7528\uf9baECB \u4e4b\u540e\u7684\u6548\u679c\u53ef\u89c1\u4e0b\u56fe\u3002
\n\"ecb\"

\n\n

CSCOPE

\n\n

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

\n\n

\u5b89\u88c5

\n\n

\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

\n\n

Emacs \u7684\u63d2\u4ef6\u914d\u7f6e

\n\n

\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

\n\n

ECB \u7684\u5b89\u88c5

\n\n

https://github.com/alexott/ecb \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

\n
\u037e\u037e\u5c06 ECB \u7684\u8def\u5f84\u6dfb\u52a0\u5230\u8bfb\u53d6\u5217\u8868\u4e2d\n(add\u00adto\u00adlist 'load\u00adpath "/home/augustus/.emacs.d/ecb\u00admaster")\n\u037e\u037e\u544a\u8bc9 emacs \u542f\u7528 ecb\n(require 'ecb)\n
\n\n

\u4fdd\u5b58 emacs \u914d\u7f6e\u6587\u4ef6\u5e76\u91cd\u65b0\u542f\u52a8 emacs \u5c31\u53ef\u4ee5\u5728\u83dc\u5355\u680f\u7684 Tools\u00ad>Start Code Browser \u6253\u5f00 ecb\uf9ba\u3002

\n\n

CSCOPE \u7684\u5b89\u88c5

\n\n

\u9996\u5148\u8981\u5728\u7cfb\u7edf\u4e0a\u5b89\u88c5 CSCOPE

\n
sudo apt\u00adget install cscope\n
\n\n

\u7136\u540e\u53bb CSCOPE \u7684\u5b98\u7f51 http://cscope.sourceforge.net/ \u4e0b\u8f7d\u6e90\u7801\u5305\uff0c\u5e76\u5c06\u5176\u4e2d\u7684 xcscope.el \u62f7\u8d1d\u5230
\nloadpath \u5305\u542b\u7684\u76ee\u5f55\u91cc\u3002\u5e76\u5728.emacs \u91cc\u9762\u52a0\u4e0a

\n
\u037e\u037e\u544a\u8bc9 emacs \u542f\u7528 cscope\n(require 'xcscope)\n
\n\n

\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

\n\n

CSCOPE \u4f7f\u7528\u65b9\u6cd5

\n\n

\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>Start Code Browser(ECB)\u6765\u5f00\u542f ECB \uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528 M\u00adx '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

\n\n

\u5efa\u7acb\u7d22\u5f15

\n\n

\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>Cscope Database\u00ad>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

\n\n

\u529f\u80fd\u4ecb\u7ecd

\n\n

Find Symbol

\n\n

\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

\n\n

\"function\"

\n\n

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'C\u00adc s s',\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

\n\n

\u81ea\u5b9a\u4e49\u5feb\u6377\u952e

\n\n

\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

\n
\u037e\u037e\u5c06 find\u00adthis\u00adfile \u529f\u80fd\u7ed1\u5b9a\u5230 Ctrl+F4 \u4e0a\n(define\u00adkey global\u00admap [(control f4)] '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)] 'cscope\u00adfind\u00adthis\u00adsymbol)\n(define\u00adkey global\u00admap [(control f6)] 'cscope\u00adfind\u00adthis\u00adtext\u00adstring)\n(define\u00adkey global\u00admap [(control f7)] 'cscope\u00adfind\u00adglobal\u00addefinition\u00adno\u00adprompting)\n(define\u00adkey global\u00admap [(control f8)] 'cscope\u00adpop\u00admark)\n(define\u00adkey global\u00admap [(control f9)] 'cscope\u00adprev\u00adsymbol)\n(define\u00adkey global\u00admap [(control f10)] 'cscope\u00adnext\u00adsymbol)\n(define\u00adkey global\u00admap [(control f11)] 'cscope\u00adprev\u00adfile)\n(define\u00adkey global\u00admap [(control f12)] 'cscope\u00adnext\u00adfile)\n
\n\n

\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

\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": "t/235523" }, { "author": { "url": "member/zilongshanren", "name": "zilongshanren", "avatar": "https://cdn.v2ex.com/gravatar/f6a7787ff0f4bf318b0a9e21c6dea3db?s=73&d=retro" }, "url": "t/235282", "title": "Spacemacs Rocks \u89c6\u9891\u7cfb\u5217", "id": "t/235282", "date_published": "2015-11-11T03:19:52+00:00", "content_html": "https://github.com/zilongshanren/Spacemacs-rocks/issues/5\r
\r
\u5e0c\u671b\u770b\u5230\u4e2d\u56fd\u6709\u66f4\u591a\u7684\u4eba\u6765\u4e00\u8d77\u5b66\u4e60 Emacs \u3002\r
\r
Happy hacking" }, { "author": { "url": "member/lukertty", "name": "lukertty", "avatar": "https://cdn.v2ex.com/gravatar/4715c4e141948def776ed9f6ac33deca?s=73&d=retro" }, "url": "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": "t/230272", "date_published": "2015-10-22T11:20:38+00:00", "content_html": "

\u5230\u5904\u90fd\u662f non-prefix key \uff0c C-h b \u5c31\u6ca1\u627e\u5230\u7a7a\u7684\u4f4d\u7f6e\uff0c\u5927\u5bb6\u662f\u600e\u4e48\u89e3\u51b3\u7684\uff1f

\n" }, { "author": { "url": "member/Feiox", "name": "Feiox", "avatar": "https://cdn.v2ex.com/avatar/1a88/dd10/39524_large.png?m=1688496787" }, "url": "t/228235", "title": "\u5728 Mac \u4e0a\u4f7f\u7528 Emacs \u7684 Prelude \u914d\u7f6e\uff0c\u542f\u52a8\u62a5\u9519\uff0c\u6c42\u6559", "id": "t/228235", "date_published": "2015-10-15T05:33:11+00:00", "content_html": "

\u5728\u7ec8\u7aef\u4e2d\u542f\u52a8\u62a5\u9519\u5982\u4e0b\uff1a

\n
Warning (initialization): An error occurred while loading `/Users/Feiox/.emacs.d/init.el':\n\nSymbol'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' option to view a complete error backtrace.\n
\n\n

\u5728 EmacsForMac \u7684 App \u4e2d\u542f\u52a8\uff0c\u62a5\u9519\uff1a

\n
Warning (initialization): An error occurred while loading `/Users/Feiox/.emacs.d/init.el':\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' option to view a complete error backtrace.\n
\n\n

\u8fd9\u662f\u7531\u4e8e\u4ec0\u4e48\u539f\u56e0\u5462\uff1f
\nP.S. \u539f\u59cb\u914d\u7f6e\u6587\u4ef6\u672a\u6539\u52a8\u8fc7

\n" }, { "author": { "url": "member/vitovan", "name": "vitovan", "avatar": "https://cdn.v2ex.com/avatar/9366/088b/28986_large.png?m=1722822490" }, "url": "t/224090", "title": "Emacs 24.5 \u4e0d\u517c\u5bb9\u4efb\u4f55\u4e2d\u6587\u8f93\u5165\u6cd5", "id": "t/224090", "date_published": "2015-09-27T13:53:00+00:00", "content_html": "

\u5148\u770b\u8fd9\u91cc\uff1a
\nhttps://lists.gnu.org/archive/html/bug-gnu-emacs/2015-09/msg00356.html

\n\n

\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

\n\n

\u6700\u540e\u53ea\u597d\u6539\u7528 eim \u3002

\n" }, { "author": { "url": "member/izgzhen", "name": "izgzhen", "avatar": "https://cdn.v2ex.com/avatar/5f62/a222/132801_large.png?m=1439467690" }, "url": "t/213825", "title": "Emacs \u6ce8\u91ca\u7684\u65f6\u5019\u4ee3\u7801\u7740\u8272\u6709\u660e\u663e\u5361\u987f", "id": "t/213825", "date_published": "2015-08-17T08:34:18+00:00", "content_html": "

\u5c24\u5176\u662f C/C++\uff0c\u8f93\u5165 /* \u540e\u8981\u597d\u4e45\u624d\u80fd\u4e0a\u8272\u3002\u5220\u4e86\u6ce8\u91ca\u4e5f\u597d\u4e45\u624d\u80fd\u91cd\u65b0\u4e0a\u8272\u3002

\n\n

\u4e0d\u77e5\u9053\u5404\u4f4d\u6709\u6ca1\u6709\u8fd9\u79cd\u95ee\u9898\uff1f\u539f\u56e0\u662f\u4ec0\u4e48\uff1f

\n\n

\u6211\u7528\u7684\u662f os x \u7684 terminal

\n" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86