页面“Emacs入门”与“Redis导至mediawiki登录不了”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
 +
*起因
 +
因为是个人业务 ,所以不小心 机器 因为加错防火墙 ,把自己也deny 了 于是 只好多次关机 ,开机 然后 终于成功进入单用户模式,可是开机后,上wiki  新添加一个文章,说已登出,于是再登录,问题就来了,提示
  
 +
似乎您的登录会话有问题; 为了防止会话劫持,这个操作已经被取消。 请返回先前的页面,重新载入该页面,然后重试。
 +
根本没办法 登录 ,中间又是请教别人 ,又是分析代码 想用的都用了 差点重装wiki  还好 后来才懂了
  
==安装emacs==
+
*解决
[[How to Compile Emacs on Linux]]
+
一开始是以为关闭redis 搞定
  
== 正文==
+
其实清空redia 数据就好了 就一条 flushall使命嘛
== 成为高手笔记==
 
<pre>即使你不打算使用 Emacs 默认快捷键, 这步也是必须的, 不要跳过!
 
  
最起码要知道以下命令,
+
然后在浏览器删除相对应的  移除特定网站的 Cookie
  
M-x describe-variable, 快捷键 C-h v, 查看变量的文档
+
2019年迁移wiki时 是因为防火墙加错了 看 memcache 相关
M-x describe-function, 快捷键 C-h f, 查看命令的文档
 
M-x describe-key, 快捷键 C-h k, 查看快捷键的文档</pre>
 
  
 +
昨天想重装呢 笑死了
  
以实际问题作为切入点
+
* 新发现
  
努力能很快得到回报, 你会越学越有乐趣, 进入感情上的正反馈.
+
这几天 用上公司的pc 一开始可以 chrome 登录 后来发现和上面一样的问题 ,搞了N久 才发现清空数据后,不让同步密码就可以了
  
要成为高手, 兴趣是最重要的.
+
Redis Flushall 命令 Redis 服务器 Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )
 +
http://www.runoob.com/redis/server-flushall.html
  
以我为例, 我急需 GTD 的工具, 而 Emacs 的 Org-mode 是同类软件中最好的 (没有之一). 用 Org-mode 节省了时间后, 我对 Emacs 爱屋及乌, 兴趣高涨了 100 倍.
 
  
反面例子是啃Lisp教程开始Emacs之旅, 坚持下来的人寥寥无几.
+
[https://www.mediawiki.org/wiki/Firefox_users_and_session_loss_bug/zh  Firefox用户和会话丢失漏洞 对不起!由于会话数据丢失,我们无法处理您的编辑。 您可能已经退出。请核实您是否仍在登录,并重试。如果仍然不能工作,尝试退出并重新登录,并检查您的浏览器是否允许来自该网站的cookie]
  
待解决的问题设定优先度 关键在于理性地考虑你最迫切需要解决的一个问题.以这个问题作为出发点, 除此之外都可以妥协.
 
  
虽然 Emacs 无所不能, 但是饭也要一口一口吃. 有时退一步等于进两步.
 
  
例如, 我一直以为 Emacs 的中文显示很完美, 搞不懂为什么有人在字体配置上花那么多时间.
+
[[category:ops]] [[category:redis]] [[category:wiki]]
 
 
在接到读者反馈后, 我才明白原来我一直在终端下使用Emacs, 终端软件可以完美显示中文字体, 所以就没 Emacs 什么事了. 需要配置字体的人用的是图形界面 Emacs.
 
 
 
当初只在终端下使用 Emacs 是因为需连接到远程服务器. 我认为这是重点. 甚至为此放弃了漂亮的配色主题 (后来发觉此牺牲毫无必要). 塞翁失马, 由此也避免了图形界面版本的所有问题.
 
 
 
https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-zh.org
 
 
 
==后记==
 
<span style="color:green;">后面要把常用的这些常用快捷键写成一个短小的总结卡</span>
 
=== 模式键定义===
 
 
 
四个模式键:C—-Ctrl;M—-Alt;s—-Super(Win);S—-Shift
 
 
 
比如:
 
 
 
C-x:表示按下ctrl键,然后按下x键。
 
 
 
C-x  C-c:表示按下ctrl,然后按下x键,松开后再按下c键。
 
 
 
C-x k:表示按下ctrl,同时按下x和k键。
 
 
 
 
 
=== 最常用命令===
 
 
 
<span style="color:red;">M-f 与 M-b  </span> 在行内, 前后大步移动光标,步进单位对于英文而言是单词的长度,对于中文而言是两个标点符号的间距。
 
 
 
<span style="color:red;">M-{ M-} </span> 段开头或结尾
 
 
 
<span style="color:red;">C-x [  C-x ] </span>页开头或结尾 
 
 
 
<span style="color:red;">C-a 或 C-e </span> 对于英文文本,若将光标快速移到行首或行尾,标准按键是 C-a 或 C-e 但是对于中文而言,这对按键有着将光标被移到段首或段尾的奇异效果……如果偶尔忘记,用 Home或End 键也未尝不可。
 
 
 
<span style="color:red;">M-a 与 M-e </span> 则分别可将光标移动到句首或句尾。
 
 
 
<span style="color:red;"> C-v 或 M-v <span> 如果文档很长,用可实现向下或向上翻屏
 
 
 
M-< ,移到最开始。
 
  然后再按几次 C-v 回到这里。
 
 
 
M-> ,移到最末尾。
 
  然后再按几次 M-v 回到这里。
 
 
 
C-x 2 将屏幕划分成两个窗格。这两个窗格里显示的都是本篇快速指南,而光标则停留在上方的窗格里。
 
 
 
C-x o(“o”指的是“其它(other)”), 将光标转移到下方的窗格。
 
 
 
C-x 1  (在上方窗格里)输入 C-x 1 关掉下方窗格。
 
 
 
C-x C-f        寻找文件。
 
C-x C-s        保存文件。
 
 
 
==== 搜索 ====
 
增量搜索
 
C-s 正向搜索
 
 
 
C-r 反向搜索
 
 
 
C-M-s使用正则表达式正向搜索
 
 
 
C-M-r 使用正则表达式反向搜索
 
 
 
M-p 选择上一个搜索结果
 
 
 
M-n 选择下一个搜索结果
 
 
 
RET 退出搜索并停留在当前搜索到的位置
 
 
 
C-g 中止当前搜索
 
 
 
===save and exit ===
 
<pre>
 
C-x C-c:退出Emacs
 
 
 
C-x C-s:保存当前buffer
 
</pre>
 
 
 
===选中 复制 黏贴===
 
<pre>
 
把光标移动到区域的首字符
 
键入C-@(即ctrl+shift+2),以设置标记 有时是ctrl+shife +@
 
把光标移动到区域的最后一个字符
 
键入M(alt)-w,拷贝这个选定区域到粘贴板(剪切是C-w)
 
用光标定位将要粘贴内容的地方,然后键入C-y ,拷贝成功。
 
 
 
C-@ mark --> c-f or c-n --> alt-w --> c-y
 
 
 
C-w 剪切标记到当前光标所在处的文本
 
</pre>
 
 
 
===查找===
 
<pre>
 
搜索/替换(Seach/Replace)
 
C-s 向后搜索
 
C-r 向前搜索</pre>
 
 
 
===替换===
 
<pre>
 
按M - %启动查找替换(M is alt on debian),输入要被替换的词,回车,然后输入要替换的词,再回车。
 
被替换的词会高亮起来,这时,输入y替换并跳到下一个,输入n忽略并跳到下一个,输入q结束,输入!替换剩下的全部。
 
 
 
一些常用的选项:
 
  C - g 中断查找替换过程。
 
  ^ 返回上一个替换点,按y继续下一个,如果不想替换上一个的话,用^返回到上一个,然后按 C - r 进入编辑,修改完后按C - M - c退出继续下一个。
 
  C - l 使当前匹配显示在文档中间。
 
  C - r 进入修改。
 
</pre>
 
[https://www.cnblogs.com/robertzml/archive/2010/03/03/1675870.html 学习Emacs系列教程(八):查找替换]
 
 
 
[https://www.cnblogs.com/skyhacker/archive/2012/01/03/2311437.html emacs查找替换]
 
 
 
===移动 ===
 
<pre>
 
 
 
M-< 到文件开头
 
M-> 到文件末尾
 
 
 
 
 
 
 
以下命令在翻页浏览时相当有用:
 
 
 
C-v    向前移动一屏
 
M-v    向后移动一屏
 
C-l    重绘屏幕,并将光标所在行置于屏幕的中央
 
(注意是 CONTROL-L,不是 CONTROL-1)
 
 
 
 
 
整屏的移动很有用,但是如何在文字中精确定位呢?
 
 
 
有几种方式可以选择。用方向键当然可以,不过更有效率的方法是保持双手位于
 
主键盘区,然后使用 C-p 、 C-b 、 C-f 和 C-n 这四个命令。它们的功能和方
 
向键是一样的,如下图所示:
 
 
 
                            上一行 C-p
 
                                  :
 
                                  :
 
            向左移 C-b .... 目前光标位置 .... 向右移 C-f
 
                                  :
 
                                  :
 
                            下一行 C-n
 
 
 
>> 用 C-n 或 C-p 将光标移到上图的中央。
 
  按 C-l,整幅图会被显示在屏幕的中央。
 
 
 
 
 
 
 
移动的单位            向后        向前
 
字符                  C-b          C-f
 
 
 
 
 
 
 
当前行开头或结尾      C-a          C-e
 
 
 
C-n
 
 
 
M-f 如果你嫌一个字符一个字符地挪光标太慢,你还可以一个词一个词地跳。M-f
 
(META-f) 可以将光标往前移动一个词,而 M-b 则是往后移。【这里的“词”指
 
英文单词,对中文来说,则是指移动到下一个标点符号。】
 
 
 
类似的惯例在“行”与“句子”之间也同样适用:C-a 和 C-e 可以将光标移动到
 
“一行”的头部和尾部;而 M-a(和terminator冲突) 和 M-e 则将光标移动到“一句”的头部和尾部。
 
 
 
 
 
这里对简单的光标移动命令做一个总结,其中也包括了整词和整句的移动:
 
 
 
        C-f    向右移动一个字符
 
        C-b    向左移动一个字符
 
 
 
        M-f    向右移动一个词【对中文是移动到下一个标点符号】
 
        M-b    向左移动一个词【对中文是移动到上一个标点符号】
 
 
 
        C-n    移动到下一行
 
        C-p    移动到上一行
 
 
 
        C-a    移动到行首
 
        C-e    移动到行尾
 
 
 
        M-a    移动到句首
 
        M-e    移动到句尾
 
 
 
 
 
 
 
这里还要介绍两个重要的光标移动命令:M-< (META 小于号)可以将光标移动到
 
所有文字的最开头;M-> (META 大于号)可以将光标移动到所有文字的最末尾。
 
 
 
注意,在大部分键盘上,小于号(<)需要用上档键(Shift)来输入,所以在这
 
些键盘上你应该用 Shift 键来输入 M-<,如果不按 Shift 键,你输入的会是
 
M-comma(META 逗号)。
 
 
 
>> 试一试 M-< ,移到本快速指南的最开始。
 
  然后再按几次 C-v 回到这里。
 
 
 
>> 试一试 M-> ,移到本快速指南的最末尾。
 
  然后再按几次 M-v 回到这里。
 
 
 
 
 
如果你的键盘上有方向键的话,也可以用它们来移动光标。不过我们有三个理由
 
推荐你学习 C-b 、C-f 、C-n 、和 C-p:(1)它们在任何键盘上都能用。(2)
 
当你熟练使用 Emacs 之后,你会发现用这些组合键比用方向键要快得多,因为你
 
的手不需要离开打字区。(3)一旦你习惯了使用这些组合键,你也可以很容易地
 
适应其它更高级的光标移动命令。
 
 
 
大部分的 Emacs 命令接受数字参数,并且对于多数命令而言,这些数字参数的作
 
用是指定命令的重复次数。为一个命令指定数字参数(也就是重复次数)的方法
 
是:先输入 C-u,然后输入数字作为参数,最后再输入命令。如果你有META (或
 
EDIT 或 ALT)键,那么还有另一种办法:按住 META 键不放,然后输入数字。不
 
过我们还是建议你用 C-u,因为它在任何终端机上都能用。这种数字参数也称为
 
“前缀参数”,意思是说这个参数是先于使用它的命令而输入的。
 
 
 
举例来说, C-u 8 C-f 会向前移动 8 个字符。
 
</pre>
 
 
 
===缓冲区、窗口与窗框===
 
<pre>
 
 
 
2018年 01月 23日 星期二 21:03:14 CST 学习这个
 
 
 
Emacs 启动后,窗框中默认只有一个窗口,但是使用 C-x 1 或 C-x 2 可以将其水平或竖直一分为二,这个分割过程可以无限的进行下去。每次被分割的窗口都是输入光标所在的窗口(也称为被激活的窗口)。使用 C-x o 可以在多个窗口中跳转。
 
 
 
由于 Emacs 在拆分窗口时,默认是水平或竖直均分,所以如果你希望将某个窗口调的宽一些,可 C-x } ;要使之窄一些,可 C-x { ;要使之高一些,可 C-x ^,但是要使之矮一些,貌似只能是激活该窗口下方的窗口,然后让下方的窗口高一些。这些窗口大小的调整方法,每次只能使得窗口的尺寸增大或减小一个字符的宽度或高度。如果你不想多次输入像 C-x ^ 这样的命令,那么可以用 C-u n C-x ^ 这样的组合键,其中 n 表示你要重复执行 C-x ^ 这样的命令 n 次。例如,要将当前窗口的高度增加 5 个字符的高度,只需 C-u 5 C-x ^ 即可。
 
 
 
C-u 最好要牢记,它的职能就是给某个组合键所绑定的 Emacs Lisp 函数传递一个参数值。 C-u 5 C-x ^ 表示向 C-x ^ 所绑定的 Emacs Lisp 函数传递参数值 5 ,而这个函数接受这个参数值之后,就会将窗口的高度增加 5 个字符的高度。
 
  要查看按键被绑定到了哪个 Emacs Lisp 函数,只需 C-h k <RET> 按下你要查询的键 。 <RET> 表示回车键
 
 
 
如果觉得窗口太多,想关掉一些,那么关闭被激活的窗口的组合键是 C-x 0 。如果是图形界面的 Emacs,只需要鼠标右键点击窗口的模式行即可将该窗口关闭。我的建议是:能用键盘就不要用鼠标。
 
 
 
要在某个窗口中打开或新建一个文件,可 C-x C-f 文件路径。
 
 
 
为了节省内存占用,请尽量使用 Emacs 的多窗口模式,不要打开一个又一个 Emacs
 
 
 
</pre>
 
 
 
=== 文本编辑的正确姿势===
 
用 Emacs 的正确姿势应该是永远保持能不用鼠标就不用鼠标的姿势!因此,你需要学会用键盘来控制光标在窗口中的位置。
 
<pre>
 
最基本的光标位置控制键如下所示:
 
 
 
              上一行 C-p
 
                    :
 
                    :
 
向左移 C-b .... 目前光标位置 .... 向右移 C-f
 
                    :
 
                    :
 
              下一行 C-n</span>
 
要记忆这几个键并不困难。 p 就是 previous(在...之前), n 就是 next, b 就是 backward, f 就是 forward,而 C 就是 Control……美国人民真会玩!
 
</pre>
 
 
 
 
 
上述按键虽然简单易懂,但它们只适合小范围移动光标。在行内,可以用 <span style="color:red;">M-f 与 M-b </span>前后大步移动光标,步进单位对于英文而言是单词的长度,对于中文而言是两个标点符号的间距。
 
 
 
对于英文文本,若将光标快速移到行首或行尾,标准按键是<span style="color:red;"> C-a 或 C-e </span>但是对于中文而言,这对按键有着将光标被移到段首或段尾的奇异效果……如果偶尔忘记了这对按键,用 Home 或 End 键也未尝不可。<span style="color:red;"> M-a 与 M-e </span>则分别可将光标移动到句首或句尾。
 
 
 
如果文档很长,用 <span style="color:red;">C-v 或 M-v </span>可实现向下或向上翻屏。如果偶尔忘记了这对按键,用键盘上的 PgUp 与 PgDn 翻页键也可行。
 
 
 
跨度最大的光标移动键是 M-< 与 M-> ,可分别将光标移动到缓冲区的首部与尾部。
 
 
 
一旦掌握了上述这几个控制光标位置的按键,在 Emacs 中鼠标基本上就变得不是那么不可或缺了,更重要的是,这些按键能够帮助你更快速的选择文本。对于文档中的待选文本区域,用上述按键将光标移动到该区域的起始位置,然后用<span style="color:red;"> C-@ </span>标定选区之首,然后继续用上述按键将光标移动到选区之尾,这样就完成了文本的选取。
 
 
 
 
 
 你可能不知道怎么产生 C-@ 按键序列。普通键盘上,应该是摁住 Ctrl 键,然后再摁住 Shift 键,最后摁下数字 2 键,然后松开手。因为 @ 在 2 上面,需要 Shift 切换……
 
 
 
对于选中的文本,随后的操作无非是剪切、复制或删除。剪切,请用 C-w;复制,请用 M-w;删除,请用 Backspace。对于剪切或复制的文本,要粘帖在光标所在位置,请用 C-y……或者你也可以试着看看 C-y 之后再 M-y 有什么效果!
 
 
 
对文本进行了一段时间的编辑之后,要反悔的话,就用 C-_ 键执行 Undo 操作。
 
 
 
  要产生 C-_ 的按键序列,请参考上文所讲的 C-@ 的做法。
 
建议现在就立刻将上述提到的每个按键都反复试验六、七次,以后就一直坚持使用它们……用不了几天也许就变成手指的本能了。忘掉鼠标吧,键盘可以解放你的双手,可以让你从畸形的鼠标手解脱,然后变成键盘手……因为你很快就会觉得左手的小指会有点酸痛!我会在下一节中拯救你的手。
 
 
 
===拯救你的左手小拇指===
 
如果感到左手的小手指有点疼,就不要再去用左手去摁 C-x C-s 这样的键了,你完全可以用右手的小指去摁键盘右侧的 Ctrl 键,然后左手相应的手指去摁 x 与 s 键
 
 
 
===将一段代码向右推===
 
[https://segmentfault.com/a/1190000003811296 将一段代码向右推20180124pm到这里 后面的还没看完]
 
 
 
===显示行号===
 
====临时显示行号或者取消行号====
 
在Emacs下执行 M-x linum-mode 来显示或者取消行号
 
M-x : Alt + x
 
输入: linum-mode
 
 
 
===跳转到指定行 ===
 
====临时====
 
M-x goto-line 然后回车  <line_number>
 
====长期====
 
以在.emacs文件中定制一下(添加以下一行):
 
 
 
(define-key ctl-x-map "l" 'goto-line)
 
 
 
然后每次在emacs中按C-x再按l,输入指定的行号就可以了。
 
 
 
http://blog.csdn.net/grey_csdn/article/details/78905862
 
http://bbs.csdn.net/topics/60028785
 
 
 
 
 
=== 常用插件===
 
记笔记,安排日程,那么毫无疑问Org-Mode是首选
 
 
 
[https://elloop.github.io/tools/2016-03-01/emacs-accumulate-5-packages-extensions Markdown]
 
 
 
 
 
=== 快捷键===
 
<pre>
 
M-s : 新建一个buffer(缓冲区)
 
 
 
C-x O : 注意是大写的O,不是零,所以需要按住shift键再按o键。用于在缓冲区之间切换
 
 
 
C-g : 取消当前操作
 
 
 
C-x u : 回到上一步,相当于Undo
 
 
 
C-x  C-x : 变大写
 
 
 
C-x 3 : 把缓冲区(buffer)分为左右两个,新的一个缓冲区是复制当前的缓冲区 (可以执行多次,来分割出很多小窗口)
 
 
 
C-x 2 : 把缓冲区(buffer)分为上下两个,新的一个缓冲区是复制当前的缓冲区 (可以执行多次,来分割出很多小窗口)
 
 
 
M-w : 选中文字的情况是复制文字,而如果没有选中文字则是复制当前的一行
 
 
 
C-w : 选中文字的情况是剪切文字,而如果没有选中文字则是剪切当前的一行
 
 
 
M-x : 调出命令输入,可以在后面接命令,比如man,svn-status,等
 
 
 
C-y : 黏贴
 
 
 
C-x C-s : 保存文本
 
 
 
C-x C-f : 打开文件,如果文件不存在,则新建文件
 
 
 
C-x C-v : 打开一个文件,取代当前缓冲区
 
 
 
C-x k : 关闭当前缓冲区(buffer)
 
 
 
C-s : 向前搜索
 
 
 
C-r : 向后搜索
 
 
 
C-x h : 全选
 
 
 
C-v : 向下翻页
 
 
 
M-v : 向上翻页
 
 
 
C-f : 前进一个字符
 
 
 
C-b : 后退一个字符
 
 
 
M-f : 前进一个单词
 
 
 
M-b : 后退一个单词
 
 
 
C-@ : 标记开始区域
 
 
 
C-a : 移到行首
 
 
 
C-e : 移到行尾
 
 
 
M-a : 移到句首
 
 
 
M-e : 移到句尾
 
 
 
M-< : 缓冲区头部
 
 
 
M-> : 缓冲区尾部
 
 
 
M-g M-g,再输入数字 : 跳转到文本的第几行
 
 
 
C-x 0 : 关闭当前缓冲区
 
 
 
C-x C-c : 退出Emacs
 
 
 
 
 
</pre>
 
 
 
[https://aifreedom.com/technology/112 Emacs快捷键列表]
 
 
 
链接:https://www.jianshu.com/p/732157b02ecc
 
 
 
==org mode==
 
Emacs 的 Org-mode 在一定程度上可以替代 OneNote,有些方面甚至更好
 
[[Org-mode]]
 
 
 
==reload configfile==
 
 
 
emacs 打开~/.emacs的时候执行命令M-x eval-buffer,就可以使配置文件立即生效。
 
 
 
===配置===
 
<pre>
 
https://github.com/gabrielelanaro/emacs-for-python
 
https://github.com/jorgenschaefer/elpy
 
http://www.jesshamrick.com/2012/09/18/emacs-as-a-python-ide/
 
https://realpython.com/blog/python/emacs-the-best-python-editor
 
 
 
*day1
 
pass 20170610
 
有空再详细的再看
 
 
 
:
 
记得要添加在公司作的相关的emacs 笔记
 
 
 
 
 
=======
 
这几天常用的几个重要使命
 
 
 
 
 
 
 
 
 
重要快捷键(Important)
 
C-k 删除一行
 
C-g 停止当前运行/输入的命令
 
C-x u 撤销前一个命令
 
 
 
c-j 下称整个文件内容
 
 
 
emacs 菜单 用F10或者M-`。
 
 
 
ctrl+g  q 退出 快速说明
 
 
 
编辑器内显示行号可使用 M-x linum-mode 来开启。
 
M-x 然后在最下面 输入 linum-mode
 
not try
 
q
 
 
 
获取帮助
 
ctrl+h  k  要查看的快捷键盘
 
 
 
 
 
 
 
 
 
学习基础 Elisp
 
 
 
ctrl+x  ctrl +b
 
 
 
 
 
C-x o:把光标在屏幕上的窗口间进行切换。记忆方法:其它(Other)窗口。
 
 
 
然后选择 *scratch*
 
 
 
运算 C-X  c - E
 
 
 
插件管理
 
 
 
c-x  o  other window  install
 
 
 
company
 
f2 打开配置文件
 
 
 
org-mode
 
 
 
major mode and minor mode (C-h m)
 
 
 
 
 
 
 
 
 
;;evan配置文件
 
;;  ~/.emacs  行号什么 的 我是加到这个文件生效的
 
;;  ~/.emacs.d/emacs
 
 
 
;; 关闭工具栏,tool-bar-mode 即为一个 Minor Mode
 
(tool-bar-mode -1)
 
 
 
;; 关闭文件滑动控件
 
(scroll-bar-mode -1)
 
 
 
;; 显示行号 试过 这个一定有效果
 
(global-linum-mode 1)
 
 
 
;; 更改光标的样式(不能生效,解决方案见第二集)
 
(setq cursor-type 'bar)
 
 
 
;; 关闭启动帮助画面
 
(setq inhibit-splash-screen 1)
 
 
 
;; 关闭缩进 (第二天中被去除)
 
;; (electric-indent-mode -1)
 
 
 
;; 更改显示字体大小 16pt
 
;; http://stackoverflow.com/questions/294664/how-to-set-the-font-size-in-emacs
 
(set-face-attribute 'default nil :height 160)
 
 
 
;; 快速打开配置文件
 
(defun open-init-file()
 
  (interactive)
 
  (find-file "~/.emacs.d/init.el"))
 
 
 
;; 这一行代码,将函数 open-init-file 绑定到 <f2> 键上
 
(global-set-key (kbd "<f2>") 'open-init-file)
 
 
 
; 开启全局 Company 补全
 
(global-company-mode 1)
 
 
 
;; 作者用的  是t
 
3(global-company-mode t)
 
 
 
 
 
;; ~/.emacs  生效的居然是这个 2018
 
;; 在 mode line 上显示行列号
 
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
 
 
;;显示列号
 
(setq column-number-mode t)
 
 
 
;; 显示行号
 
(global-linum-mode 1)
 
 
 
;; 取消滚动栏,工具栏
 
(tool-bar-mode 0)
 
(menu-bar-mode 0)
 
(scroll-bar-mode 0)
 
 
 
;; 关闭emacs启动时的页面
 
(setq inhibit-startup-message 1)
 
(setq gnus-inhibit-startup-message 1)
 
;; 以 y/n代表 yes/no
 
(fset 'yes-or-no-p 'y-or-n-p)
 
;;; 设置备份策略
 
(setq make-backup-files t)
 
(setq kept-old-versions 2)
 
(setq kept-new-versions 2)
 
(setq delete-old-versions t)
 
(setq backup-directory-alist '(("" . "~/.emacsbackup")))
 
 
 
;; 公共插件配置
 
;; 设置 package system,这里使用 MELPA,里面的包可以说是应有尽有
 
(require 'package)
 
(add-to-list 'package-archives
 
            '("melpa" . "http://melpa.milkbox.net/packages/") t)
 
(package-initialize)
 
 
 
;;内置的package管理,emacs24以上的版本有用
 
(require 'package)
 
;;将melpa仓库地址加入到package-archives这个列表变量里面
 
(add-to-list 'package-archives
 
    '("melpa" . "http://melpa.org/packages/") t)
 
;;这个是国内一个elpa仓库镜像,速度更快一些,你懂得
 
(add-to-list 'package-archives
 
    '("popkit" . "http://elpa.popkit.org/packages/") t)
 
;;初始化package
 
(package-initialize)
 
;;更新仓库里面的package
 
(when (not package-archive-contents)
 
  (package-refresh-contents))
 
(custom-set-variables
 
;; custom-set-variables was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
'(package-selected-packages (quote (company auto-complete autopair))))
 
(custom-set-faces
 
;; custom-set-faces was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
)
 
 
 
;;;; c mode ;;;;
 
(defvar xgp-cfsi-left-PAREN-old nil
 
  "Command used to input \"(\"")
 
(make-variable-buffer-local 'xgp-cfsi-left-PAREN-old)
 
 
 
(defun xgp-cfsi-modify-alist (alist term new)
 
  (let ((tl (assq term (symbol-value alist))))
 
    (if tl
 
        (setcdr tl new)
 
      (add-to-list alist (cons term new)))))
 
 
 
(defun xgp-cfsi (style)
 
  "Deciding whether using CFSI."
 
  (interactive "Style: ")
 
  (c-set-style style)
 
  (setq indent-tabs-mode
 
        nil
 
        c-hanging-semi&comma-criteria
 
        (quote (c-semi&comma-inside-parenlist)))
 
 
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-open nil)
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-close nil)
 
  (local-set-key " " 'self-insert-command))
 
 
 
(defun xgp-cfsi-erase-blanks ()
 
  "Erase all trivial blanks for CFSI."
 
  (interactive)
 
  (save-excursion
 
    (goto-char (point-min))
 
    (while (re-search-forward "[ \t]+$" nil t)
 
      (replace-match "" nil nil))))
 
 
 
(defun linux-c-mode()
 
  (define-key c-mode-map [return] 'newline-and-indent)
 
  (setq imenu-sort-function 'imenu--sort-by-name)
 
  (interactive)
 
  (imenu-add-menubar-index)
 
  (which-function-mode)
 
  (c-toggle-auto-state)
 
  (c-toggle-hungry-state)
 
  (setq indent-tabs-mode nil)
 
  (xgp-cfsi "linux"))
 
(add-hook 'c-mode-common-hook 'linux-c-mode)
 
;; 代码补全
 
(add-hook 'c-mode-hook 'company-mode)
 
(add-hook 'c++-mode-hook 'company-mode)
 
 
 
 
 
# other
 
如果要一次移动若干个单位,可以给命令加上数值参数,通过C-u命令,如:C-u 8 C-n就表示往下移8行,C-u 10 M-e表示往后移10句。不过C-u的参数对C-v和M-v命令而言有特殊,它不表示上下翻多少页,而是表示上下滚动多少行。注意与C-n的区别,C-u 8 C-n表示光标下移8行,屏幕不一定会滚动,而C-u 8 C-v,表示屏幕滚动8行,如果光标没有滚到屏幕外的话,光标位置不变。
 
如果不给C-u带上数值,则默认的值是4。比如C-u C-n就表示下移4行。这一特性还可以重复使用C-u C-u C-p就表示上移16行,C-u C-u C-u C-f表示右移64个字符。
 
前面讲了用C-g可以中断当前的命令,这次再补充一点,有时候C-g不灵时,可以按三次<Esc>键达到相同的目的。
 
</pre>
 
 
 
====kali本本配置====
 
<pre>
 
;;cat ~/.emacs
 
 
 
;; 关闭工具栏,tool-bar-mode 即为一个 Minor Mode
 
(tool-bar-mode 0)
 
(menu-bar-mode 0)
 
(scroll-bar-mode 0)
 
(tool-bar-mode -1)
 
 
 
 
 
 
 
(setq column-number-mode t)
 
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
;; 显示行号
 
(global-linum-mode 1)
 
;; 在 mode line 上显示行列号
 
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
 
 
;;显示列号
 
(setq column-number-mode t)
 
 
 
;; 显示行号
 
(global-linum-mode 1)
 
 
 
;; 取消滚动栏,工具栏
 
(tool-bar-mode 0)
 
(menu-bar-mode 0)
 
(scroll-bar-mode 0)
 
 
 
;; 关闭emacs启动时的页面
 
(setq inhibit-startup-message 1)
 
(setq gnus-inhibit-startup-message 1)
 
;; 以 y/n代表 yes/no
 
(fset 'yes-or-no-p 'y-or-n-p)
 
;;; 设置备份策略
 
(setq make-backup-files t)
 
(setq kept-old-versions 2)
 
(setq kept-new-versions 2)
 
(setq delete-old-versions t)
 
(setq backup-directory-alist '(("" . "~/.emacsbackup")))
 
 
 
;; 公共插件配置
 
;; 设置 package system,这里使用 MELPA,里面的包可以说是应有尽有
 
(require 'package)
 
(add-to-list 'package-archives
 
            '("melpa" . "http://melpa.milkbox.net/packages/") t)
 
(package-initialize)
 
 
 
;;内置的package管理,emacs24以上的版本有用
 
(require 'package)
 
;;将melpa仓库地址加入到package-archives这个列表变量里面
 
(add-to-list 'package-archives
 
    '("melpa" . "http://melpa.org/packages/") t)
 
;;这个是国内一个elpa仓库镜像,速度更快一些,你懂得
 
(add-to-list 'package-archives
 
    '("popkit" . "http://elpa.popkit.org/packages/") t)
 
;;初始化package
 
(package-initialize)
 
;;更新仓库里面的package
 
(when (not package-archive-contents)
 
  (package-refresh-contents))
 
(custom-set-variables
 
;; custom-set-variables was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
'(package-selected-packages (quote (company auto-complete autopair))))
 
(custom-set-faces
 
;; custom-set-faces was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
)
 
 
 
;;;; c mode ;;;;
 
(defvar xgp-cfsi-left-PAREN-old nil
 
  "Command used to input \"(\"")
 
(make-variable-buffer-local 'xgp-cfsi-left-PAREN-old)
 
 
 
(defun xgp-cfsi-modify-alist (alist term new)
 
  (let ((tl (assq term (symbol-value alist))))
 
    (if tl
 
        (setcdr tl new)
 
      (add-to-list alist (cons term new)))))
 
 
 
(defun xgp-cfsi (style)
 
  "Deciding whether using CFSI."
 
  (interactive "Style: ")
 
  (c-set-style style)
 
  (setq indent-tabs-mode
 
        nil
 
        c-hanging-semi&comma-criteria
 
        (quote (c-semi&comma-inside-parenlist)))
 
 
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-open nil)
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-close nil)
 
  (local-set-key " " 'self-insert-command))
 
 
 
(defun xgp-cfsi-erase-blanks ()
 
  "Erase all trivial blanks for CFSI."
 
  (interactive)
 
  (save-excursion
 
    (goto-char (point-min))
 
    (while (re-search-forward "[ \t]+$" nil t)
 
      (replace-match "" nil nil))))
 
 
 
(defun linux-c-mode()
 
  (define-key c-mode-map [return] 'newline-and-indent)
 
  (setq imenu-sort-function 'imenu--sort-by-name)
 
  (interactive)
 
  (imenu-add-menubar-index)
 
  (which-function-mode)
 
  (c-toggle-auto-state)
 
  (c-toggle-hungry-state)
 
  (setq indent-tabs-mode nil)
 
  (xgp-cfsi "linux"))
 
(add-hook 'c-mode-common-hook 'linux-c-mode)
 
;; 代码补全
 
(add-hook 'c-mode-hook 'company-mode)
 
(add-hook 'c++-mode-hook 'company-mode)
 
 
 
;; py
 
(setq tab-width 4)
 
(set-variable 'python-indent-offset 4)
 
;;(set-variable 'python-indent-guess-indent-offset nil)
 
</pre>
 
 
 
== 不错的配置==
 
<pre>
 
mv ~/.emacs.d ~/.emacs.d.bak
 
git clone --depth 1 https://github.com/seagle0128/.emacs.d.git ~/.emacs.d
 
</pre>
 
https://github.com/seagle0128/.emacs.d
 
 
 
 
 
 
 
=== c 常用命令===
 
emacs中很多命令都对C语言格式支持,补充几个命令M-x c-mode  当无法识别C语法格式的文件,可以强制打开C mode语法高亮C-M-p  跳转到}或)匹配的括号C-M-n  跳转到(或{匹配的括号M-x indent-region 自动缩进选定的区域C-c C-c 注释掉整个区域C-u C-c C-c 取消注释C-c C-u  跳转到前面的一个#ifdef C-c C-n  跳转到宏的开头或结尾C-c C-e 扩展宏编译排错:C-x ` (出错信息中)下一个错误,一个窗口显示错误信息,另一个显示源码的出错位置C-c C-c 转到出错位置调试:启动gdb调试器后,光标在源码文件缓冲区中时:C-x SPC 在当前行设置断点gdb在emacs中调用调试并不完美,有时候会出一些异常的情况。工作中如果emacs作为IDE用的话,一般在远程终端字符环境下更合适,如果作为专业的图形化IDE,codeblock等更合适,eclipse+CDT也是一种选择。
 
 
 
=== c 配置文件===
 
<pre>
 
;; 配置文件 for  c  or c ++
 
;; cat ~/.emacs
 
 
 
;; 在 mode line 上显示行列号
 
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
 
 
;;显示列号
 
(setq column-number-mode t)
 
 
 
;; 显示行号
 
(global-linum-mode 1)
 
 
 
;; 取消滚动栏,工具栏
 
;;(tool-bar-mode 0)
 
;;(menu-bar-mode 0)
 
;;(scroll-bar-mode 0)
 
 
 
;; 关闭emacs启动时的页面
 
(setq inhibit-startup-message 1)
 
(setq gnus-inhibit-startup-message 1)
 
;; 以 y/n代表 yes/no
 
(fset 'yes-or-no-p 'y-or-n-p)
 
;;; 设置备份策略
 
(setq make-backup-files t)
 
(setq kept-old-versions 2)
 
(setq kept-new-versions 2)
 
(setq delete-old-versions t)
 
(setq backup-directory-alist '(("" . "~/.emacsbackup")))
 
 
 
;; 公共插件配置
 
;; 设置 package system,这里使用 MELPA,里面的包可以说是应有尽有
 
(require 'package)
 
(add-to-list 'package-archives
 
            '("melpa" . "http://melpa.milkbox.net/packages/") t)
 
(package-initialize)
 
 
 
 
 
</pre>
 
 
 
[https://segmentfault.com/a/1190000003878553 Emacs 中 C/C++ 编程基本环境配置2018]
 
 
 
==from tour ==
 
<pre>
 
#这些笔记完全作到wiki么 会不会太多 而没有重点的感觉 
 
 
 
* 如果 EMACS 失去响应(IF EMACS STOPS RESPONDING)
 
-----------------------------------------------
 
如果 Emacs 对你的命令失去响应,你可以用 C-g 来安全地终止这条命令。C-g
 
也可以终止一条执行过久的命令。
 
 
 
C-g 还可以取消数字参数和只输入到一半的命令。
 
 
 
>> 输入 C-u 100 设定一个值为 100 的数字参数,然后按 C-g。
 
  现在再按 C-f,光标应该只会移动一个字符,因为你已经用 C-g 取消了参数。
 
 
 
如果你不小心按了一下 <ESC>,你也可以用 C-g 来取消它。
 
【这个说法似乎有问题,因为按照这个按键顺序输入的应该是 C-M-g。
 
取消 <ESC> 的正确做法是再连按两次 <ESC>。】
 
 
 
 
 
* 插入与删除(INSERTING AND DELETING)
 
--------------------------------------
 
 
 
,大部分的 Emacs 命令都可以指定重复次数,这其中也包括输入字符的
 
命令。重复执行输入字符的命令实际上就是输入多个相同的字符。
 
 
 
>>  试试 C-u 8 *,这将会插入 ********。
 
 
 
好,现在你应该已经掌握了最基本的的文本插入和修改功能,其实删除还可以
 
“以词为单位”进行,下面是一个关于“删除”操作的小结:
 
 
 
        <DEL>        删除光标前的一个字符
 
        C-d          删除光标后的一个字符
 
 
 
M-<DEL>      移除光标前的一个词
 
        M-d          移除光标后的一个词
 
 
 
        C-k          移除从光标到“行尾”间的字符
 
        M-k          移除从光标到“句尾”间的字符
 
 
 
【可能你已经注意到了“删除(delete)”和“移除(kill)”的用词区别,后
 
文会有详细说明。】
 
 
 
注意“<DEL> 和 C-d”还有“M-<DEL> 和 M-d”是根据前述惯例从 C-f和 M-f 衍生的
 
出来的(其实<DEL>不是控制字符,我们先忽略这一点)。C-k和 M-k 的关系在
 
某种程度上与 C-e 和 M-e 一样――如果把“一行”和“一句”作一个类比的话。
 
 
 
 
 
你也可以用一种通用的办法来移除缓冲区里的任何一部分:首先把光标移动到你
 
想要移除的区域的一端,然后按 C-<SPC>(<SPC>指空格)【注意,C-<SPC> 往
 
往被中文用户设定成输入法热键,如果这样,C-<SPC> 就被系统拦截而无法传递
 
给 Emacs 了,在这种情况下可以使用C-@。】,然后将光标移动到你准备移除的
 
文字的另一端。这个时候, Emacs 会高亮光标和你按下 C-<SPC> 之间的文本。
 
最后,按下 C-w 。这样就可以把位于这两点之间的所有文字移除了。
 
 
 
 
 
注意,“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以被重新
 
插入(在任何位置),而被删除的就不能使用相同的方法重新插入了(不过可以
 
通过撤销一个删除命令来做到,后文会提到)。
 
 
 
 
 
重新插入被移除的文字称为“召回(yank)
 
 
 
 
 
召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。
 
 
 
 
 
C-y 可以召回最近一次移除的内容,那如何召回前几次移除的内容呢?它们当然
 
没有丢,你可以用 M-y 来召回它们。在用 C-y 召回最近移除的文字之后,紧接
 
着再按 M-y 就可以召回再前一次被移除的内容,再按一次 M-y 又可以召回再上
 
一次的……连续使用 M-y 直到找到你想要召回的东西,然后什么也不用做,继续
 
编辑就行了。
 
 
 
如果连续按 M-y 很多次,你可能会回到起始点,也就是最近移除的文字。
 
【看得出这实际上是一个环。】
 
 
 
>> 移除一行,移动一下光标,然后再移除另外一行。
 
  按 C-y 将第二次移除的那行召回来。
 
  紧接着再按 M-y,它将会被第一次移除的那行取代。
 
  试着再按几下 M-y 看看会发生什么。
 
  再继续,直到第二行被召回来,然后再做个几次。
 
  如果感兴趣,你可以试着给 M-y 指定一个正的或负的参数。
 
 
 
 
 
* 撤销(UNDO)
 
--------------
 
如果你修改了一段文字,又觉得改得不好,可以用 undo 命令进行撤销:C-/。
 
另外, C-x u 和 C-/ 完全一样,但是按起来有些麻烦。
 
 
 
* 文件(FILE)
 
--------------
 
 
 
 
 
* 缓冲区(BUFFER)
 
------------------
 
 
 
你可以用 C-x C-f 找到并打开第二个文件,但第一个文件仍然在 Emacs 中。要
 
切回第一个文件,一种办法是再用一次 C-x C-f。这样,你就可以在 Emacs 中同
 
时打开多个文件。
 
不过还有一个更简单的办法,那就是用 C-x b。用这条命
 
令,你必须输入缓冲区的名称。(如果是返回默认的第一个不用名称)
 
 
 
 
 
>> 通过输入 C-x C-f foo <Return> 创建一个名为“foo”的文件。
 
  然后输入 C-x b TUTORIAL.cn <Return> 回到这里。
 
 
 
 
 
 
 
C-x s  保存多个缓冲区
 
 
 
 
 
输入 C-x 1 离开缓冲区列表
 
 
 
 
* 命令集扩展(EXTENDING THE COMMAND SET)
 
-----------------------------------------
 
        C-x    字符扩展。  C-x 之后输入另一个字符或者组合键。
 
        M-x    命令名扩展。M-x 之后输入一个命令名。
 
 
 
C-z 可以暂时离开 Emacs――当然,你还可以再回来。
 
 
C-x 的扩展命令有很多,下面列出的是你已经学过的:
 
 
 
        C-x C-f        寻找文件。
 
C-x C-s        保存文件。
 
        C-x C-b        列出缓冲区。
 
        C-x C-c        离开 Emacs。
 
C-x 1          关掉其它所有窗格,只保留一个。
 
        C-x u          撤销。
 
 
 
 
 
 
 
* 自动保存(AUTO SAVE)
 
-----------------------
 
 
 
所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保
 
存文件)然后输入 M-x recover file <Return> 来恢复你的自动保存文件。在
 
提示确认的时候,输入 yes<Return>。
 
 
 
 
 
* 状态栏(MODE LINE)
 
---------------------
 
 
 
“L” 和其后的数字给出了光标所在行的行号。
 
 
 
最开头的星号(*)表示你已经对文字做过改动。刚刚打开的文件肯定没有被改动
 
过,所以状态栏上显示的不是星号而是短线(-)。
 
 
 
状态栏上小括号里的内容告诉你当前正在使用的编辑模式。缺省的模式是
 
Fundamental,就是你现在正在使用的这个。它是一种“主模式”。
 
 
 
 
 
用 C-l C-l 将本行带到屏幕的最上方。
 
 
 
 
 
 
 
* 搜索(SEARCHING)
 
-------------------
 
 
 
C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试。
 
 
 
在按下 C-s 之后,回显区里会有“I-search”字样出现,表明目前 Emacs 正处
 
于“渐进搜索”状态,并等待你输入搜索字串。按 <Return> 可以结束搜索。
 
 
 
>> 输入 C-s 开始一个搜索。注意敲慢一点,一次输入一个字符。
 
  慢慢输入“ccusor”这个词,每敲一个字都停顿一下并观察光标。
 
  现在你应该已曾经找到“ccusor”这个词了。
 
>> 再按一次 C-s,搜索下一个“ccusor”出现的位置。
 
>> 现在按四次 <DEL> ,看看光标是如何移动的。
 
>> 敲 <Return> 结束搜索。
 
 
 
看仔细了么?在一次渐进式搜索中,Emacs 会尝试跳到搜索目标出现的位置。要
 
跳到下一个命中位置,就再按一次 C-s。如果找不到目标,Emacs 会发出“哔”
 
的一声,告诉你搜索失败。在整个过程中,都可以用 C-g 来终止搜索。【你会发
 
现 C-g 会让光标回到搜索开始的位置,而 <Return> 则让光标留在搜索结果上,
 
这是很有用的功能。】
 
 
 
在渐进式搜索中,按 <DEL> 会“撤回”到最近一次搜索的命中位置。如果之前没
 
有一个命中, <DEL> 会抹去搜索字符串中的最后一个字符。比如你已经输入了
 
“c”,光标就停在“c”第一次出现的位置,再输入“u”,光标停在“cu”第一次出现
 
的位置,这时再按 <DEL> ,“u”就从搜索字串中消失了,然后光标会回到“c”第
 
一次出现的位置。
 
 
 
 
 
* 多窗格(MULTIPLE WINDOWS)
 
----------------------------
 
 
 
> 移动光标到这一行,然后输入 C-l C-l。
 
 
 
>> 现在输入 C-x 2,它会将屏幕划分成两个窗格。
 
  这两个窗格里显示的都是本篇快速指南,而光标则停留在上方的窗格里。
 
 
 
>> 试试用 C-M-v 滚动下方的窗格。
 
  (如果你并没有 META 键,用 ESC C-v 也可以。)
 
  【向上滚动是 C-M-S-v,也就是同时按住 CONTROL、META 和 SHIFT 再按 v】
 
 
 
>> 输入 C-x o(“o”指的是“其它(other)”),
 
  将光标转移到下方的窗格。
 
 
 
>> 在下方的窗格中,用 C-v 和 M-v 来滚动。
 
  同时继续在上方的窗格里阅读这些指导。
 
 
 
 
 
C-M-v 是一个 CONTROL-META 组合键。如果你有 META (或 Alt)键的话,可以
 
同时按住CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,
 
因为它们只是用来“修饰(modify)”你输入的字符的。
 
 
 
 
 
>> (在上方窗格里)输入 C-x 1 关掉下方窗格。
 
 
 
(如果你在下方的窗格里输入 C-x 1,那么就会关掉上方的窗格。你可以把这个
 
命令看成是“只保留一个窗格”――就是我们正在编辑的这个。)
 
 
 
不同的窗格可以显示不同的缓冲区。如果你在一个窗格里用 C-x C-f 打开了一个
 
文件,另一个窗格并不会发生什么变化。任何一个窗格里都可以用来打开文件。
 
 
 
 
 
* 多窗口(MULTIPLE FRAMES)
 
------------------
 
 
 
 
 
* 更多精彩(MORE FEATURES)
 
---------------------------
 
 
 
想学习更多的使用技巧,Emacs 使用手册(manual)值得一读。你可以读纸版的
 
书,也可以在 Emacs 中读(可以从 Help 菜单进入或者按 C-h r)。提两个你
 
可能会很感兴趣的功能吧,一个是可以帮你少敲键盘的 completion(自动补全),
 
另一个是方便文件处理的 dired(目录编辑)。
 
 
 
Completion 可以替你节省不必要的键盘输入。比如说你想切换到 *Message* 缓
 
冲区,你就可以用 C-x b *M<Tab> 来完成。只要 Emacs 能够根据你已经输入的
 
文字确定你想要输入的内容,它就会自动帮你补齐。Completion 也可用于命令
 
名和文件名。有关 Completion 的详细说明可以在 Emacs Info 中的
 
“Completion”一节里找到。
 
 
 
Dired 能够在一个缓冲区里列出一个目录下的所有文件(可以选择是否也列出子
 
目录),然后你可以在这个文件列表上完成对文件的移动、访问、重命名或删除
 
等等操作。Dired 也在 Emacs 使用手册中有详细介绍,参见“Dired”一节。
 
 
 
 
 
下面列出主要术语的译词对照,并给出注释说明:
 
 
 
    command              命令
 
    cursor                光标
 
    scrolling            滚动
 
    numeric argument      数字参数
 
    window                窗格 [1]
 
    insert                插入
 
    delete                删除 [2]
 
    kill                  移除 [2]
 
    yank                  召回 [2]
 
    undo                  撤销
 
    file                  文件
 
    buffer                缓冲区
 
    minibuffer            小缓冲
 
    echo area            回显区
 
    mode line            状态栏
 
    search                搜索
 
    incremental search    渐进式搜索 [3]
 
 
 
 
 
20180313 ln 792
 
here
 
 
 
 
 
M-x replace-string ENTER search-string ENTER 替换
 
 
 
 
 
 
用 <Return> 结束文件名的输入
 
Return 这里是什么意思呢  回车么 
 
 
 
 
 
Alt + x
 
输入: linum-mode
 
 
 
 
 
 
 
emacs中如何跳到指定行
 
 
 
M-x goto-line 然后回车  <line_number>
 
 
 
以在.emacs文件中定制一下(添加以下一行):
 
 
 
(define-key ctl-x-map "l" 'goto-line)
 
 
 
 
 
然后每次在emacs中按C-x再按l,输入指定的行号就可以了。
 
 
 
http://blog.csdn.net/grey_csdn/article/details/78905862
 
http://bbs.csdn.net/topics/60028785
 
</pre>
 
==package ==
 
<pre>
 
 
 
也可以使用命令M-x list-packages获取插件列表,使用C-s找到 软件名例如叫 elpy 来安装
 
 
 
 
 
;内置的package管理,emacs24以上的版本有用
 
(require 'package)
 
;;将melpa仓库地址加入到package-archives这个列表变量里面
 
(add-to-list 'package-archives
 
    '("melpa" . "http://melpa.org/packages/") t)
 
;;这个是国内一个elpa仓库镜像,速度更快一些,你懂得
 
(add-to-list 'package-archives
 
    '("popkit" . "http://elpa.popkit.org/packages/") t)
 
;;初始化package
 
(package-initialize)
 
;;更新仓库里面的package
 
(when (not package-archive-contents)
 
  (package-refresh-contents))
 
</pre>
 
 
 
===常用操作===
 
<pre>
 
Alt+x list-packages
 
 
 
可以先用C-s向下搜索  autopair
 
找到后 回来后 按i再按x就下载到本地了。然后打开emacs的配置文件init.el,在里面添加下面:
 
 
 
常用快捷键
 
i  - 选择要安装的包
 
d - 选择要删除的包
 
U - 升级已安装的包
 
x  - 执行操作
 
d - 选择要删除的包
 
</pre>
 
 
 
[http://longlycode.github.io/2016/02/02/emacs%E5%AE%8C%E5%85%A8%E8%A1%A5%E5%AE%8C%E8%AE%A1%E5%88%92-%E4%B8%89/ emacs完全补完计划(三)——package的引入和管理]
 
 
 
== 高级==
 
 
 
 
 
===Edit mediawiki sites from emacs ===
 
[https://github.com/hexmode/mediawiki-el mediawiki.el -- Edit mediawiki sites from emacs]
 
 
 
==emacs 学习==
 
 
 
[https://www.cnblogs.com/holbrook/archive/2012/02/15/2357336.html Emacs学习笔记(1):初学者的学习计划]
 
 
 
[https://www.cnblogs.com/holbrook/archive/2012/03/06/2381636.html Emacs学习笔记(7):简单的配置]
 
 
 
[https://www.cnblogs.com/holbrook/archive/2012/02/15/2357335.html Emacs学习笔记(2): 初识Emacs]
 
 
 
[https://www.cnblogs.com/holbrook/tag/emacs/ emacs 学习标签 ]
 
 
 
== 参考==
 
[https://my.oschina.net/alphajay/blog/7737 Emacs快捷键的总结]
 
 
 
[https://segmentfault.com/a/1190000003811296 走近emacs 201801]
 
 
 
[http://blog.csdn.net/cherylnatsu/article/details/6536959  Emacs常用命令快速参考]
 
 
 
[https://www.ibm.com/developerworks/cn/education/aix/emacs1-1/index.html 学习 Emacs 的基础知识]
 
 
 
[https://github.com/redguardtoo/mastering-emacs-in-one-year-guide 一年成为 Emacs 高手 ]
 
 
 
http://emacser.com/
 
 
 
Emacs 入门
 
https://i.linuxtoy.org/docs/guide/ch25.html
 
 
 
[https://www.emacswiki.org/emacs/%E9%A6%96%E9%A1%B5 emacswiki]
 
 
 
Emacs org mode
 
https://i.linuxtoy.org/docs/guide/ch32s03.html#id3155525
 
 
 
 
 
https://www.emacswiki.org/emacs?interface=zh-cn
 
 
 
https://www.cnblogs.com/blfshiye/p/4566900.html
 
 
 
 
 
https://www.gnu.org/software/emacs/manual/html_node/efaq/Installing-Emacs.html
 
 
 
[https://www.gnu.org/software/emacs/tour/index.html  A Guided Tour of Emacs]
 
 
 
Emacs - the Best Python Editor https://realpython.com/blog/python/emacs-the-best-python-editor/
 
 
 
Emacs:最好的Python编辑器  http://codingpy.com/article/emacs-the-best-python-editor/
 
 
 
[https://wiki.archlinux.org/index.php/Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E8.BF.90.E8.A1.8CEmacs Emacs (简体中文)]
 
 
 
[http://ergoemacs.org/emacs/emacs_package_system.html How to Install Packages Using ELPA, MELPA]
 
 
 
[http://www.cnblogs.com/xiaosha/p/3366422.html emacs python 配置]
 
 
 
[https://maskray.me/blog/2015-09-18-conversion-to-emacs 皈依Emacs]
 
 
 
[https://elloop.github.io/tools/2016-03-01/emacs-accumulate-5-packages-extensions  【积水成渊-逐步定制自己的Emacs神器】3:为Emacs安装扩展]
 
 
 
===wiki ===
 
Wiki编辑器, 通过 Yaoddmuse 几乎能支持所有的Wiki格式, 实时语法高亮, 你不用担心保存以后确发现格式错了
 
 
 
https://www.emacswiki.org/emacs/Yaoddmuse
 
 
 
[https://blog.csdn.net/freexploit/article/details/572224 用Emacs Wiki帮你写Blog]
 
 
 
===2019===
 
[http://longlycode.github.io/2016/01/28/emacs%E5%AE%8C%E5%85%A8%E8%A1%A5%E5%AE%8C%E8%AE%A1%E5%88%92-%E4%B8%80-1/ emacs完全补完计划(一)——嘴炮和入门]
 
 
 
 
 
 
 
[http://jixiuf.github.io/blog/emacs-%E8%87%AA%E5%B8%A6%E7%9A%84%E7%AE%80%E5%8D%95%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B%28tutorial%29/ emacs 自带的简单入门教程(TUTORIAL)]
 
 
 
[http://www.cnblogs.com/Open_Source/archive/2011/07/17/2108747.html Org-mode 简明手册]
 
 
 
[http://blog.csdn.net/grey_csdn/article/category/7131378/5 小灰笔记 emacs]
 
 
 
[https://www.jianshu.com/p/b4cf683c25f3 从零开始——Emacs 安装配置使用教程 2015]
 
 
 
 
 
[https://www.zhihu.com/question/30955165 Emacs有什么优点,用Emacs写程序真的比IDE更方便吗]
 
 
 
=== 参考 for python===
 
[http://codingpy.com/article/emacs-the-best-python-editor/ Emacs:最好的Python编辑器]
 
=== 参考 for c===
 
[https://segmentfault.com/a/1190000003878553 Emacs 中 C/C++ 编程基本环境配置]
 
 
 
[http://txgcwm.github.io/blog/2013/07/20/jiang-emacspei-zhi-cheng-%5B%3F%5D-ge-c-slash-c-plus-plus-de-idebian-cheng-huan-jing/#top 将Emacs配置成一个C/C++的IDE编程环境]
 
 
 
[http://blog.guorongfei.com/2014/09/16/emacs-c-cpp-python-config/ Emacs C、C++、Python 编程的简单配置]
 
[[category:ops]] [[category:emacs]]
 

2019年10月17日 (四) 02:39的版本

  • 起因

因为是个人业务 ,所以不小心 机器 因为加错防火墙 ,把自己也deny 了 于是 只好多次关机 ,开机 然后 终于成功进入单用户模式,可是开机后,上wiki 新添加一个文章,说已登出,于是再登录,问题就来了,提示

似乎您的登录会话有问题; 为了防止会话劫持,这个操作已经被取消。 请返回先前的页面,重新载入该页面,然后重试。 根本没办法 登录 ,中间又是请教别人 ,又是分析代码 想用的都用了 差点重装wiki 还好 后来才懂了

  • 解决

一开始是以为关闭redis 搞定

其实清空redia 数据就好了 就一条 flushall使命嘛

然后在浏览器删除相对应的 移除特定网站的 Cookie

2019年迁移wiki时 是因为防火墙加错了 看 memcache 相关

昨天想重装呢 笑死了

  • 新发现

这几天 用上公司的pc 一开始可以 chrome 登录 后来发现和上面一样的问题 ,搞了N久 才发现清空数据后,不让同步密码就可以了

Redis Flushall 命令 Redis 服务器 Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )

http://www.runoob.com/redis/server-flushall.html


Firefox用户和会话丢失漏洞 对不起!由于会话数据丢失,我们无法处理您的编辑。 您可能已经退出。请核实您是否仍在登录,并重试。如果仍然不能工作,尝试退出并重新登录,并检查您的浏览器是否允许来自该网站的cookie