10/07 10

Emacs Lisp语言 不指定

jason , 08:10 , 我的收藏 » Other , 评论(0) , 引用(0) , 阅读(71) , Via 本站原创
http://www.neu.edu.cn/cxsj/online/C1/Lisp%E8%AF%AD%E8%A8%80.htm
http://www.lisperati.com/casting.html
Tags:
10/07 9

Emacs 中文手册 不指定

jason , 14:12 , 我的收藏 » Other , 评论(0) , 引用(0) , 阅读(122) , Via 本站原创
符号

      C-  意思是按住 Ctrol 键
M-   意指 Meta 键 (键盘上若无Meta 键,则可以ALT ESC 键来取而代之)
DEL  意指退格键 (不是 删除(Delete) key)
RET  意指回车键
SPC  意指空格键
ESC  意指Escape键
TAB  意指Tab键

像 "C-M-" (or "M-C") 这样连在一起的意味着同时按住 Control 和 Meta 键不放.


用方向键
   C-p 、 C-b 、 C-f 和 C-n 这四个命令。它们的功能和方向键是一样的,如下图所示:

            上一行 C-p (Prev line)
                          .
                          .
                          .                              
  向左移 C-b .... 。.... 向右移 C-f (Forward  character)
(Backward )     .
                          .
                          .
              下一行 C-n (Next line)

“P N B F”四个字母分别代表了四个词,用这四个词记忆这些组合键会更容易:
P 代表 previous(上一行),
N 代表 next(下一行),
B 代表 backward(回
退),
F 则代表 forward(前进)


进入Emacs
要进入GNU Emacs,只需键入它的名字             emacs
离开Emacs
挂起Emacs:                                    C-z
永久离开Emacs                                  C-x C-c

文件
读取文件到Emacs                                C-x C-f
保存文件到磁盘                                  C-x C-s
保存所有文件                                    C-x s
插入其它文件的内容到当前缓冲                    C-x i
用将要读取的文件替换当前文件                    C-x C-v
将当前缓冲写入指定的文件                        C-x C-w
Version control checkin/checkout                     C-x C-q

取得帮助
进入帮助系统很简单,只需要输入C-h(或F1)并跟随要获取帮助的对象,初次使用Emacs的用户可以输入C-h t进入使用手册
离开帮助窗口                                    C-x 1
滚动帮助窗口                                    C-M-v
匹配:显示与字符a串匹配的命令                   C-h a
显示一个键的功能                                C-h c
详细描述一个功能                                C-h f
取得详细模式的信息                              C-h m

错误恢复
取消当前要执行的命令                            C-g
恢复系统崩溃后丢失的文件                        M-x recover-file
撤销更新                                        C-x u或C-_
使缓冲回复到初始内容                            M-x revert-buffer
Redraw garbaged scree   n                         C-l

增量查找(Incremental Search)
向前查找                                        C-s
向后查找                                        C-r
规则表达式查找                                  C-M-s
反向规则表达式查找                              C-M-r
选择前一个查找字符串                            M-p
选择下一个查找字符串                            M-n
退出增量查找                                    RET
取消上一个字符的作用                            DEL(Backspace)
退出当前查找模式                                C-g
在查找的过程中可重复使用C-s和C-r来改变查找方向

移动(Motion)
向前一个字符                                    C-f
向后一个字符                                    C-b
向前一个字                                      M-f
向后一个字                                      M-b
向上一行                                        C-p
向下一行                                        C-n
到行首                                          C-a
到行尾                                          C-e
到句首                                          M-a
到句尾                                          M-e
到段首                                          M-{
到段尾                                          M-}
到页首                                          C-x [
到页尾                                          C-x ]
到表达式首部                                    C-M-f
到表达式尾部                                    C-M-b
到函数首部                                      C-M-a
到函数尾部                                      C-M-e
到缓冲首部                                      M-<
到缓冲尾部                                      M->
滚动到下一屏                                    C-v
滚动到上一屏                                    M-v
滚动到右边一屏(内容向左移动)                  C-x <
滚动到左边一屏(内容向右移动)                  C-x >
滚动当前行到屏幕中央                            C-u C-l

Killing和Deleting
向前delete字符                                  C-d
向后delete字符                                  DEL(Backspace)
向前delete到字首                                M-d
向后delete到字尾                                M-DEL(Backspace)
向前delete到行首                                M-0 C-k
向后delete到行尾                                C-k
向前delete到句首                                C-x DEL(Backspace)
向后delete到句尾                                M-k
向前delete到表达式首部                          M-- C-M-k
向后delete到表达式尾部                          C-M-k
Kill区域                                        C-w
拷贝区域到Kill Ring                              M-w
Kill到下一个给定字符出现的位置                  M-z
拉回(yank)上次kill的内容                      C-y
用更早kill的内容取代拉回的上次kill的内容        M-y

标记(Marking)
标记当前位置                                    C-SPC或C-@
以字符为单位使用移动命令动态标记区域            C-x C-x
以字为单位使用移动命令动态标记区域              M-@
标记一段                                        M-h
标记一页                                        C-x C-p
标记一个表达式                                  C-M-@
标记一个函数                                    C-M-h
标记整个缓冲区                                  C-x h

Query Replace
交互式地替换一个文本串                          M-%
交互式地替换一个规则表达式                      M-x query-replace-regexp
替换当前的并移动到下一处                        SPE
替换当前的但不移动到下一处                      ,
不替换当前的并移动到下一处                      L(Backspace)
替换所有剩下的符合条件的文本                    !
退出替换模式                                    RET
进入递归的编辑模式                              C-r
退出递归的编辑模式                              C-M-c

多窗口(Multiple Windows)
(When two commands are shown,the second is for “other frame”)
删除所有其它窗口                                C-x 1
上下分割当前窗口                                C-x 2 C-x 5 2
左右分割当前窗口                                C-x 3
删除当前窗口                                    C-x 0 C-x 5 0
滚动其它窗口                                    C-M-v
切换光标到另一个窗口                            C-x o
选择另一个窗口中的缓冲                          C-x 4 b C-x 5 b
显示另一个窗口中的缓冲                          C-x 4 C-o C-x 5 C-o
在另一窗口中查找并打开文件                      C-x 4 f C-x 5 f
在另一窗口中以只读方式打开文件                  C-x 4 r C-x 5 r
在另一窗口中运行dired命令                       C-x 4 d C-x 5 d
在另一窗口中查找tag                             C-x 4 . C-x 5 .
增加窗口高度                                    C-x ^
减小窗口宽度                                    C-x {
增加窗口宽度                                    C-x }
格式(Formatting)
缩进当前行(与模式相关)                        TAB
缩进区域(与模式相关)                          C-M-
缩进表达式(与模式相关)                        C-M-q
Indent region rigidly arg. Columns                    C-x TAB
在光标后插入一个新的行                          C-o
静态地将一行下移                                C-M-o
删除光标附近的空行(留下一行)                  C-x C-o
与上一行合并成一行                              M-^
删除光标附近的所有空格                          M-
删除光标附近的空格(留下一格)                  M-SPC
Fill paragraph                                     M-q
Set fill column                                    C-x f
设置每一行开始的前缀                            C-x .
设置字体                                        M-g

Case Change
将一个字设置为大写                              M-u
将一个字设置为小写                              M-l
将一个字首字母设置为大写                        M-c
将一个区域设置为大写                            C-x C-u
将一个区域设置为小写                            C-x C-l

The Minibuffer
(the following keys are defined in the minibuffer)
最大程度地补全命令                              TAB
补全命令中的一个字                              SPC
完成并执行一个命令                              RET
列出命令所有可能的后续部分                      ?
列出在当前命令之前输入的命令                    M-p
列出在当前命令之后输入的命令                    M-n
用规则表达式在命令历史记录中向后搜寻            M-r
用规则表达式在命令历史记录中向前搜寻            M-s
重复执行上一条命令                              C-x ESC ESC

缓冲(Buffer)
选择另一个缓冲                                  C-x b
列出所有的缓冲                                  C-x C-b
Kill一个缓冲                                     C-x k

置换(Transposing)
字符置换                                        C-t
字置换                                          M-t
行置换                                          C-x C-t
表达式置换                                      C-M-t

拼写检查(Spelling Check)
对当前的字进行拼写检查                          M-$
检查区域内所有的字                              M-x ispell-origin
检查缓冲内所有的字                              M-x ispell-buffer

标记 (Tags)
查找标记                                        M-.
查找标记下一次出现的位置                        C-u M-.
指定一个新的标记文件                            M-x visit-tags-table
Regexp search on all files in tabs table                 M-x tags-search
在所有文件中执行查询-替换                       M-x tags-query-replace
继续进行上一次标记查找或查询-替换               M-,

Shells
执行一个shell命令                               M-!
在一个区域上执行sheel命令                       M-|
通过shell命令过滤区域                           C-u M-|
在窗口中启动一个shell                            M-x shell

矩形(Rectangles)
拷贝一个矩形到寄存器                            C-x r r
Kill矩形                                         C-x r k
拉回矩形                                        C-x r y
打开一个矩形, 将文本移动至右边                  C-x r o
清空矩形                                        C-x r c
为矩形中每一行加上一个字符串前缀                C-x r t

规则表达式(Regular Expressions)
除换行符外的所有单个字符                        .
零个或多个重复                                  *
一个以上的重复                                  +
零个或一个重复                                  ?
转译字符                                        
选择(or)                                      |
分组                                            (…)
与第n个组相同的文本                            n
At work break                                    b
Not at work break                                 B

寄存器(Register)
存储区域到寄存器                                C-x r s
插入矩形内容到缓冲                              C-x r i
存储光标位置到寄存器                            C-x r SPC
跳跃到寄存器中存储的光标位置                    C-x r j

键盘宏(Keyboard Macros)
开始定义一个键盘宏                              C-x (
结束键盘宏的定义                                C-x )
执行上一次定义的键盘宏                          C-x e
追加到上一个键盘宏                              C-u C-x (
为上一个键盘宏命名                              M-x name-last-kbd-macro
在缓冲中插入Lisp                                M-x insert-kbd-macro


Tags
    Tags 是一个显为人知的功能? 所以我想提一下. 这不是emacs发明的, 而是vi 原本的特异功能. emacs只是发扬光大而已.

假设你有一个目录, 里面是一个程式的原始码, 比如说, tin 的原始码, 放在 ~/tin-1.3beta 下面. 你想看它们.

首先, 叫emacs cd到该目录:  M-x cd

然后, 建立tag table. tag table 就是一张对照表, 记录哪个符号(variable/function call) 对映到哪个档案的哪个地方. 有这张表, emacs可以让我们快速的在程式码内游走. 一般这张表是一个档案, 叫作TAGS (大写)

  M-! etags *.c

M-! 是执行external shell command的意思. etags就是emacs的建表程式. 你只要告诉它你的source code在那里即可.

vi的话是使用ctags这个程式, 它建出来的档名叫tags (小写). 因为我们介绍emacs, 所以不管它.

然 后, 怎么看程式? 你知道所有的C 程式都是由main()开始, 所以你想找到main()在哪个档案. 这时只要按 M-. 然后emacs会问你tag table在哪里. 因为我们已经cd到该目录, 直接按enter就好了. 然后输入main, emacs就会把你带到main(){ ... }去.

如果 你看到某个程式片断呼叫一个你没看过的函式, 你可以把游标移到该函式的名字上, M-. ENTER 就搞定了.

如果 emacs找错了 (比如有变数和函式同名, emacs跳到变数去), 那你可以用 C-u M-. 找下一个.

在编辑程式码的时候, M-SPC 很有用, 它会把游标附近的空白缩成一个. 在其它地方也有效.

拼写检查

当然只是针对英文。

Ispell

选中一块区域,或者对整个编辑缓冲区进行拼写检查: M-x ispell-buffer RET, 这时会打开ispell缓冲区,C-h可以查看一些拼写检查的帮助信息。

检查单词。在一个单词上执行M-$,会对这个单词进行拼写检查。

单词拼写补全。在一个未拼完的单词后执行ESC TAB(M-TAB)。

只要启用过Ispell, 他就将一直在后台运行。M-x ispell-kill-ispell,可以杀死这个进程。

感觉很好用。

flyspell

一个扩展,可以在编辑的时候直接进行拼写检查,也就是spell-check on the fly。它也是利用Ispell。

M-x flyspell-mode RET
Tips

改变buffer的只读属性

M-x toggle-read-only

在C模式下输入tab

C-q TAB : 对TAB不做解释,直接输入
Tags:
10/07 7
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。

Rsync的命令格式可以为以下六种:
  rsync [OPTION]... SRC DEST
  rsync [OPTION]... SRC [USER@]HOST:DEST
  rsync [OPTION]... [USER@]HOST:SRC DEST
  rsync [OPTION]... [USER@]HOST::SRC DEST
  rsync [OPTION]... SRC [USER@]HOST::DEST
  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
Tags:
10/07 4
从德国人的眼里,我看到了很多............

点击在新窗口中浏览此图片

10/06 25
把图片实时同步到图片服务器。。。
10/06 24
1.先启动一个测试用的ttserver
注意使用的所有路径都是绝对路径
ttserver -host 192.168.0.100 -port 20000 -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/ulog/ -log $(pwd)/temp/test.log -pid $(pwd)/temp/test.pid -sid 9 $(pwd)/temp/test_data.tch#bnum=1000#rcnum=0#xmsiz=0m

2. 查看服务器统计信息
tcrmgr inform -port 20000 -st 192.168.0.100

3. 写入数据
tcrmgr put -port 20000 192.168.0.100 test1 value1

4. 读取数据
tcrmgr get -port 20000 192.168.0.100 test1

5. 删除数据
tcrmgr out -port 20000 192.168.0.100 test1

6. 查看所有的key
tcrmgr list -port 20000 192.168.0.100

7. 备份数据
注意:路径是服务器上的绝对路径,否则显示“./tcrmgr: error: 9999: miscellaneous error”
tcrmgr copy -port 20000 192.168.0.100 $(pwd)/temp/test2.tch

8. 日志导出(屏幕上打印,十六进制字符串格式)
注意:命令不同了
注意:目录是服务器上的ulog的绝对路径
ttulmgr export $(pwd)/ulog/

9. 同步内存数据到磁盘(没搞懂有什么特别之处,可能是当ttserver使用-uas参数异步写入日志的时候起作用)
tcrmgr sync -port 20000 192.168.0.100

10. 数据导入
注意:tsv格式的文件以TAB分隔,如:test2\tvalue2\n
注意:路径是本地路径,所以不必是绝对路径
tcrmgr importtsv -port 20000 192.168.0.100 temp/2.tsv

11. 通过ulog日志恢复数据
注意:路径是服务器上的绝对路径
tcrmgr restore -port 20000 192.168.0.100 $(pwd)/old_ulog/

12.  打印更新日志(挂起,一直显示日志)
可能是用于实时查看ttserver有哪些操作,相当于tail -f
tcrmgr repl -port 20000 -ph 192.168.0.100

13.  下一个实验:启动一个带复制功能的ttserver,以前面启动的ttserver为master
ttserver -host 192.168.0.100 -port 20001 -mhost 192.168.0.100 -mport 20000 -rcc -rts $(pwd)/temp_1/test_1.rts -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/temp_1/ -log $(pwd)/temp_1/test_1.log -pid $(pwd)/temp_1/test_1.pid -sid 10 $(pwd)/temp_1/test_1.tch#bnum=1000#rcnum=0#xmsiz=0m

14.  再启动一个普通的ttserver,不与其他服务器相关
ttserver -host 192.168.0.100 -port 20002 -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/ulog_2/ -log $(pwd)/temp_2/test_2.log -pid $(pwd)/temp_2/test_2.pid -sid 11 $(pwd)/temp_2/test_data_2.tch#bnum=1000#rcnum=0#xmsiz=0m

15. 修改某个ttserver的master
tcrmgr setmst -port 20001 -mport 20002 192.168.0.100 192.168.0.100
注意:只有以复制方式启动的ttserver,修改master后才能从新的数据库复制数据
注意:每个ttserver只能有一个master,修改后,不能再从以前的master复制数据
Tags:
10/06 23
#!/bin/sh
for F in `ls user_post/config.*.php`
do
         /php/bin/php-cgi $F > /dev/null &
done



放到后台运行的方法
nohup jasonyu.php &
分页: 2/33 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]