emacs 插件开发



;; global-set-key为函数 接收两个参数
;; 一个字符串 "\M-r" 代表Alt+r
;; 一个函数   前面用`符号表示该参数为函数

(global-set-key "\M-r" `indent-buffer)

;; 等价于
(global-set-key "\M-r" (quote indent-buffer))

string,Numberscharactersvectors 求值是 self-evaluating , 不用加 quote


(defun other-window-backward ()
  ;; interactive 让该函数变为可交互式函数  ALT+x 会看到
  (interactive)
  (other-window -1))


(defun other-window-backward (n)
  ;; 有interactive "p" 这个标示的函数 n默认为1 指定次数调用的时候 n为指定的次数
  (interactive "p")
  (other-window (- n)))


(defun other-window-backward (&optional n)
  ;; &optional 代表参数可选
  (interactive "p")
  (if n
      (other-window (- n))
      (other-window (- 1))))


(defun other-window-backward (&optional n)
  ;; &optional 代表参数可选
  (interactive "p")
  (other-window (- (or n 1))))
;;(other-window (if n (- n ) -1)))


(defun other-window-backward (&optional n)
  ;; P 为大写
  (interactive "P")
  ;; prefix-numeric-value 为emacs内置函数 等价于以上
  (other-window (- (prefix-numeric-value n))))


(defalias `scroll-ahead `scroll-up)
(defalias `scroll-behind `scroll-down)
(defun scroll-n (&optional n)
  (interactive "P")
  (scroll-ahead (prefix-numeric-value n)))

hook本质上是一个变量,值为一个列表,列表中有一个或多个函数,这些函数会在某个指定的条件下依次执行


(defun read-only-if-symlink ()
  ;; file-symlink-p 函数返回一个文件是否为链接文件 p代表predicate(断言)
  ;; buffer-file-name 当前buffer的绝对路径
  (if (file-symlink-p buffer-file-name)
      ;; progn 顺序解析其后的所有表达式 最终值为最后一个表达式的值
      (progn
       (setq buffer-read-only t)
       (message "File is a symlink"))))

(add-hook `find-file-hooks `read-only-if-symlink)

;; (remove-hook `find-file-hooks `read-only-if-symlink)


;; 只是演示 在hook中不用使用lambda
(add-hook `find-file-hooks
          `(lambda ()
             (if (file-symlink-p buffer-file-name)
                 (progn
                  (setq buffer-read-only t)
                  (message "File is symlink")))))


;; 报错信息
(error "This is error")


;; 使用局部变量
(defun local-var (n)
  (let ((x 12))
    (* n x)))

(local-var 20)

;; global-set-key为函数 接收两个参数
;; 一个字符串 "\M-r" 代表Alt+r
;; 一个函数   前面用`符号表示该参数为函数

(global-set-key "\M-r" `indent-buffer)

;; 等价于
(global-set-key "\M-r" (quote indent-buffer))

string,Numberscharactersvectors 求值是 self-evaluating , 不用加 quote


(defun other-window-backward ()
  ;; interactive 让该函数变为可交互式函数  ALT+x 会看到
  (interactive)
  (other-window -1))


(defun other-window-backward (n)
  ;; 有interactive "p" 这个标示的函数 n默认为1 指定次数调用的时候 n为指定的次数
  (interactive "p")
  (other-window (- n)))


(defun other-window-backward (&optional n)
  ;; &optional 代表参数可选
  (interactive "p")
  (if n
      (other-window (- n))
      (other-window (- 1))))


(defun other-window-backward (&optional n)
  ;; &optional 代表参数可选
  (interactive "p")
  (other-window (- (or n 1))))
;;(other-window (if n (- n ) -1)))


(defun other-window-backward (&optional n)
  ;; P 为大写
  (interactive "P")
  ;; prefix-numeric-value 为emacs内置函数 等价于以上
  (other-window (- (prefix-numeric-value n))))


(defalias `scroll-ahead `scroll-up)
(defalias `scroll-behind `scroll-down)
(defun scroll-n (&optional n)
  (interactive "P")
  (scroll-ahead (prefix-numeric-value n)))

hook本质上是一个变量,值为一个列表,列表中有一个或多个函数,这些函数会在某个指定的条件下依次执行


(defun read-only-if-symlink ()
  ;; file-symlink-p 函数返回一个文件是否为链接文件 p代表predicate(断言)
  ;; buffer-file-name 当前buffer的绝对路径
  (if (file-symlink-p buffer-file-name)
      ;; progn 顺序解析其后的所有表达式 最终值为最后一个表达式的值
      (progn
       (setq buffer-read-only t)
       (message "File is a symlink"))))

(add-hook `find-file-hooks `read-only-if-symlink)

;; (remove-hook `find-file-hooks `read-only-if-symlink)


;; 只是演示 在hook中不用使用lambda
(add-hook `find-file-hooks
          `(lambda ()
             (if (file-symlink-p buffer-file-name)
                 (progn
                  (setq buffer-read-only t)
                  (message "File is symlink")))))


;; 报错信息
(error "This is error")


;; 使用局部变量
(defun local-var (n)
  (let ((x 12))
    (* n x)))

(local-var 20)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Emacs中搭建J2EE开发环境需要安装一些必要的插件和配置一些环境变量。下面是一个简单的教程,供您参考。 1. 安装Java开发环境 首先,您需要安装Java开发环境。您可以从Oracle官网下载JDK并按照指示安装。然后,将Java安装目录添加到系统环境变量中。 2. 安装Emacs 您可以从Emacs官网下载最新版本的Emacs,并按照指示安装。安装完成后,将Emacs的bin目录添加到系统环境变量中。 3. 安装Emacs插件 接下来,您需要安装一些Emacs插件来支持J2EE开发。您可以使用Emacs自带的包管理器ELPA来安装这些插件。打开Emacs,按下Ctrl+x,然后按下Ctrl+b,进入Emacs的包管理器。 在包管理器中,输入“M-x package-install”命令,然后输入以下插件名称并按下回车键安装: - JDEE:Java开发环境插件 - Eclim:将Eclipse的功能集成到Emacs中 - Flycheck:语法检查工具 - Company:自动补全工具 4. 配置Emacs 安装完插件后,您需要配置Emacs。在Emacs中,打开init.el文件并添加以下配置代码: ``` (require 'jdee) (setq jdee-server-dir "/path/to/jdee-server") (setq jdee-global-classpath '("path/to/lib/*.jar")) (setq jdee-jdk-registry (quote (("1.8" . "/path/to/jdk")))) (setq jdee-complete-function (quote jdee-complete-minibuf)) (setq jdee-jdb-debugger (quote ("jdb"))) (setq jdee-compile-option-directory "./bin/") (setq jdee-compile-option-deprecation t) (setq jdee-compile-option-debug (quote ("all" (t t t)))) (setq jdee-compile-option-encoding "UTF-8") (setq jdee-help-docsets (quote (("JDK API" "~/jdk-8-doc/api" nil))))) (setq jdee-help-use-frames t) (setq jdee-flycheck-enabled-p t) (require 'eclim) (global-eclim-mode) (require 'company) (global-company-mode) ``` 其中,/path/to/jdee-server是JDEE插件的服务器路径,/path/to/lib/*.jar是您项目使用的jar包路径,/path/to/jdk是您安装的JDK路径,其他的配置项请根据您的需求修改。 5. 启动EmacsEmacs中,按下M-x,然后输入“jde”命令,即可启动JDEE插件。接下来,您可以打开您的Java项目并开始编写代码。 注意,以上仅是一个简单的教程,实际搭建过程中可能还需要进行一些额外的配置和调整。建议在实际操作中根据您的需求和环境来进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值