是否可以使用Emacs自己的缓冲区文本格式化功能在Emacs缓冲区中呈现Markdown?图形环境中的Emacs具有丰富的文本显示功能(字体样式,颜色,链接甚至图像),因此它应该是非常可能的.有没有现有的实施?
请注意,我们的想法是将呈现的Markdown设置为本机Emacs格式的文本,可以像在Emacs中的任何其他文本一样进行导航和操作.因此,这里不希望呈现嵌入在Emacs缓冲区中的图像的解决方案.
另请注意,这不是用于编辑 Markdown 的模式,而是用于在Emacs缓冲区中呈现呈现的Markdown.它最好是一个纯Emacs Lisp解决方案,便于携带.
有几个类似的设置功能:
那么,这些功能之间的区别是什么?
如果我想将自己的首选项设置为加载项,请针对以下情况:
在GNU emacs中,每当我点击Ctrl-x Ctrl-b查看所有缓冲区时,窗口将被拆分以显示缓冲区列表,或者如果我的窗口已经拆分为2(例如,我将在下部窗口中运行一个shell) ,缓冲区列表出现在另一个窗口中.
我想要的行为是缓冲区列表出现在我的活动窗口中,这样我就可以选择我想要的缓冲区并继续在同一个窗口中工作,而不必去Ctrl-x Ctrl-o另一个缓冲区,选择缓冲区(带enter)并编辑在另一个窗口缓冲...我用Google搜索但它似乎不是一个普遍的愿望?我想知道是否有人有elispy(或其他)解决方案?
我决定从头开始重写我的.emacs,我想设置一些模块化的东西,以避免一个可怕的1k + LoC init.el文件......
我认为每个配置都需要解决一些基本问题:
虽然我仍然想要通过结构,我正在寻找一些如何实现这一点的指针.
我在github等上看了一些.emacs,似乎有不同的方法,没有首选的方法,这有点令人困惑.
我有兴趣阅读有关如何构建这样的设置的一些想法,特别是一些相关的elisp代码.
编辑:已经赶上了事情,并没有太多时间玩这个.将在几天内尝试提出的方法,并看看什么是最好的,同时感谢所有的建议!
edit2:我一直在使用带有org-mode的文字初始化文件,这绝对太棒了!
我还没有设置一个特定的加载机制,我一直在使用这个代码,递归加载我的elisp目录,然后要求或任何设置说明说.
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
(let* ((my-lisp-dir "~/.emacs.d/elisp/")
(default-directory my-lisp-dir))
(setq load-path (cons my-lisp-dir load-path))
(normal-top-level-add-subdirs-to-load-path)))
Run Code Online (Sandbox Code Playgroud)
我仍然需要对此进行修改,可能使用自动加载,以及一些字节重新编译,如果修改了技巧; 我很乐意听到有关这方面的建议.
我经常自定义Emacs.最近,我在我的.emacs配置中添加了一些内容,偶尔会将我的CPU固定在100%,但我真的不知道它是什么.
如果我多次按下Cg,最终我会在迷你缓冲区下方收到一条消息,询问我是否要自动保存我的文件,然后如果我想完全中止emacs.如果我一直拒绝并按下Cg,最终我可以恢复正常运行emacs.大约一个小时后它会再次发生.
我可以继续像我一样,评论我最近添加的各种内容,重新启动emacs,试图缩小罪魁祸首,但它进展缓慢.
有没有办法可以直接分析emacs来找出什么lisp函数占用CPU?
我是Emacs的新手.
所以,我正在使用emacs 24和曝光的色彩主题.
当Emacs启动时,它提示我"加载一个主题可以运行Lisp代码,真的加载吗?".
当我回答"是"时,它会继续"在未来的会议中将此主题视为安全吗?".
如果我说"y",主题就会被加载,并且
(custom-set-variables
(custome-safe-themes (quote ("..." default))))
Run Code Online (Sandbox Code Playgroud)
自动添加到〜/ .emacs.
但是,每次打开Emacs时,这些问题都会回来!
什么是关闭它们的正确方法?
这让我发疯了:我只是想让Emacs最大化到启动时的屏幕分辨率.理想情况下,我喜欢适用于任何屏幕分辨率的跨平台(Windows和Linux)解决方案,但我甚至无法使用甚至硬编码大小的Window XP.
这是我尝试过的:
(w32-send-sys-command 61488)
尝试了我在某处发现的这个功能:
(defun toggle-fullscreen ()
"toggles whether the currently selected frame consumes the entire display
or is decorated with a window border"
(interactive)
(let ((f (selected-frame)))
(modify-frame-parameters
f
`((fullscreen . ,(if (eq nil (frame-parameter f 'fullscreen))
'fullboth
nil))))))
Run Code Online (Sandbox Code Playgroud)不幸的是,以上都没有!对于上面的一些,我可以看到我的emacs窗口在一瞬间正确调整大小,然后恢复到较小的默认大小.如果我在初始化后运行上面的方法,emacs窗口会正确调整大小.世界上到底发生了什么?
[ps还有其他SO问题,但没有一个答案有效]
更新:
答案让我觉得我的init文件中的其他东西导致了问题.确实是这样!经过一些尝试和错误,我找到了罪魁祸首.如果我注释掉以下行,一切都很完美:
(tool-bar-mode -1)
Run Code Online (Sandbox Code Playgroud)
工具栏与最大化窗口有什么关系?
所以现在的问题是:如何禁用工具栏(毕竟,emacs的工具栏很丑陋,占用了宝贵的屏幕空间)并且在我的init文件中最大化了窗口?可能是工具栏干扰窗口大小的错误?
澄清:(工具栏模式-1)关闭工具栏,但此行干扰最大化Emacs窗口.因此,如果我尝试将函数放到最大化窗口并关闭工具栏,则最大化部分将失败; 如果工具栏部分已注释掉,则最大化部分将正常工作.它甚至不重要我使用什么解决方案(在我列出的4个中).
解决方案:(或者至少现在对我有用)
这可能是Emacs中的一个错误.解决方法是通过注册表禁用工具栏,而不是.emacs.将以下内容另存为.reg文件,并在Windows资源管理器中执行该文件:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\GNU\Emacs]
"Emacs.Toolbar"="-1"
Run Code Online (Sandbox Code Playgroud)
(此解决方案是OtherMichael建议的工作版本).
我知道已经有一个关于这个问题的Emacs问题,并且关闭了,但我发现它非常重要且非常重要.
基本上,我想评论/取消注释当前行.我期望用宏可以很容易,但我发现它确实不是.
如果当前行已注释,请取消注释.如果取消注释,请对其进行评论.而且我还要评论整条线,而不仅仅是光标位置.
我试过像这样的宏:
C-a
'comment-dwim
Run Code Online (Sandbox Code Playgroud)
但这只是评论一条线,而不是取消注释它,如果它已经评论过.
我不确定它有多容易,但如果有某种方式,我真的很喜欢它.
另外,我非常喜欢这个想法的原因是,当我使用Geany时,我只是使用C-e它并且它是完美的.
在我的终端(我有终结器)我可以使用组合键Ctrl +并Ctrl -增加/减少字体大小.
在emacs中,我可以执行以下操作来设置font-height:
(set-face-attribute 'default nil :height 70)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何增加/减少它.我怎样才能轻松将其添加到我的emacs配置中?
我一直在emacs lisp文档中搜索如何将正则表达式搜索到字符串中.我找到的只是如何在缓冲区中执行此操作.
有什么我想念的吗?我应该将我的字符串吐入临时缓冲区并在那里搜索它吗?这只是elisp的编码风格,我会习惯吗?有没有这个问题的标准解决方案.当我应该能够直接搜索已经存在的变量时,操作缓冲区似乎很复杂.