joaotavora/yasnippet
Fork: 311 Star: 2806 (更新于 2024-11-09 18:25:03)
license: 暂无
Language: Emacs Lisp .
A template system for Emacs
Intro
YASnippet is a template system for Emacs. It allows you to type an abbreviation and automatically expand it into function templates. Bundled language templates include: C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS and more. The snippet syntax is inspired from TextMate's syntax, you can even import most TextMate templates to YASnippet. Watch a demo on YouTube.
Installation
Manual install from Git
Clone this repository somewhere
$ cd ~/.emacs.d/plugins
$ git clone --recursive https://github.com/joaotavora/yasnippet
Add the following in your .emacs
file:
(add-to-list 'load-path
"~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)
Add your own snippets to ~/.emacs.d/snippets
by placing files there or invoking yas-new-snippet
.
Install with package-install
In a recent emacs M-x list-packages
is the recommended way to list
and install packages.
It's available from GNU ELPA.
If you need a very recent snapshot, you can get it from
GNU-devel ELPA as well as MELPA
(see http://melpa.org/#installing).
Install with el-get
El-get is another nice way to get the most recent version, too. See https://github.com/dimitri/el-get for instructions.
Use yas-minor-mode
on a per-buffer basis
To use YASnippet as a non-global minor mode, don't call
yas-global-mode
; instead call yas-reload-all
to load the snippet
tables and then call yas-minor-mode
from the hooks of major-modes
where you want YASnippet enabled.
(yas-reload-all)
(add-hook 'prog-mode-hook #'yas-minor-mode)
Where are the snippets?
YASnippet no longer bundles snippets directly, but it's very easy to get some!
-
yasnippet-snippets - a snippet collection package maintained by AndreaCrotti.
It can be installed with
M-x package-install RET yasnippet-snippets
if you have added MELPA to your package sources. -
yasmate a tool which is dedicated to converting textmate bundles into yasnippet snippets.
To use these snippets you have to run the tool first, so see its doc), and then point the
yas-snippet-dirs
variable to the.../yasmate/snippets
subdir. -
This is another textmate bundle converting tool using Elisp instead of Ruby.
Naturally, you can point yas-snippet-dirs
to good snippet collections out
there. If you have created snippets for a mode, or multiple modes,
consider creating a repository to host them, then tell users that it
should be added like this to yas-snippet-dirs
:
(setq yas-snippet-dirs
'("~/.emacs.d/snippets" ;; personal snippets
"/path/to/some/collection/" ;; foo-mode and bar-mode snippet collection
"/path/to/yasnippet/yasmate/snippets" ;; the yasmate collection
))
(yas-global-mode 1) ;; or M-x yas-reload-all if you've started YASnippet already.
Manual, issues etc
There's comprehensive documentation on using and customising YASnippet.
There's a list of support issues, with solutions to common problems and practical snippet examples.
The Github issue tracker is where most YASnippet-related
discussion happens. Nevertheless, since YASnippet is a part of Emacs,
you may alternatively report bugs to Emacs via M-x report-emacs-bug
or
sending an email to bug-gnu-emacs@gnu.org
, putting "yasnippet"
somewhere in the subject.
Important note regarding bug reporting
Your bug reports are very valuable.
The most important thing when reporting bugs is making sure that we have a way to reproduce the problem exactly like it happened to you.
To do this, we need to rule out interference from external factors like other Emacs extensions or your own customisations.
Here's an example report that "sandboxes" an Emacs session just for reproducing a bug.
$ emacs --version
Emacs 24.3
$ cd /tmp/
$ git clone https://github.com/joaotavora/yasnippet.git yasnippet-bug
$ cd yasnippet-bug
$ git log -1 --oneline
6053db0 Closes #527: Unbreak case where yas-fallback-behaviour is a list
$ HOME=$PWD emacs -L . # This "sandboxes" your emacs, melpa configuration, etc
(require 'yasnippet)
(yas-global-mode 1)
When I open a foo-mode file I don't see foo-mode under the "YASnippet" menu!
OR
When loading yasnippet I see "Error: failed to frobnicate"!
Using emacs -Q
or temporarily moving your .emacs
init file to the side
is another way to achieve good reproducibility.
Here's a another example of a bug report. It has everything needed for a successful analysis and speedy resolution.
Also, don't forget to state the Emacs version (use M-x emacs-version
) and
the yasnippet version you are using (if using the latest from github,
do git log -1
in the dir).
Any more info is welcome, but don't just paste a backtrace or an error message string you got, unless we ask for it.
Finally, thank you very much for using YASnippet!
最近版本更新:(数据更新于 2024-09-30 17:10:26)
joaotavora/yasnippet同语言 Emacs Lisp最近更新仓库
2024-08-22 13:46:09 emacs-helm/helm
2023-12-04 16:21:08 bbatsov/solarized-emacs
2023-10-13 23:11:27 bbatsov/projectile
2023-08-08 10:48:13 jaypei/emacs-neotree
2023-08-01 00:10:37 seagle0128/.emacs.d
2022-09-29 21:26:44 ocaml/tuareg