I have installed petite chez scheme and used a .el config file as follows- my .emacs file:
(add-to-list 'load-path "/home/lambda/slime-2013-04-05") ; your SLIME directory
(setq inferior-lisp-program "/usr/bin/clisp") ; your Lisp system
(require 'slime)
(slime-setup)
(setq slime-protocol-version 'ignore)
;;petite scheme setup
(setq scheme-program-name "/home/lambda/csv8.4/custom/petite")
(load-file "/home/lambda/.emacs.d/scheme-setup.el")
(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.
'(custom-enabled-themes (quote (tango-dark))))
(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.
)
(add-hook 'lisp-mode-hook '(lambda ()
(local-set-key (kbd "RET") 'newline-and-indent)))
(if (fboundp 'global-font-lock-mode)
(global-font-lock-mode 1) ; GNU Emacs
(setq font-lock-auto-fontify t)) ; XEmacs
and the scheme-setup.el file I'm using is here:
https://github.com/tiljeset/emacs/blob/master/scheme-setup.el
Now, when I do
$ emacs -nw -f run-scheme
and compile with C-c C-k, I get the error:
Exception in compile-file: compile package is not loaded
Type (debug) to enter the debugger.
in the REPL. May I ask what is causing this problem?
(compile-file filename.ss)
gives the same error.
You have to buy the compile package. Instructions at www.scheme.com.
Related
I am trying to install the clang-format automatic format tool, I have installed clang-format with M-x package-install clang-format
and I can see it in M-x list-packages.
My ~/.emacs is:
(require 'package)
(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos))
(not (gnutls-available-p))))
(proto (if no-ssl "http" "https")))
(when no-ssl
(warn "\
Your version of Emacs does not support SSL connections,
which is unsafe because it allows man-in-the-middle attacks.
There are two things you can do about this warning:
1. Install an Emacs version that does support SSL and be safe.
2. Remove this warning from your init file so you won't see it again."))
;; Comment/uncomment these two lines to enable/disable MELPA and MELPA Stable as desired
(add-to-list 'package-archives (cons "melpa" (concat proto "://melpa.org/packages/")) t)
;;(add-to-list 'package-archives (cons "melpa-stable" (concat proto "://stable.melpa.org/packages/")) t)
(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
(add-to-list 'package-archives (cons "gnu" (concat proto "://elpa.gnu.org/packages/")))))
(package-initialize)
;; clang-format
(require 'clang-format)
(global-set-key [C-M-tab] 'clang-format-region)
(add-hook 'c-mode-common-hook
(function (lambda ()
(add-hook 'write-contents-functions
(lambda() (progn (clang-format-buffer) nil))))))
(add-hook 'cpp-mode-common-hook
(function (lambda ()
(add-hook 'write-contents-functions
(lambda() (progn (clang-format-buffer) nil))))))
;; irony-mode
(add-hook 'c++-mode-hook 'irony-mode)
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'objc-mode-hook 'irony-mode)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
;; company mode
(add-hook 'c++-mode-hook 'company-mode)
(add-hook 'c-mode-hook 'company-mode)
;; flycheck-mode
(add-hook 'c++-mode-hook 'flycheck-mode)
(add-hook 'c-mode-hook 'flycheck-mode)
(eval-after-load 'flycheck
'(add-hook 'flycheck-mode-hook #'flycheck-irony-setup))
;; eldoc-mode
(add-hook 'irony-mode-hook 'irony-eldoc)
(global-linum-mode)
(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
(list-packages-ext clang-format flycheck-clang-tidy flycheck-clang-analyzer elpy irony-eldoc company-irony flycheck-irony flycheck irony))))
(custom-set-faces
;; custom-set-faces was added by Custom.
'(linum ((t (:inherit (shadow default) :foreground "yellow")))))
But clang-format does not appear at the bottom of emacs window while Irony, FlyC, ElDoc and Abbrev appear.
Could anyone help me? Thank you!
From clang-format github instructions:
(require 'clang-format)
(global-set-key (kbd "C-c i") 'clang-format-region)
(global-set-key (kbd "C-c u") 'clang-format-buffer)
(setq clang-format-style-option "llvm")
It won't appear in the status line as it's not a minor mode.
You have to set key bindings to the function you want to use, like in the given example.
When I'm starting emacs as daemon I can not read comments (their color like background). But when I'm using emacs without --daemon switch everything is ok.
How to fix that weird issue?
;;; Custom color scheme related configurations
(if (< emacs-major-version 24)
(unless (eq system-type 'windows-nt)
(add-to-list 'load-path "/usr/share/emacs/site-lisp/emacs-goodies-el/")
(require 'color-theme)
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(color-theme-hober)
)
)
(add-to-list 'load-path (concat dotfiles-dir "color-theme-solarized"))
(require 'color-theme-solarized)
)
(progn
(add-to-list 'custom-theme-load-path (concat dotfiles-dir "color-theme-solarized"))
(load-theme 'solarized-dark t)
)
)
just run emacs
run emacs -Q
run emacs --daemon
as you can see - totally different results.
and line numbers are also gone in emacs -Q and emacs --daemon cases.
To enable line numbers:
(global-linum-mode 1)
emacs version: GNU Emacs 24.4.1
I'm brand-new to both Emacs and Clojure and would like to set up hinting and syntax highlighting somehow similar to the video here. I have installed:
Emacs 24.x
Leiningen 2.x
Marmalade
...Then within Emacs and via Marmalade, installed the following packages:
Evil
clojure-mode
nrepl
My big-idea question is how do these major/minor modes interact and is there a "right" way to set these things up?
My smaller-idea question is how do I get the pretty syntax highlighting and code-hinting?
Thanks!
Check out Emacs Live, its a full emacs configuration created by Sam Aaron. He codes allot of Clojure so this "battery included" setup works great for Clojure coding.
https://github.com/overtone/emacs-live
Once you have cloned this and follow the instructions you are up and running with
Clojure, nrepl, git and much more.
I list my setup. Some of the stuff is redundant, since I haven't
written in Clojure for a while, but I checked and it still works.
Use clojure to start nrepl.
You might have some issue with project.clj being in the appropriate directory,
but you should figure this out.
Open a source file e.g. foo.clj.
Use C-c C-l to call nrepl-load-file
By the way, it's the canonical shortcut to load the file into inferior process.
It will work for Common Lisp, Python etc.
Use C-c C-z to switch to repl.
This again is the canonical shortcut that works for many languages.
Here's the setup code:
(require 'clojure-mode)
(defun set-syntax-parens ()
"highlight []{} etc."
(interactive)
(modify-syntax-entry ?[ "(]")
(modify-syntax-entry ?] ")[")
(modify-syntax-entry ?{ "(}")
(modify-syntax-entry ?} "){"))
(defvar clojure.jars '("clojure-1.3.0.jar"
"swank-clojure-1.4.2.jar"
"clojure-contrib-1.2.0.jar"))
(defvar clojure.jars.d (concat dropbox.d "source/clojure/lib/"))
(defvar clojure.classpath
(apply #'concat
(mapcar (lambda (jar) (concat clojure.jars.d jar path-separator))
clojure.jars)))
(setq clojure.classpath
(concat clojure.classpath
dropbox.d "source/clojure/include/"
path-separator))
;;;###autoload
(defun clojure ()
(interactive)
(nrepl-jack-in))
(defvar clojure-server-cmd
(concat "java -Xss4096k -cp " clojure.classpath " clojure.main &"))
(add-hook 'clojure-mode-hook
(lambda()
(set-syntax-parens)))
(require 'nrepl)
(add-hook 'nrepl-mode-hook
(lambda()
(define-key nrepl-mode-map (kbd "C-l") 'nrepl-clear-buffer)))
here is the operative section from my favorite emacs config:
(when (not package-archive-contents)
(package-refresh-contents))
;; Add in your own as you wish:
(defvar my-packages '(starter-kit starter-kit-lisp starter-kit-bindings clojure-mode
nrepl auto-complete ac-nrepl org rainbow-delimiters)
"A list of packages to ensure are installed at launch.")
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))
(require 'ac-nrepl)
(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)
(add-hook 'nrepl-interaction-mode-hook 'ac-nrepl-setup)
(eval-after-load "auto-complete"
'(add-to-list 'ac-modes 'nrepl-mode))
(defun set-auto-complete-as-completion-at-point-function ()
(setq completion-at-point-functions '(auto-complete)))
(add-hook 'auto-complete-mode-hook 'set-auto-complete-as-completion-at-point-function)
(add-hook 'nrepl-mode-hook 'set-auto-complete-as-completion-at-point-function)
(add-hook 'nrepl-interaction-mode-hook 'set-auto-complete-as-completion-at-point-function)
(define-key nrepl-interaction-mode-map (kbd "C-c C-d") 'ac-nrepl-popup-doc)
(add-hook 'prog-mode-hook 'auto-complete-mode)
(add-hook 'nrepl-interaction-mode-hook
'nrepl-turn-on-eldoc-mode)
(add-hook 'nrepl-mode-hook 'paredit-mode)
This turns on paredit-mode everywhere, which takes a bit of getting used to though it's entirely worth it because paredit and makes using Clojure much more fun. At least once you get a handle on slurping and barfing
I made the mistake of updating my existing ports with MacPorts -- now slime and swank-clojure no longer work. I get the following message when I invoke clojure-jack-in within emacs:
Versions differ: 2011-04-16 (slime) vs. 20100404 (swank). Continue? (y or n)
Entering y will bring up the slime REPL, but then when I try to evaluate an expression in the REPL, I get another message:
Not connected. Use `M-x slime' to start a Lisp.
What is going on here?
Here are the relevant portions of my init.el file:
;; slime
(setq inferior-lisp-program "/opt/local/bin/sbcl")
(add-to-list 'load-path
"/opt/local/share/emacs/site-lisp/slime"
"/opt/local/share/emacs/site-lisp/slime/contrib")
(add-hook 'slime-repl-mode-hook
(defun clojure-mode-slime-font-lock()
(require 'clojure-mode)
(let (font-lock-mode)
(clojure-mode-font-lock-setup))))
(require 'slime)
(slime-setup '(slime-repl))
(eval-after-load "slime" '(slime-setup '(slime-fancy slime-banner)))
;; clojure
(add-to-list 'load-path
"~/.emacs.d/elpa/clojure-mode-el"
"~/.emacs.d/elpa/paredit-22")
(require 'clojure-mode)
(defun turn-on-paredit () (paredit-mode 1))
(add-hook 'clojure-mode-hook 'turn-on-paredit)
swank-clojure only works with slime version 20100404:
https://github.com/technomancy/swank-clojure/issues/120#issuecomment-4862556
only option at this point is to downgrade version of slime.
I use Emacs 24 from scratch with the latest yasnippet and auto-complete installed and nominally working. Now, as a emacs user and an android developer, I'd like to use my favorite editor and automate some tasks fr android development.
I know almost nothing about elisp.
My first task is to use custom snippets to add the uses-sdk tag in AndroidManifest.xml. That's ok with yasnippet but I'd like to use auto-complete to interactively propose and auto-complete android specific tags. The problem is that the major mode for AndroidManifest.xml is nxml and I don't want to propose android specifics to all nxml-mode related buffers. As a consequence, I use a condition on the buffer name in the snippet definition. Now, I'd like to add a custom hook to nxml-mode-hook but I failed to enable the auto-complete mode.
My snippet:
#contributor : Me, Myself and I
#name : <uses-sdk ... />
#condition : (string= (buffer-name) "AndroidManifest.xml")
# --
<uses-sdk android:minSdkVersion="$0" />
The .emacs part that miserably failed:
;; yasnippet
(add-to-list 'load-path "~/.emacs.d/yasnippet")
(require 'yasnippet)
(setq yas/trigger-key (kbd "C-c <kp-multiply>"))
(yas/initialize)
;; Develop in ~/emacs.d/mysnippets, but also
;; try out snippets in ~/Downloads/interesting-snippets
(setq yas/root-directory '("~/.emacs.d/snippets"
"~/.emacs.d/external-snippets"))
;; Map `yas/load-directory' to every element
(mapc 'yas/load-directory yas/root-directory)
;; auto-complete
(add-to-list 'load-path "~/.emacs.d/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict")
(setq-default ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
(add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
(add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
(add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
(add-hook 'css-mode-hook 'ac-css-mode-setup)
(add-hook 'auto-complete-mode-hook 'ac-common-setup)
(global-auto-complete-mode t)
;; android specific settings
;; AndroidManifest.xml
(defun ac-android-manifest-nxml-setup()
""
(when (string= (buffer-name) "AndroidManifest.xml")
(setq ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))))
(add-hook 'nxml-mode-hook 'ac-android-manifest-nxml-setup)
The snippet works as intended but the completion don't though the auto-completion works if I enable auto-complete using M-x auto-complete-mode.
Any help will be greatly appreciated.
Works well with
;; auto-complete
(add-to-list 'load-path "~/.emacs.d/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict")
(ac-config-default)
;; android specific settings
;; AndroidManifest.xml
(defun ac-android-manifest-nxml-setup()
(when (string= (buffer-name) "AndroidManifest.xml")
(setq ac-sources '(ac-source-yasnippet
ac-source-abbrev
ac-source-dictionary
ac-source-words-in-same-mode-buffers))
((lambda () (auto-complete-mode 1)))))
(add-hook 'nxml-mode-hook 'ac-android-manifest-nxml-setup)