case sensitivity, a history of search terms for quick recall and autocompletion, and listing multiple results in one place. Cut, copy, and paste – most text editors provide methods to duplicate and move text within the file, or between files. Ability to handle UTF-8 encoded text. Text formatting – Text editors often provide basic visual formatting features like line wrap, auto-indentation, bullet list formatting using ASCII characters, comment formatting, syntax highlighting and so on. These are typically only for display and do not insert formatting codes into the file itself. Undo and redo – As with word processors, text editors provide a way to undo and redo the last edit, or more. Often—especially with older text editors—there is only one level of edit history remembered and successively issuing the undo command will only "toggle" the last change. Modern or more complex editors usually provide a multiple-level history such that issuing the undo command repeatedly will revert the document to successively older edits. A separate redo command will cycle the edits "forward" toward the most recent changes. The number of changes remembered depends upon the editor and is often configurable by the user. Ability to jump to a specified line number. Advanced features Macro or procedure definition: to define new commands or features as combinations of prior commands or other macros, perhaps with passed parameters, or with nesting of macros. Profiles to retain options set by the user between editing session. Profile macros with names specified in, e.g., environment, profile, executed automatically at the beginning of an edit session or when opening a new file. Multi-file editing: the ability to edit multiple files during an edit-session, perhaps remembering the current-line cursor of each file, to insert repeated text into each file, copy or move text among files, compare files side-by-side (perhaps with a tiled multiple-document interface), etc. Multi-view editors: the ability to display multiple views of the same file, with independent cursor tracking, synchronizing changes among the windows but providing the same facilities as are available for independent files. Collapse/expand, also called folding: the ability to temporarily exclude sections of the text from view. This may either be based on a range of line numbers or on some syntactic element, e.g., excluding everything between a BEGIN; and the matching END;. Column-based editing; the ability to alter or insert data at a particular column, or to shift data to specific columns. Data