美文网首页
emacs基础操作

emacs基础操作

作者: 思而忧 | 来源:发表于2017-08-13 15:08 被阅读0次

    为什么不用IDE?因为在服务器上直接写程序,不可能用IDE,虽然现在的IDE有远程同步代码的功能和远程调试功能,可惜,在很多大牛的手中,用IDE反而更慢,而且对IDE一旦形成依赖,对以后的编程能力也会有影响,想真正地学习编码和称为大牛,有些弯路必须要走的,除非是写IDE的程序(安卓app等等,那些就没办法了)。

    那么VIM跟EMACS两者为什么选择EMACS呢?公司的人全都是用VIM的,我一开始也是用VIM,用VIM写程序也的确很快,EMACS的快捷键很多,经常记不住。对于EMCAS的着迷是LISP语言,学完可以自己写脚本同是也能提高自己水平,并不是为了在公司的人面前装逼(才刚刚入门emacs也装不了逼,公司大牛们的vim玩得超级6的)而且发现浏览器里面的一些操作跟EMACS很相似,换行什么的,现在在浏览器上写东西也不需要鼠标了。EMACS的学习曲线真的就想网上看到的那个图片一样,学习EMACS有时候给你糖吃,也有时候给你挖坑,路漫漫兮。

    一些关于在emacs tutorial里面讲到的操作,简易版。

    • 移动
      C+n next line
      C+p previous line
      C+f foward a character
      M+f foward a word
      C+b back a character
      M+b back a word
      C+v next page
      C+M+V 滚动副屏
      C+l 光标在中间/底部 / 顶部
      M+v previous page
      M+< 到文本头
      M+> 到文本尾
      C+x u 或者 ctrl + /撤销
      C+g 取消命令

    • 添加
      C+o 在光标后面添加一个空行,光标保留在原来的位置
      C+j 在光标后面添加一个空行,光标在新的一行的位置
      C+x i 把某个文件的所有内容插入到光标之后
      C+u <number> <command>/<word> 重复number次的命令或者单词

    • 删除
      C+d delete光标后面的一个字母
      C+k kill 光标后面到句末的所有字符
      M+d delete光标后面的一个单词
      M+k kill光标后面的一个句子(到句号为一句话)
      C+y 从kill的缓冲区的栈顶粘贴
      M+y 切换kill缓冲区的栈顶的内容(一个循环)

    • 文件
      C+c ctrl+f打开新文件
      C+c b 打开在buffer的文件
      C+c C+b 查看buffer
      C+x C+f <filename> 新建一个文件
      C+x 4 C+f 在新的窗口打开文件

    • 缓冲区
      C+x b 在当前的窗口打开一个在buffer的文件
      C+x C+b 在新的窗口查看buffer的内容,在buffer列表里面,可以直接用n p 来做换行而不需要用C+n 和 C+p,在buffer列表里面,按o在上面的窗口打开文件,按<return>在当前的buffer列表窗口打开文件
      C+x k 关闭当前文件,从buffer区删去

    • 查找
      C+s 向下查找
      C+r 向上查找
      M+c 切换对大小写是否敏感
      M+e 重新编辑要查找的内容
      M+x occur 使用正则表达式搜索,并新建一个窗口(buffer)显示
      M-x rgrep 快速的递归文本检索(recursive grep search)
      M+x grep 在当前目录中查找制定的regrep

    • 窗口
    按键 命令 作用
    C-x 2 split-window-vertically 垂直拆分窗口
    C-x 3 split-window-horizontally 水平拆分窗口
    C-x o other-window 选择下一个窗口
    C-M-v scroll-other-window 滚动下一个窗口
    C-x 4 b switch-to-buffer-other-window 在另一个窗口打开缓冲
    C-x 4 C-o display-buffer 在另一个窗口打开缓冲,但不选中
    C-x 4 f find-file-other-window 在另一个窗口打开文件
    C-x 4 d dired-other-window 在另一个窗口打开文件夹
    C-x 4 m mail-other-window 在另一个窗口写邮件
    C-x 4 r find-file-read-only-other-window 在另一个窗口以只读方式打开文件
    C-x 0 delete-window 关闭当前窗口
    C-x 1 delete-other-windows 关闭其它窗口
    C-x 4 0 kill-buffer-and-window 关闭当前窗口和缓冲
    C-x ^ enlarge-window 增高当前窗口
    C-x { shrink-window-horizontally 将当前窗口变窄
    C-x } enlarge-window-horizontally 将当前窗口变宽
    C-x - shrink-window-if-larger-than-buffer 如果窗口比缓冲大就缩小
    C-x + balance-windows 所有窗口一样高
    • 帮助
      C+h t 打开emacs simple tutorial
      C+h ? 提示C-h为前缀的所有指令的发用(可以用M-x help <Return>来获取帮助)
      C+<character> ?提示C-<character>指令为前缀的所有用法
      C+h c <command> 查找你需要的快捷键的帮助
      C+h k <command> 打开某个命令的帮助文件
      C+h f 返回关于某个指令的信息
    • 折叠
      M-1 C-x $ 折叠所有
      C-x $ 展开所有

    • 文本块操作
      C+w删除并复制文本块
      M+w复制文本块
      C+x SPACE 进入set-mark模式,可以选择区域块
      C+x SPACE 切换set-mark模式,不同的是选择的区域块是矩形的
      C+x r t 用字符串替换选中的区域
      C+x r d 删除区域(不留空格)
      C+x r C 删除区域(在原来的位置保留为空)
      C+x r k 复制并删除区域(可以用C+w / M+w)
      C+x r y 粘贴用C+x r k 删除的区域块
      C+x r o 在这块区域插入空白的方格(选择的区域有多大就在前面补多少个空格)
      C+x r r 将选定的矩形区域复制到某个寄存器,在输入这组键后命令栏会等待你输入寄存器号,这时随便输入一个数字即可,不过的记得它,因为待会儿粘贴的时候还得用到这个寄存器号(相当于放在一个缓存里面,可以随时用来复制粘贴而已)
      C-x r i 插入寄存器的内容,输入此键后再输入寄存器号可将寄存器中的内容插入到当前区域。

    • 一些比较常用的指令
      M+x rgrep 递归搜索,搜索包含某个字符串文件,非常常用,找不到相应文件的时候就能用到

    相关文章

      网友评论

          本文标题:emacs基础操作

          本文链接:https://www.haomeiwen.com/subject/mfuzlxtx.html