(defun forward-sexp (&optional arg) "\ Move forward across one balanced expression. With argument, do this that many times." (interactive "p") (byte-code " `\" !bW " [arg nil 1 scan-sexps buffer-end 0 backward-prefix-chars] 4)) (defun backward-sexp (&optional arg) "\ Move backward across one balanced expression. With argument, do this that many times." (interactive "p") (byte-code " [!" [arg nil 1 forward-sexp] 2)) (defun mark-sexp (arg) "\ Set mark ARG sexps from point." (interactive "p") (byte-code "!`)!" [arg nil push-mark forward-sexp] 3)) (defun forward-list (&optional arg) "\ Move forward across one balanced group of parentheses. With argument, do this that many times." (interactive "p") (byte-code " `# !b" [arg nil 1 scan-lists 0 buffer-end] 4)) (defun backward-list (&optional arg) "\ Move backward across one balanced group of parentheses. With argument, do this that many times." (interactive "p") (byte-code " [!" [arg nil 1 forward-list] 2)) (defun down-list (arg) "\ Move forward down one level of parentheses. With argument, do this that many times. A negative argument means move backward but still go down a level." (interactive "p") (byte-code " V Ă \"+ `# !b Z )" [inc arg nil 0 1 -1 /= scan-lists buffer-end] 6)) (defun backward-up-list (arg) "\ Move backward out of one level of parentheses. With argument, do this that many times. A negative argument means move forward but still to a less deep spot." (interactive "p") (byte-code "[!" [arg nil up-list] 2)) (defun up-list (arg) "\ Move forward out of one level of parentheses. With argument, do this that many times. A negative argument means move backward but still to a less deep spot." (interactive "p") (byte-code " V Ă \"+ `# !b Z )" [inc arg nil 0 1 -1 /= scan-lists buffer-end] 6)) (defun kill-sexp (arg) "\ Kill the syntactic expression following the cursor. With argument, kill that many expressions after (or before) the cursor." (interactive "p") (byte-code "` !`\")" [opoint arg nil forward-sexp kill-region] 4)) (defun backward-kill-sexp (arg) "\ Kill the syntactic expression preceding the cursor. With argument, kill that many expressions before (or after) the cursor." (interactive "p") (byte-code "[!" [arg nil kill-sexp] 2)) (defun beginning-of-defun (&optional arg) "\ Move backward to next beginning-of-defun. With argument, do this that many times. Returns t unless search stops due to end of buffer." (interactive "p") (byte-code " W ! $! " [arg nil t 0 forward-char 1 re-search-backward "^\\s(" move beginning-of-line] 6)) (defun buffer-end (arg) (byte-code "V d e" [arg 0] 2)) (defun end-of-defun (&optional arg) "\ Move forward to next end of defun. An end of a defun is found by moving forward from the beginning of one." (interactive "p") (byte-code "ň? U ljV `dWl ` . !!5 ł@ o<