aboutsummaryrefslogtreecommitdiffhomepage
path: root/README
blob: 0093baf30639f595dc82f81f3b8a3b448f19cb0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Overview
========

SciTECO is an interactive TECO dialect, similar to [Video TECO](http://www.copters.com/teco.html).
It also adds features from classic TECO-11, as well as unique new ideas.

The basic approach to text editing is both radically different and surprisingly similar to popular
editors like Vi or EMacs. Instead of using mostly keyboard commands to modify text in a visual
manner, in SciTECO you edit a program (called macro) using very few keyboard commands (called
immediate editing commands). This program edits text for the user and is executed immediately,
as far as possible. For instance, moving the cursor to the right can be done immediatly via the
"C" command which is a part of the editor language. The language is the editor so to speak.
When you delete a character from the end of the command line macro (called rubout), the
side-effects of that character which may be a command or part of a command, are undone.

SciTECO uses the [Scintilla](http://www.scintilla.org/) editor component and supports
GTK+ as well as NCurses frontends (using [Scinterm](http://foicica.com/scinterm/)).
The NCurses frontend also works with [PDCurses/XCurses](http://pdcurses.sourceforge.net/)
and its [win32a port](http://www.projectpluto.com/win32a.htm).
Both Linux and Windows (MinGW 32/64) are supported.

Features
========

* All of the basic Video TECO commands supported
* Operator precedence in arithmetic expressions and an argument stack that may be modified
  by the user (commands may have more than two arguments)
* Extended Q-Register namespace (arbitrary strings): can be used to build libraries and
  can be abused as a data structure
* Make use of your keyboard's function keys by assigning them to strings inserted into
  the command stream
* Many TECO-11 features, like that most commands have a colon-modified form, string-building
  characters, exotic match characters
* Interactivity: supports filename completion via immediate editing commands (e.g. `<TAB>` in
  commands accepting filenames); immediate searching (similar to search-as-you-type);
  context-sensitive immediate editing commands
* Command rubout: SciTECO can even undo file writes (`EW` command)
* Munging: Macros may be munged, that is executed in batch mode. By default, a profile
  is munged.
* Syntax highlighting, styles, line numbers, etc. thanks to Scintilla

Installation
============

SciTECO has the following build and runtime dependencies:
* Autotools, GNU C, C++ and [Gob2](http://www.jirka.org/gob.html)
* Groff (only when formatting HTML manuals)
* [Glib](http://developer.gnome.org/glib/), as a cross-platform runtime library
* [Scintilla](http://www.scintilla.org/), and possibly [Scinterm](http://foicica.com/scinterm/)
  (v1.1 or later)
* [GTK+ 2](http://www.gtk.org/), [NCurses](http://www.gnu.org/software/ncurses/),
  [PDCurses/XCurses](http://pdcurses.sourceforge.net/) or
  [PDCurses/Win32a](http://www.projectpluto.com/win32a.htm).
* Other curses implementations might work as well but are untested.

1. Build Scintilla as described in its README. If you want to build the ncurses version,
   install Scinterm from a subdirectory of Scintilla called `scinterm`
   (also have a look at SciTECO's `--with-scinterm` configure option).
   * For TECO-style control code echoing, apply `patches/scintilla-teco-control-codes.patch`
     from the SciTECO archive/repository. This will hopefully be simplified in the future.
2. Untar/unzip/check-out SciTECO into a subdirectory of Scintilla.
   Alternatively, have a look at SciTECO's `--with-scintilla` configure option.
3. Build like any other Autoconf-based project. `autoreconf` (only necessary if building from
   a working copy), followed by `./configure`, followed by `make`.
   The interface may be chosen with `--with-interface` (ncurses is the default).
3. Install with `make install`.
4. You are recommended to use the included `teco.ini` as a starting point for your profile,
   so copy it to `~/.teco_ini`.

Additional Documentation
========================

* There is a manpage [__sciteco__(1)](http://rhaberkorn.github.com/sciteco/manuals/sciteco.1.html)
  describing program invocation and SciTECO's batch mode processing.
* There is a manpage [__sciteco__(7)](http://rhaberkorn.github.com/sciteco/manuals/sciteco.7.html)
  describing SciTECO as a language.