Emacs 27 Lisp Function Frequency
This page shows a table of emacs lisp functions in order of their usage frequency.
If you are a emacs lisp beginner, you want to master the these functions by order. Go down the list and see which is the first one you don't recognize. A fun way to judge your lisp expertise and challenge friends.
setq
55211if
51253defun
40229let
31698and
27604or
21195car
21092when
20185not
18504eq
18458point
16003cdr
15510list
13548nth
13472defvar
12640goto-char
12370while
11145interactive
11034concat
10123define-key
9906cons
9388cond
8918defcustom
7990progn
7987let*
7965unless
7881insert
7683- t 7422
save-excursion
7302lambda
7279format
7279autoload
6694error
6591point-min
6178const
5667length
5480-
5378=
5344memq
5091message
49641+
4840fn
4833string-match
4821>
4792&optional
4752<
4708looking-at
4594+
4568point-max
4360equal
4282put
4267funcall
4128require
4076push
40721-
4025aref
3813fboundp
3710with-current-buffer
3576match-string
3553match-end
3465re-search-forward
3400dolist
3393null
3369match-beginning
3260current-buffer
3010mapcar
2933stringp
2865substring
2816defconst
2747assq
2740forward-line
2665declare-function
2489register-definition-prefixes
2485choice
2422assoc
2324append
2277string=
2246string
2223cadr
2126*
2113apply
2035set
1926make-local-variable
1894forward-char
1861expand-file-name
1853plist-get
1820member
1799>=
1798beginning-of-line
1796car-safe
1778x
1775consp
1769<=
1756file
1629name
1607throw
1600princ
1598nreverse
1587delete-region
1586condition-case
1580defsubst
1527pop
1502zerop
1481repeat
1462arg
1444a
1440provide
1439aset
1421symbol-name
1390org-element-property
1342start
1332add-hook
1325/
1306setf
1294listp
1279buffer-substring
1270defmacro
1247string-to-number
1242intern
1229type
1208function
1206set-buffer
1205get
1193get-text-property
1182class
1178mapconcat
1175file-exists-p
1148skip-chars-forward
1137replace-match
1134setcdr
1119regexp-quote
1103symbolp
1085eobp
1085modify-syntax-entry
1085menu-item
1080char-after
1073max
1064boundp
1061oref
1056defalias
1053delq
1019current-column
1016save-restriction
1015- case-fold-search 1014
search-forward
9921
969defgroup
967cl-defmethod
958numberp
953end-of-line
949s
948setcar
931setq-local
923end
916n
915erase-buffer
906default
897beg
890buffer
884catch
881purecopy
875var
867defface
865min
858math-mul
853prog1
851i
850make-sparse-keymap
850&rest
849background
846regexp
842put-text-property
839symbol-value
835pos
831buffer-name
827with-temp-buffer
817mapc
805integerp
804string-equal
802group
789re-search-backward
787skip-chars-backward
785line-beginning-position
776- nil 774
downcase
772elt
760file-name-directory
759file-name-nondirectory
758map
753nconc
752/=
746symbol
746declare
740narrow-to-region
739make-variable-buffer-local
736eval
735get-buffer-create
727[0-9]+\\
725bolp
721kill-buffer
712user-error
711run-hooks
704buffer-substring-no-properties
701- inhibit-read-only 686
unwind-protect
684nthcdr
681pcase
678eval-when-compile
676c-lang-const
671widget-get
664vector
661delete-char
659caar
657\\
653buf
651widen
651replace-regexp-in-string
644make-string
642save-match-data
639line-end-position
637dir
634math-div
623see
622tag
622overlay-put
619call-interactively
617.*\\
614set-marker
611ignore-errors
609p
609backward-char
596buffer-file-name
593key
587split-string
586following-char
581signal
576char-before
574filename
572remove-hook
562get-buffer
558select-window
556kbd
555selected-window
554sort
554entry
554file-directory-p
549gethash
545add-to-list
542string-match-p
542value
536str
534define-obsolete-function-alias
532`
530_
528prefix-numeric-value
528math-add
526result
525y-or-n-p
523featurep
522point-marker
515bindings--define-key
513mark
512read-string
509,
502read
5020
497cl-incf
496bobp
488propertize
487functionp
484cddr
483float
478table
478sit-for
474match-string-no-properties
473buffer-string
468dotimes
468copy-sequence
467completing-read
465c
462f
459custom-autoload
459val
456cl-loop
451org-defkey
448get-buffer-window
438switch-to-buffer
438- :foreground 434
2
432number-to-string
431b
429math-reject-arg
422from
420forward-sexp
418char-to-string
418form
411item
411reverse
409indent
405[^
402range
400%
399min-colors
397math-sub
397derived-mode-p
394preceding-char
393widget
393buffer-live-p
389delete-file
388last
388logand
384which
377gnus-message
377debug
376cl-assert
375count
368integer
362insert-file-contents
361event
360alist
358indent-to
355marker-position
353args
353the
352regexp-opt
351[
349delete
348custom-put-if-not
346window
345eolp
344cdar
343called-interactively-p
341this
341format-message
339files
339set-buffer-modified-p
338file-name-as-directory
337data
334substitute-command-keys
334puthash
334face
334count-lines
332%s
332sym
330save-window-excursion
330prefix
328window-buffer
327find-file-noselect
325marker-buffer
325url
324copy-marker
323make-symbol
322point-at-eol
320add-text-properties
319proc
316buffer-modified-p
314prompt
314math-neg
312define-derived-mode
311file-attributes
311current-indentation
310load
306char
305e
305date
304len
303process
302abs
301expr
300deffoo
2994
297org-element-type
297upcase
296c-lang-defconst
295res
294insert-buffer-substring
292control
291make-vector
290num
287info
287file-readable-p
286mod
285pop-to-buffer
284article
283body
281l
280obj
280format-time-string
279global-set-key
277selected-frame
275gnus
274vec
271context
270defvar-local
269custom-manual
269defvoo
269doctor-put-meaning
269func
267buffer-size
266point-at-bol
266number
265search-backward
264process-buffer
263line
262move-to-column
261region-beginning
261node
261frame
260define-minor-mode
258semantic-tag-name
258in
257calc-wrapper
256directory-file-name
255limit
255text
253ash
253get-buffer-process
252sexp
252move-marker
251m
250widget-put
249command
247Org
246semantic-lambda
246math-normalize
244dun-mprincl
243pred
242v
240mode
239region-end
239cmd
238make-hash-table
236make-overlay
233write-region
232next-single-property-change
231window-height
231push-mark
231oset
230directory-files
229element
229overlay-get
229int-to-string
229make-marker
226back-to-indentation
226cdr-safe
225read-from-minibuffer
224make-obsolete-variable
224vhdl-insert-keyword
224plist-put
223to
223overlay-start
222process-status
221for
221ding
220getenv
220header
220vectorp
219symbol-function
219obsolete
219org-string-nw-p
219state
218delete-overlay
217e.g.
216prin1-to-string
215msg
214function-item
214define-obsolete-variable-alias
213id
212file-truename
211status
211""
211- buffer-read-only 209
buffer-list
209with-output-to-temp-buffer
209- default-directory 208
executable-find
207register-input-method
207newline
206intern-soft
206recenter
206month
2053
204save-buffer
203path
202quail-define-package
202read-file-name
200begin
200defclass
200category
200message-fetch-field
199handle
198select
197lookup-key
196ediff-with-current-buffer
196.+\\
195fset
195host
195event-start
194posn-window
194window-frame
194
Python Script to Count Emacs Lisp Function Frequency
This list is generated by reading all lisp files bundled with GNU Emacs 27.1 of 2020-08-11. Total of 1583 emacs lisp files. Then count the occurrences of the first word after the left parenthesis.
This list is generated by the following Python script.
# -*- coding: utf-8 -*- # python 3 # purpose: count emacs lisp function frequency list of emacs lisp programs # see # http://xahlee.info/emacs/emacs/function-frequency.html # 2006-10-27, 2020-12-17 # algorithm sketch: # for each file in a given dir, # read in the file # delete comment lines # break it into a list of temp lines, seperated by ( # for each such line, grab the first word # put this into a wordlist # for each in wordlist, add it into a hash key, and if already exist, increase by 1 import os, sys, shutil, re, operator # /Applications/Emacs27.1.app/Contents/Resources/lisp/ # copy it to a temp directory, ungzip the files inputDir = "/Users/xah/xx/lisp" # keys are words, vals are count of occurrences wordFreq = {} def countMe(filePath): "add words frequency into wordFreq" print("reading:", filePath) inF = open(filePath, "rb") s = str(inF.read(), "iso-8859-1") inF.close() # ; rid of some comments (on a line by themselves) s = s.splitlines() s = [x for x in s if not re.search(r"\s*;", x)] s = " ".join(s) s = s.split("(") wordlist = [] for li in s: if li: s2 = re.split(r"\s+|\)", li) if s2: if s2[0]: wordlist.append(s2[0]) # add to dict for wd in wordlist: if wd in wordFreq: wordFreq[wd] = wordFreq[wd] + 1 else: wordFreq[wd] = 1 for dir_path, subdir_list, file_list in os.walk(inputDir): for fname in file_list: if re.search(r"\.el$", fname, re.U): countMe(os.path.join(dir_path, fname)) print() # print(wordFreq) for k, v in sorted(iter(wordFreq.items()), key=operator.itemgetter(1), reverse=True): print(k, v)
Old version: Emacs 23.2 Lisp Function Frequency 2006-10-30