comparison man/programs.texi @ 83494:b901f4f12f33

Merged from emacs@sv.gnu.org Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-160 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-161 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-162 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-163 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-164 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-165 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-166 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-167 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-168 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-169 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-170 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-171 Update from CVS: man/mh-e.texi (Folders): Various edits. * emacs@sv.gnu.org/emacs--devo--0--patch-172 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-58 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-59 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-60 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-61 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-62 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-63 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-64 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-534
author Karoly Lorentey <lorentey@elte.hu>
date Wed, 22 Mar 2006 15:16:06 +0000
parents 91970b147f39
children 3bdd218d87df e3bacb89536a
comparison
equal deleted inserted replaced
83493:1bf2ca323037 83494:b901f4f12f33
39 * Symbol Completion:: Completion on symbol names of your program or language. 39 * Symbol Completion:: Completion on symbol names of your program or language.
40 * Glasses:: Making identifiersLikeThis more readable. 40 * Glasses:: Making identifiersLikeThis more readable.
41 * Misc for Programs:: Other Emacs features useful for editing programs. 41 * Misc for Programs:: Other Emacs features useful for editing programs.
42 * C Modes:: Special commands of C, C++, Objective-C, 42 * C Modes:: Special commands of C, C++, Objective-C,
43 Java, and Pike modes. 43 Java, and Pike modes.
44 * Fortran:: Fortran mode and its special features.
45 * Asm Mode:: Asm mode and its special features. 44 * Asm Mode:: Asm mode and its special features.
46 @end menu 45 @end menu
47 46
48 @node Program Modes 47 @node Program Modes
49 @section Major Modes for Programming Languages 48 @section Major Modes for Programming Languages
107 tab character before point, in these modes. 106 tab character before point, in these modes.
108 107
109 Separate manuals are available for the modes for Ada (@pxref{Top, , Ada 108 Separate manuals are available for the modes for Ada (@pxref{Top, , Ada
110 Mode, ada-mode, Ada Mode}), C/C++/Objective C/Java/Corba IDL/Pike/AWK 109 Mode, ada-mode, Ada Mode}), C/C++/Objective C/Java/Corba IDL/Pike/AWK
111 (@pxref{Top, , CC Mode, ccmode, CC Mode}) and the IDLWAVE modes 110 (@pxref{Top, , CC Mode, ccmode, CC Mode}) and the IDLWAVE modes
112 (@pxref{Top, , IDLWAVE, idlwave, IDLWAVE User Manual}). 111 (@pxref{Top, , IDLWAVE, idlwave, IDLWAVE User Manual}). For Fortran
112 mode, @inforef{Fortran,, emacs-xtra}.
113 113
114 @cindex mode hook 114 @cindex mode hook
115 @vindex c-mode-hook 115 @vindex c-mode-hook
116 @vindex lisp-mode-hook 116 @vindex lisp-mode-hook
117 @vindex emacs-lisp-mode-hook 117 @vindex emacs-lisp-mode-hook
1713 to a C/C++ source file, or vice versa. The variable 1713 to a C/C++ source file, or vice versa. The variable
1714 @code{ff-related-file-alist} specifies how to compute related file 1714 @code{ff-related-file-alist} specifies how to compute related file
1715 names. 1715 names.
1716 @end table 1716 @end table
1717 1717
1718 @node Fortran
1719 @section Fortran Mode
1720 @cindex Fortran mode
1721 @cindex mode, Fortran
1722
1723 Fortran mode provides special motion commands for Fortran statements
1724 and subprograms, and indentation commands that understand Fortran
1725 conventions of nesting, line numbers and continuation statements.
1726 Fortran mode has support for Auto Fill mode that breaks long lines into
1727 proper Fortran continuation lines.
1728
1729 Special commands for comments are provided because Fortran comments
1730 are unlike those of other languages. Built-in abbrevs optionally save
1731 typing when you insert Fortran keywords.
1732
1733 Use @kbd{M-x fortran-mode} to switch to this major mode. This command
1734 runs the hook @code{fortran-mode-hook} (@pxref{Hooks}).
1735
1736 @cindex Fortran77 and Fortran90
1737 @findex f90-mode
1738 @findex fortran-mode
1739 Fortran mode is meant for editing Fortran77 ``fixed format'' (and also
1740 ``tab format'') source code. For editing the modern Fortran90 or
1741 Fortran95 ``free format'' source code, use F90 mode (@code{f90-mode}).
1742 Emacs normally uses Fortran mode for files with extension @samp{.f},
1743 @samp{.F} or @samp{.for}, and F90 mode for the extension @samp{.f90} and
1744 @samp{.f95}. GNU Fortran supports both kinds of format.
1745
1746 @menu
1747 * Motion: Fortran Motion. Moving point by statements or subprograms.
1748 * Indent: Fortran Indent. Indentation commands for Fortran.
1749 * Comments: Fortran Comments. Inserting and aligning comments.
1750 * Autofill: Fortran Autofill. Auto fill support for Fortran.
1751 * Columns: Fortran Columns. Measuring columns for valid Fortran.
1752 * Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords.
1753 @end menu
1754
1755 @node Fortran Motion
1756 @subsection Motion Commands
1757
1758 In addition to the normal commands for moving by and operating on
1759 ``defuns'' (Fortran subprograms---functions and subroutines, as well as
1760 modules for F90 mode), Fortran mode provides special commands to move by
1761 statements and other program units.
1762
1763 @table @kbd
1764 @kindex C-c C-n @r{(Fortran mode)}
1765 @findex fortran-next-statement
1766 @findex f90-next-statement
1767 @item C-c C-n
1768 Move to the beginning of the next statement
1769 (@code{fortran-next-statement}/@code{f90-next-statement}).
1770
1771 @kindex C-c C-p @r{(Fortran mode)}
1772 @findex fortran-previous-statement
1773 @findex f90-previous-statement
1774 @item C-c C-p
1775 Move to the beginning of the previous statement
1776 (@code{fortran-previous-statement}/@code{f90-previous-statement}).
1777 If there is no previous statement (i.e. if called from the first
1778 statement in the buffer), move to the start of the buffer.
1779
1780 @kindex C-c C-e @r{(F90 mode)}
1781 @findex f90-next-block
1782 @item C-c C-e
1783 Move point forward to the start of the next code block
1784 (@code{f90-next-block}). A code block is a subroutine,
1785 @code{if}--@code{endif} statement, and so forth. This command exists
1786 for F90 mode only, not Fortran mode. With a numeric argument, this
1787 moves forward that many blocks.
1788
1789 @kindex C-c C-a @r{(F90 mode)}
1790 @findex f90-previous-block
1791 @item C-c C-a
1792 Move point backward to the previous code block
1793 (@code{f90-previous-block}). This is like @code{f90-next-block}, but
1794 moves backwards.
1795
1796 @kindex C-M-n @r{(Fortran mode)}
1797 @findex fortran-end-of-block
1798 @findex f90-end-of-block
1799 @item C-M-n
1800 Move to the end of the current code block
1801 (@code{fortran-end-of-block}/@code{f90-end-of-block}). With a numeric
1802 agument, move forward that number of blocks. The mark is set before
1803 moving point. The F90 mode version of this command checks for
1804 consistency of block types and labels (if present), but it does not
1805 check the outermost block since that may be incomplete.
1806
1807 @kindex C-M-p @r{(Fortran mode)}
1808 @findex fortran-beginning-of-block
1809 @findex f90-beginning-of-block
1810 @item C-M-p
1811 Move to the start of the current code block
1812 (@code{fortran-beginning-of-block}/@code{f90-beginning-of-block}). This
1813 is like @code{fortran-end-of-block}, but moves backwards.
1814 @end table
1815
1816 @node Fortran Indent
1817 @subsection Fortran Indentation
1818
1819 Special commands and features are needed for indenting Fortran code in
1820 order to make sure various syntactic entities (line numbers, comment line
1821 indicators and continuation line flags) appear in the columns that are
1822 required for standard, fixed (or tab) format Fortran.
1823
1824 @menu
1825 * Commands: ForIndent Commands. Commands for indenting and filling Fortran.
1826 * Contline: ForIndent Cont. How continuation lines indent.
1827 * Numbers: ForIndent Num. How line numbers auto-indent.
1828 * Conv: ForIndent Conv. Conventions you must obey to avoid trouble.
1829 * Vars: ForIndent Vars. Variables controlling Fortran indent style.
1830 @end menu
1831
1832 @node ForIndent Commands
1833 @subsubsection Fortran Indentation and Filling Commands
1834
1835 @table @kbd
1836 @item C-M-j
1837 Break the current line at point and set up a continuation line
1838 (@code{fortran-split-line}).
1839 @item M-^
1840 Join this line to the previous line (@code{fortran-join-line}).
1841 @item C-M-q
1842 Indent all the lines of the subprogram point is in
1843 (@code{fortran-indent-subprogram}).
1844 @item M-q
1845 Fill a comment block or statement.
1846 @end table
1847
1848 @kindex C-M-q @r{(Fortran mode)}
1849 @findex fortran-indent-subprogram
1850 The key @kbd{C-M-q} runs @code{fortran-indent-subprogram}, a command
1851 to reindent all the lines of the Fortran subprogram (function or
1852 subroutine) containing point.
1853
1854 @kindex C-M-j @r{(Fortran mode)}
1855 @findex fortran-split-line
1856 The key @kbd{C-M-j} runs @code{fortran-split-line}, which splits
1857 a line in the appropriate fashion for Fortran. In a non-comment line,
1858 the second half becomes a continuation line and is indented
1859 accordingly. In a comment line, both halves become separate comment
1860 lines.
1861
1862 @kindex M-^ @r{(Fortran mode)}
1863 @kindex C-c C-d @r{(Fortran mode)}
1864 @findex fortran-join-line
1865 @kbd{M-^} or @kbd{C-c C-d} runs the command @code{fortran-join-line},
1866 which joins a continuation line back to the previous line, roughly as
1867 the inverse of @code{fortran-split-line}. The point must be on a
1868 continuation line when this command is invoked.
1869
1870 @kindex M-q @r{(Fortran mode)}
1871 @kbd{M-q} in Fortran mode fills the comment block or statement that
1872 point is in. This removes any excess statement continuations.
1873
1874 @node ForIndent Cont
1875 @subsubsection Continuation Lines
1876 @cindex Fortran continuation lines
1877
1878 @vindex fortran-continuation-string
1879 Most Fortran77 compilers allow two ways of writing continuation lines.
1880 If the first non-space character on a line is in column 5, then that
1881 line is a continuation of the previous line. We call this @dfn{fixed
1882 format}. (In GNU Emacs we always count columns from 0; but note that
1883 the Fortran standard counts from 1.) The variable
1884 @code{fortran-continuation-string} specifies what character to put in
1885 column 5. A line that starts with a tab character followed by any digit
1886 except @samp{0} is also a continuation line. We call this style of
1887 continuation @dfn{tab format}. (Fortran90 introduced ``free format'',
1888 with another style of continuation lines).
1889
1890 @vindex indent-tabs-mode @r{(Fortran mode)}
1891 @vindex fortran-analyze-depth
1892 @vindex fortran-tab-mode-default
1893 Fortran mode can use either style of continuation line. When you
1894 enter Fortran mode, it tries to deduce the proper continuation style
1895 automatically from the buffer contents. It does this by scanning up to
1896 @code{fortran-analyze-depth} (default 100) lines from the start of the
1897 buffer. The first line that begins with either a tab character or six
1898 spaces determines the choice. If the scan fails (for example, if the
1899 buffer is new and therefore empty), the value of
1900 @code{fortran-tab-mode-default} (@code{nil} for fixed format, and
1901 non-@code{nil} for tab format) is used. @samp{/t} in the mode line
1902 indicates tab format is selected. Fortran mode sets the value of
1903 @code{indent-tabs-mode} accordingly (@pxref{Just Spaces}).
1904
1905 If the text on a line starts with the Fortran continuation marker
1906 @samp{$}, or if it begins with any non-whitespace character in column
1907 5, Fortran mode treats it as a continuation line. When you indent a
1908 continuation line with @key{TAB}, it converts the line to the current
1909 continuation style. When you split a Fortran statement with
1910 @kbd{C-M-j}, the continuation marker on the newline is created according
1911 to the continuation style.
1912
1913 The setting of continuation style affects several other aspects of
1914 editing in Fortran mode. In fixed format mode, the minimum column
1915 number for the body of a statement is 6. Lines inside of Fortran
1916 blocks that are indented to larger column numbers always use only the
1917 space character for whitespace. In tab format mode, the minimum
1918 column number for the statement body is 8, and the whitespace before
1919 column 8 must always consist of one tab character.
1920
1921 @node ForIndent Num
1922 @subsubsection Line Numbers
1923
1924 If a number is the first non-whitespace in the line, Fortran
1925 indentation assumes it is a line number and moves it to columns 0
1926 through 4. (Columns always count from 0 in GNU Emacs.)
1927
1928 @vindex fortran-line-number-indent
1929 Line numbers of four digits or less are normally indented one space.
1930 The variable @code{fortran-line-number-indent} controls this; it
1931 specifies the maximum indentation a line number can have. The default
1932 value of the variable is 1. Fortran mode tries to prevent line number
1933 digits passing column 4, reducing the indentation below the specified
1934 maximum if necessary. If @code{fortran-line-number-indent} has the
1935 value 5, line numbers are right-justified to end in column 4.
1936
1937 @vindex fortran-electric-line-number
1938 Simply inserting a line number is enough to indent it according to
1939 these rules. As each digit is inserted, the indentation is recomputed.
1940 To turn off this feature, set the variable
1941 @code{fortran-electric-line-number} to @code{nil}.
1942
1943
1944 @node ForIndent Conv
1945 @subsubsection Syntactic Conventions
1946
1947 Fortran mode assumes that you follow certain conventions that simplify
1948 the task of understanding a Fortran program well enough to indent it
1949 properly:
1950
1951 @itemize @bullet
1952 @item
1953 Two nested @samp{do} loops never share a @samp{continue} statement.
1954
1955 @item
1956 Fortran keywords such as @samp{if}, @samp{else}, @samp{then}, @samp{do}
1957 and others are written without embedded whitespace or line breaks.
1958
1959 Fortran compilers generally ignore whitespace outside of string
1960 constants, but Fortran mode does not recognize these keywords if they
1961 are not contiguous. Constructs such as @samp{else if} or @samp{end do}
1962 are acceptable, but the second word should be on the same line as the
1963 first and not on a continuation line.
1964 @end itemize
1965
1966 @noindent
1967 If you fail to follow these conventions, the indentation commands may
1968 indent some lines unaesthetically. However, a correct Fortran program
1969 retains its meaning when reindented even if the conventions are not
1970 followed.
1971
1972 @node ForIndent Vars
1973 @subsubsection Variables for Fortran Indentation
1974
1975 @vindex fortran-do-indent
1976 @vindex fortran-if-indent
1977 @vindex fortran-structure-indent
1978 @vindex fortran-continuation-indent
1979 @vindex fortran-check-all-num@dots{}
1980 @vindex fortran-minimum-statement-indent@dots{}
1981 Several additional variables control how Fortran indentation works:
1982
1983 @table @code
1984 @item fortran-do-indent
1985 Extra indentation within each level of @samp{do} statement (default 3).
1986
1987 @item fortran-if-indent
1988 Extra indentation within each level of @samp{if}, @samp{select case}, or
1989 @samp{where} statements (default 3).
1990
1991 @item fortran-structure-indent
1992 Extra indentation within each level of @samp{structure}, @samp{union},
1993 @samp{map}, or @samp{interface} statements (default 3).
1994
1995 @item fortran-continuation-indent
1996 Extra indentation for bodies of continuation lines (default 5).
1997
1998 @item fortran-check-all-num-for-matching-do
1999 In Fortran77, a numbered @samp{do} statement is ended by any statement
2000 with a matching line number. It is common (but not compulsory) to use a
2001 @samp{continue} statement for this purpose. If this variable has a
2002 non-@code{nil} value, indenting any numbered statement must check for a
2003 @samp{do} that ends there. If you always end @samp{do} statements with
2004 a @samp{continue} line (or if you use the more modern @samp{enddo}),
2005 then you can speed up indentation by setting this variable to
2006 @code{nil}. The default is @code{nil}.
2007
2008 @item fortran-blink-matching-if
2009 If this is @code{t}, indenting an @samp{endif} (or @samp{enddo}
2010 statement moves the cursor momentarily to the matching @samp{if} (or
2011 @samp{do}) statement to show where it is. The default is @code{nil}.
2012
2013 @item fortran-minimum-statement-indent-fixed
2014 Minimum indentation for Fortran statements when using fixed format
2015 continuation line style. Statement bodies are never indented less than
2016 this much. The default is 6.
2017
2018 @item fortran-minimum-statement-indent-tab
2019 Minimum indentation for Fortran statements for tab format continuation line
2020 style. Statement bodies are never indented less than this much. The
2021 default is 8.
2022 @end table
2023
2024 The variables controlling the indentation of comments are described in
2025 the following section.
2026
2027 @node Fortran Comments
2028 @subsection Fortran Comments
2029
2030 The usual Emacs comment commands assume that a comment can follow a
2031 line of code. In Fortran77, the standard comment syntax requires an
2032 entire line to be just a comment. Therefore, Fortran mode replaces the
2033 standard Emacs comment commands and defines some new variables.
2034
2035 @vindex fortran-comment-line-start
2036 Fortran mode can also handle the Fortran90 comment syntax where comments
2037 start with @samp{!} and can follow other text. Because only some Fortran77
2038 compilers accept this syntax, Fortran mode will not insert such comments
2039 unless you have said in advance to do so. To do this, set the variable
2040 @code{fortran-comment-line-start} to @samp{"!"}.
2041
2042 @table @kbd
2043 @item M-;
2044 Align comment or insert new comment (@code{fortran-indent-comment}).
2045
2046 @item C-x ;
2047 Applies to nonstandard @samp{!} comments only.
2048
2049 @item C-c ;
2050 Turn all lines of the region into comments, or (with argument) turn them back
2051 into real code (@code{fortran-comment-region}).
2052 @end table
2053
2054 @findex fortran-indent-comment
2055 @kbd{M-;} in Fortran mode is redefined as the command
2056 @code{fortran-indent-comment}. Like the usual @kbd{M-;} command, this
2057 recognizes any kind of existing comment and aligns its text appropriately;
2058 if there is no existing comment, a comment is inserted and aligned. But
2059 inserting and aligning comments are not the same in Fortran mode as in
2060 other modes.
2061
2062 When a new comment must be inserted, if the current line is blank, a
2063 full-line comment is inserted. On a non-blank line, a nonstandard @samp{!}
2064 comment is inserted if you have said you want to use them. Otherwise a
2065 full-line comment is inserted on a new line before the current line.
2066
2067 Nonstandard @samp{!} comments are aligned like comments in other
2068 languages, but full-line comments are different. In a standard full-line
2069 comment, the comment delimiter itself must always appear in column zero.
2070 What can be aligned is the text within the comment. You can choose from
2071 three styles of alignment by setting the variable
2072 @code{fortran-comment-indent-style} to one of these values:
2073
2074 @vindex fortran-comment-indent-style
2075 @vindex fortran-comment-line-extra-indent
2076 @table @code
2077 @item fixed
2078 Align the text at a fixed column, which is the sum of
2079 @code{fortran-comment-line-extra-indent} and the minimum statement
2080 indentation. This is the default.
2081
2082 The minimum statement indentation is
2083 @code{fortran-minimum-statement-indent-fixed} for fixed format
2084 continuation line style and @code{fortran-minimum-statement-indent-tab}
2085 for tab format style.
2086
2087 @item relative
2088 Align the text as if it were a line of code, but with an additional
2089 @code{fortran-comment-line-extra-indent} columns of indentation.
2090
2091 @item nil
2092 Don't move text in full-line comments automatically.
2093 @end table
2094
2095 @vindex fortran-comment-indent-char
2096 In addition, you can specify the character to be used to indent within
2097 full-line comments by setting the variable
2098 @code{fortran-comment-indent-char} to the single-character string you want
2099 to use.
2100
2101 @vindex fortran-directive-re
2102 Compiler directive lines, or preprocessor lines, have much the same
2103 appearance as comment lines. It is important, though, that such lines
2104 never be indented at all, no matter what the value of
2105 @code{fortran-comment-indent-style}. The variable
2106 @code{fortran-directive-re} is a regular expression that specifies which
2107 lines are directives. Matching lines are never indented, and receive
2108 distinctive font-locking.
2109
2110 The normal Emacs comment command @kbd{C-x ;} has not been redefined. If
2111 you use @samp{!} comments, this command can be used with them. Otherwise
2112 it is useless in Fortran mode.
2113
2114 @kindex C-c ; @r{(Fortran mode)}
2115 @findex fortran-comment-region
2116 @vindex fortran-comment-region
2117 The command @kbd{C-c ;} (@code{fortran-comment-region}) turns all the
2118 lines of the region into comments by inserting the string @samp{C$$$} at
2119 the front of each one. With a numeric argument, it turns the region
2120 back into live code by deleting @samp{C$$$} from the front of each line
2121 in it. The string used for these comments can be controlled by setting
2122 the variable @code{fortran-comment-region}. Note that here we have an
2123 example of a command and a variable with the same name; these two uses
2124 of the name never conflict because in Lisp and in Emacs it is always
2125 clear from the context which one is meant.
2126
2127 @node Fortran Autofill
2128 @subsection Auto Fill in Fortran Mode
2129
2130 Fortran mode has specialized support for Auto Fill mode, which is a
2131 minor mode that automatically splits statements as you insert them when
2132 they become too wide. Splitting a statement involves making
2133 continuation lines using @code{fortran-continuation-string}
2134 (@pxref{ForIndent Cont}). This splitting happens when you type
2135 @key{SPC}, @key{RET}, or @key{TAB}, and also in the Fortran indentation
2136 commands. You activate Auto Fill in Fortran mode in the normal way
2137 (@pxref{Auto Fill}).
2138
2139 @vindex fortran-break-before-delimiters
2140 Auto Fill breaks lines at spaces or delimiters when the lines get
2141 longer than the desired width (the value of @code{fill-column}). The
2142 delimiters (besides whitespace) that Auto Fill can break at are
2143 @samp{+}, @samp{-}, @samp{/}, @samp{*}, @samp{=}, @samp{<}, @samp{>},
2144 and @samp{,}. The line break comes after the delimiter if the
2145 variable @code{fortran-break-before-delimiters} is @code{nil}.
2146 Otherwise (and by default), the break comes before the delimiter.
2147
2148 To enable Auto Fill in all Fortran buffers, add
2149 @code{turn-on-auto-fill} to @code{fortran-mode-hook}. @xref{Hooks}.
2150
2151 @node Fortran Columns
2152 @subsection Checking Columns in Fortran
2153
2154 @table @kbd
2155 @item C-c C-r
2156 Display a ``column ruler'' momentarily above the current line
2157 (@code{fortran-column-ruler}).
2158 @item C-c C-w
2159 Split the current window horizontally temporarily so that it is 72
2160 columns wide (@code{fortran-window-create-momentarily}). This may
2161 help you avoid making lines longer than the 72-character limit that
2162 some Fortran compilers impose.
2163 @item C-u C-c C-w
2164 Split the current window horizontally so that it is 72 columns wide
2165 (@code{fortran-window-create}). You can then continue editing.
2166 @item M-x fortran-strip-sequence-nos
2167 Delete all text in column 72 and beyond.
2168 @end table
2169
2170 @kindex C-c C-r @r{(Fortran mode)}
2171 @findex fortran-column-ruler
2172 The command @kbd{C-c C-r} (@code{fortran-column-ruler}) shows a column
2173 ruler momentarily above the current line. The comment ruler is two lines
2174 of text that show you the locations of columns with special significance in
2175 Fortran programs. Square brackets show the limits of the columns for line
2176 numbers, and curly brackets show the limits of the columns for the
2177 statement body. Column numbers appear above them.
2178
2179 Note that the column numbers count from zero, as always in GNU Emacs.
2180 As a result, the numbers may be one less than those you are familiar
2181 with; but the positions they indicate in the line are standard for
2182 Fortran.
2183
2184 @vindex fortran-column-ruler-fixed
2185 @vindex fortran-column-ruler-tabs
2186 The text used to display the column ruler depends on the value of the
2187 variable @code{indent-tabs-mode}. If @code{indent-tabs-mode} is
2188 @code{nil}, then the value of the variable
2189 @code{fortran-column-ruler-fixed} is used as the column ruler.
2190 Otherwise, the value of the variable @code{fortran-column-ruler-tab} is
2191 displayed. By changing these variables, you can change the column ruler
2192 display.
2193
2194 @kindex C-c C-w @r{(Fortran mode)}
2195 @findex fortran-window-create-momentarily
2196 @kbd{C-c C-w} (@code{fortran-window-create-momentarily}) temporarily
2197 splits the current window horizontally, making a window 72 columns
2198 wide, so you can see any lines that are too long. Type a space to
2199 restore the normal width.
2200
2201 @kindex C-u C-c C-w @r{(Fortran mode)}
2202 @findex fortran-window-create
2203 You can also split the window horizontally and continue editing with
2204 the split in place. To do this, use @kbd{C-u C-c C-w} (@code{M-x
2205 fortran-window-create}). By editing in this window you can
2206 immediately see when you make a line too wide to be correct Fortran.
2207
2208 @findex fortran-strip-sequence-nos
2209 The command @kbd{M-x fortran-strip-sequence-nos} deletes all text in
2210 column 72 and beyond, on all lines in the current buffer. This is the
2211 easiest way to get rid of old sequence numbers.
2212
2213 @node Fortran Abbrev
2214 @subsection Fortran Keyword Abbrevs
2215
2216 Fortran mode provides many built-in abbrevs for common keywords and
2217 declarations. These are the same sort of abbrev that you can define
2218 yourself. To use them, you must turn on Abbrev mode. @xref{Abbrevs}.
2219
2220 The built-in abbrevs are unusual in one way: they all start with a
2221 semicolon. You cannot normally use semicolon in an abbrev, but Fortran
2222 mode makes this possible by changing the syntax of semicolon to ``word
2223 constituent.''
2224
2225 For example, one built-in Fortran abbrev is @samp{;c} for
2226 @samp{continue}. If you insert @samp{;c} and then insert a punctuation
2227 character such as a space or a newline, the @samp{;c} expands automatically
2228 to @samp{continue}, provided Abbrev mode is enabled.@refill
2229
2230 Type @samp{;?} or @samp{;C-h} to display a list of all the built-in
2231 Fortran abbrevs and what they stand for.
2232
2233 @node Asm Mode 1718 @node Asm Mode
2234 @section Asm Mode 1719 @section Asm Mode
2235 1720
2236 @cindex Asm mode 1721 @cindex Asm mode
2237 @cindex assembler mode 1722 @cindex assembler mode