zoukankan      html  css  js  c++  java
  • Emacshacking第二天

      Starting!!

      1.先啰嗦几句

     3   
         1.关于elisp语法
    4 5   a.在emacs中,setq是用来对变量赋值的。但是其中有一些变量属于“buffer-local”,在不同的buffer中有不同的值。如果想全局对这种变量进行赋值,应该使用setq-default。 6 换句话将,如果一个变量不是“buffer-local”,那么setq和setq-default没有区别。
    7 这是StackOverflow上的论述。

    8     多一句嘴,后续的学习离不开lisp,按“M-x info”可以找到GUN的lisp经典教程。
    9
      2.关于备份文件
            一直觉得这里面的水很深,所以先一步一步来,最基本的backup-file是指“在emacs中打开一个文件,就会有一个相应的以“~”开头的backup-file”。
    因为之后的配置文件直接用Git管理,所以直接禁止了该文件的生成。(setq make-backup-file nil)
    10
       3.org-mode的补充
        因为刚开始在orgmode的编辑环境下编辑其他类型的代码,会特别不方便,就像在注释里写代码一样不会享受任何缩进,高亮和补全等快捷。(因为一种语言只能有一种Majormode)
    在orgmode模式下,有一种方式,可以实现这种功能。功能代码直接按“<s”+tab。
            #+BEGIN_SRC emacs-lisp
                  ########### 一些lisp代码
    #+END_SRC
        将光标放在要编辑的lisp代码中,按“C-c ‘”emacs就会在另一个窗口中用emacs-lisp(可以换成java C++ 等所有主流语言)这个Majormode来让你尽心编辑。完成编辑后便可以按“C-c ’”emacs自动将最新的内容复制到原来的编辑区。
    11 */

      3.lisp语法

      教程中的讲解很不错,我打算通过跟上教程逐渐增强我的emacs的配置(主要是安装各种package或者提供各式的便捷功能),过程中遇到语法知识,就直接提出啦需要记忆的写在博客上。

    1 /*
    2 
    3     刚刚实现了一个智能匹配括号的功能。
    4     (add-hook 'emacs-lisp-mode-hook 'show-paren-mode)
    5     涉及到Hook:
           A hook is a Lisp variable which holds a list of functions, to be called on some well-defined occasion. 
    6   在emacs打开某一个Majormode的时候(打开方式有很多种,可以是启动的时候默认打开,或者是直接在编辑器中打开),就顺便启动hook在其上的所有功能。
          这样的好处是,避免emacs的配置太多启动太慢,所以避免不必要的hook,只在相应的编辑区运行该配置。
    8 9 */

      

       4.改进package系统

       使用MELPA作为package的源,上面都是最新的版本,当然可以使用stable版本的源。

    2 
    3    1.“M-x package-list-packages”来在emacs中直接启动显示packages系统。
    4    2.MELPA中有三千多和package,如果安装多个,在其前面按“I”,取消按“U”
    5    3.搜索特定的package“C-s”
    6    4.删掉已经安装过的package,“D”
    7    5.更新所有package,按“U”。自动在旧的版本旁边添加“D”等待删除 
    8    6.在标记好所有package之后,按"X"来执行这些标记
       7.“M-x package-autoremove”是在~/.emacs.d/elpa目录下进行检查。选择和配置文件中的不一致的package会被自动删除。


    改进的地方
    1. 在进行优化,使用两个package(counsel&swiper)可以在当前buffer中生成一个minibuffer,并优化其界面,看起来很直观。快捷键的绑定在GitHub
      

      “M-x” customize-group
      该命令用来对package系统中的package进行自我配置。
       9 */

      

      5.关于快捷键

     1 /*
     2 
     3 
     4 (global-set-key (kbd "C-h C-f") 'counsel-find-file)
     5 (global-set-key (kbd "C-h C-v") 'find-variable)
     6 (global-set-key (kbd "C-h C-k") 'find-function-on-key)
     7 
     8 这里的快捷键和“C-h f”等快捷键不一样的地方在于:
     9 前面的方式可以直接找到所有对象的位置,但是系统默认的只提供其定义。
    10 
    11 */

      

      6.关于orgmode

     1 /*
     2 
     3      在 Org-mode 中重置有序列表序号可以直接使用 M-<RET> 。
     4 
     5      可以在orgmode中进行时间管理
     6 
     7      C-c C-s 选择想要开始的时间
     8      C-c C-d 选择想要结束的时间
     9      C-c a 可以打开 Agenda 模式菜单并选择不同的可视方式( r )
    10    “D”一天的时间管理
    “W”一周的 时间管理
    11 */

      现阶段主要还是跟着教程将所有的lisp语法和概念熟悉,教程学习结束之后,主要的方式就会自己去MELPA上找packages,然后上GitHub和社区进行自主学习,坚持咯~

         

  • 相关阅读:
    mysql常用命令
    mysql设置外网访问权限
    免费云服务部署项目
    使用虚拟主机部署Php项目总结
    github基本使用命令笔记
    git push -u origin master报错,error: failed to push some refs to 'https://github.com/Youlandawq/Qt.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote c
    centos7安装docker
    java设计模式之单例模式
    java se高级之多线程(一)
    jdbc编程
  • 原文地址:https://www.cnblogs.com/haotianmichael/p/8421689.html
Copyright © 2011-2022 走看看