刚从vim转来emacs没几天,尝到了使用spacemacs的甜头,但同时也遇到了一点小问题,求解答
问题一: Evil模式下,如何在visual mode时,粘贴系统剪贴板内容?
在insert mode下,可以使用command+v来粘贴,但是visual model就不能用p来粘贴,请问如何设置?
问题二: 如果在Evil模式下选择有下划线连成的词?
在vim里,我用 viw
可以选中 insert_mode
中的 insert_mode
但在spacemacs中,我只能选中 insert
,请问如何设置?
问题三: 编写markdown输入代码块时的`号问题
输入三个 ` 号时
自动补全的结果会是:
请问怎样能让最终效果是这样:
感谢解答。
1 个赞
问题一的不完美解决办法
需要做如下设置:
(fset 'evil-visual-update-x-selection 'ignore)
并且使用 P
来粘贴
要是能用 p
就好了
问题二的解决办法:
原来是要使用 viW
,只是和vim不统一。
做如下设置可以使 viw
选中时包括下划线
(with-eval-after-load 'evil
(defalias #'forward-evil-word #'forward-evil-symbol))
问题三暂时没找到解决办法
三个 `(backquote/backtick)的写法
```java
code
```
是 GitHub Flavored Markdown 中规定的,它是 Github 对官方 Markdown 的扩展,原来没这个规定。
markdown-mode.el
中给 GitHub Flavored Markdown 提供了一个单独的 Major Mode——gfm-mode
,在这个 Mode 下,输入第三个 backtick 时,会自动让你选一个语言,并自动添加余下的三个 backtick(亲自试试就知道了)。markdown-mode.el
也有很详细的文档。
1 个赞
谢谢回复,我用的是spacemacs,在 Markdown layer的文档里没找到gfm-mode相关的说明,是不是需要单独安装 markdown-mode 这个包才行?
在源码里找到快捷键了,是 SPC m x C
就可以选择语言并生成 GFM的code block了。
另外在 .spacemacs 的 user-config 里加入:
(add-to-list 'auto-mode-alist '("\\.md\\'" . gfm-mode))
(add-hook 'gfm-mode-hook
'(lambda()
(setq indent-tabs-mode nil)
(setq tab-width 4)))
就可以在输入三个 blacktick 后,自动选择语言并补全后面三个 backtick
但我有个小问题,下面一行总是会多出一个 backtick ,很奇怪
发现是因为.md文件默认是对 backtick自动配对导致的,要想办法先把自动配对去掉。
如果你希望 viw
选中一个 word 的时候包括 下划线, 可以使用下面的 elisp 代码:
(modify-syntax-entry ?_ "w")
你可以在一些 mode-hook 中添加,因为并不是所有的语言你都希望下划线算作一个 word,目前我就在 python-mode-hook 和 js2-mode-hook 开启了这个选项。
2 个赞
后面会跟一个 backtick 的问题,我通过 这里 解决了。
只要在user-config中添加一行:
(sp-pair "`" nil :actions :rem)
注意我这里是把所有 backtick的自动配对给禁用了。
如果你有方法只禁用markdown里的backtick自动配对,请分享一下,谢啦。
下面是我尝试失败了的配置:
(when (fboundp 'sp-pair)
(sp-pair '(markdown-mode gfm-mode) "`" nil :actions :rem))