Pascal mode: Major mode for editing Pascal code. TAB indents for Pascal code. Delete converts tabs to spaces as it moves back. M-TAB completes the word around current point with respect to position in code M-? shows all possible completions at this point. Other useful functions are: M-C-h - Mark function. C-c C-b - insert begin ... end; M-* - insert (* ... *) C-c C-c - Put marked area in a comment, fixing nested comments. C-c C-u - Uncomment an area commented with C-c C-c. M-C-a - Move to beginning of current function. M-C-e - Move to end of current function. C-c C-d - Goto function prompted for in the minibuffer. C-c C-o - Enter pascal-outline-mode (see also pascal-outline). Variables controlling indentation/edit style: pascal-indent-level (default 3) Indentation of Pascal statements with respect to containing block. pascal-case-indent (default 2) Indentation for case statements. pascal-auto-newline (default nil) Non-nil means automatically newline after semicolons and the punctuation mark after an end. pascal-tab-always-indent (default t) Non-nil means TAB in Pascal mode should always reindent the current line, regardless of where in the line point is when the TAB command is used. pascal-auto-endcomments (default t) Non-nil means a comment { ... } is set after the ends which ends cases and functions. The name of the function or case will be set between the braces. pascal-auto-lineup (default t) List of contexts where auto lineup of :'s or ='s should be done. See also the user variables pascal-type-keywords, pascal-start-keywords and pascal-separator-keywords. Turning on Pascal mode calls the value of the variable pascal-mode-hook with no args, if that value is non-nil.