Orbiton ist ein Texteditor und eine einfache IDE mit den folgenden Zielen:
VT100 )Bitte geben Sie eine PR ein, wenn etwas verbessert werden kann, um diese Ziele zu erreichen.
Orbiton passt gut zu:
EDITOR=o git commit ).README.md und TODO.md -Dateien.EDITOR=o visudo verwendet werden kann und integrierte Unterstützung für ordentlich formatierende /etc/fstab Dateien hat.ctrl-g drücken, um die Wortanzahl anzuzeigen). Screenshot der VTE -GUI -Anwendung (die im gtk3 -Verzeichnis zu finden ist) mit dem o -Editor:

Durch den Debug-Modus mit dem ctrl-o -Menü eintreten und dann die Anweisungen eines Rust-Programms mit dem STRL-O-Menü eingeben und dann mit ctrl-n eintreten:

Bearbeiten einer C -Quelldatei in og mit dem Thema "Synthwave":

Es gibt auch leichte Themen:


| Orbiton |
|---|
Mit Go 1.21 kann die Entwicklungsversion von o so installiert werden:
go install github.com/xyproto/orbiton/v2@latest && mv -i ~/go/bin/orbiton ~/go/bin/o
Passen Sie die mv -Flags und den ~/go/bin nach Bedarf an. Vielleicht hat go install in Zukunft ein -o -Flag.
Alternativ herunterladen und installieren Sie eine Release -Version. Zum Beispiel für Raspberry Pi 2, 3 oder 4 laufende Linux:
curl -sL 'https://github.com/xyproto/orbiton/releases/download/v2.68.6/orbiton-2.68.6-linux_armv7_static.tar.xz' | tar JxC /tmp && sudo install -Dm755 /tmp/orbiton-2.68.6-linux_armv7_static/o /usr/bin/o && sudo install -Dm644 /tmp/orbiton-2.68.6-linux_armv7_static/o.1.gz /usr/share/man/man1/o.1.gz
o als Standard -Editor -Datei für git einZu setzen:
git config --global core.editor o
Zu vereinbaren:
git config --global --unset core.editor
Durch Einstellen der Variablen der MANPAGER -Umgebung können o für die Anzeige von Menschenseiten verwendet werden:
export MANPAGER=o
Eine Alternative zum Betrachten von Mannseiten in o ist die Verwendung less :
export MANPAGER='less -s -M +Gg'
o auf OpenSuse Installieren Sie o manuell, bis ein OpenSuse -Paket vorhanden ist:
git clone https://github.com/xyproto/orbiton
cd orbiton
make && sudo make install
Das Folgende ist nicht streng benötigt, aber es setzt alles auf, um o
Fügen Sie dies zu ~/.alias hinzu:
alias o=/usr/bin/o
Fügen Sie dies zu ~/.profile hinzu:
export MANPAGER=/usr/bin/o
export EDITOR=/usr/bin/o
Melden Sie sich erneut an und aktivieren Sie die Änderungen.
Diese Funktionen sind für o einzigartig, soweit ich weiß:
ctrl-v , um eine Zeile einzufügen, und drücken Sie erneut ctrl-v um den Rest einzufügen.ctrl-c , um eine Zeile zu kopieren. Drücken Sie erneut ctrl-c um einen Zeilenblock zu kopieren (bis eine leere Zeile).ctrl-r . Wenn ein Portal geöffnet ist, kopieren Sie Zeilen über Dateien (oder innerhalb derselben Datei) mit ctrl-v .ctrl-space und Formatcode mit ctrl-w für eine Vielzahl von Programmiersprachen.ctrl-w oder ctrl-r , wenn eine interaktive Git-Rebase-Sitzung im Gange ist.ctrl-l zu einer Linie. Geben Sie entweder eine Nummer ein, um in eine Zeile zu springen, oder drücken Sie einfach return (oder t ), um nach oben zu springen. Drücken Sie ctrl-l und return erneut zurück (oder b ), um nach unten zu springen. Drücken Sie c , um in die Mitte zu springen.ctrl-l zu einer bestimmten Zeile springen, ist es ebenfalls möglich, auf einen Prozentsatz (wie 50% ) oder einen Bruch (wie 0.5 oder .5 ) zu springen. Es ist auch möglich, zu einem der hervorgehobenen Buchstaben zu springen.main. Datei, die nicht existiert, aber main.cpp und main.o existiert, dann wird main.cpp geöffnet.ctrl-f , Eingabe von Text und Drücken return . Ersetzen Sie durch Drücken tab anstelle der return , geben Sie den Ersatztext ein und drücken Sie return . Die Suche nach Unicode -Runen im Formular u+0000 wird ebenfalls unterstützt.iferr in eine einzelne Zeile in ein GO- oder ODIN -Programm ein und drücken Sie return , um ein geeignetes if err != nil { return ... }ctrl-t drücken, wenn sich der Cursor auf einer Tabelle befindet. Dies funktioniert am besten für Tische, die nicht zu breit sind.ctrl-w drücken.if , for und while der Rückgabe, hinzugefügt.ctrl-f sucht zweimal nach dem Wort unter dem Cursor."Hello, World" in vielen beliebten Programmiersprachen kompilieren, indem er einfach ctrl-space drückt.o main.c , drücken Sie ctrl-w und anschließend einen doppelten ctrl-space ..png , .jpg , .jpeg , .gif , .ico , .bmp oder .webp -Bilder direkt im Terminal (unter Verwendung einer skalierten Down -Version und bis zu 16 Farben).-p , gefolgt von einem Dateinamen, kann verwendet werden, um die Zwischenablage gerade in eine neue Datei zu kleben, anstatt eine Datei zu bearbeiten.ctrl-t kann beim Bearbeiten von C ++-Code zwischen einem C ++-Header und einer Quelldatei springen.ctrl-t zeigt den Markdown-Tabelleneditor bei der Bearbeitung von Markdown und der Cursor in einer Markdown-Tabelle.vim und emacs für kleine Dateien.pandoc zu PDF rendern.alacritty , konsole , st , urxvt , xfce4-terminal , xterm und zutty .NO_COLOR -Umgebungsvariable kann so eingestellt werden, dass alle Farben deaktiviert werden.ctrl-a und ctrl-e möglicherweise anstelle von Home und End verwendet werden müssen. Und zum Auf- und Absteigen können ctrl-n und ctrl-p verwendet werden.go oder gccgo ./dev/tty verfügbar ist.xclip für X, wl-clipboard für Wayland oder pbcopy für macOS muss installiert werden, um auf die System-Zwischenablage zuzugreifen.+ oder : Präfix nehmen.COMMIT_EDITMSG lautet, wird das Erscheinungsbild für Git -Commit -Nachrichten angepasst.UTF-8 , aber einige Runen können falsch angezeigt werden.n ).rn ) in UNIX -Zeilenende (nur n ), wann immer möglich.0xc2 0xa0 ) durch einen regulären Speicherplatz ( 0x20 ), wann immer möglich.0xcc 0x88 ) durch eine reguläre Tilde ( ~ ), wann immer möglich.0xcd 0xbe ) mit einem regulären Semikolon ( ; ) (;) nach Möglichkeit aussieht.git rebase -i gestartet wird, wird entweder ctrl-w oder ctrl-r die Schlüsselwörter für die aktuelle Zeile ( fixup , drop , edit usw.) radeln.r beginnt (oder einen Symlink mit diesem Namen hat), ist das Standardthema rot/schwarz.l beginnt (oder einen Symlink mit diesem Namen hat), ist das Standardthema für leichte Hintergründe geeignet.s (oder mit diesem Namen einen Symlink hat), ist das Standardthema das Thema "Synthwave".o filename.md , drücken Sie zweimal ctrl-space und beenden Sie mit ctrl-q .ctrl-space oder ctrl-t um das Überprüfen der Kennzeichen - [ ] TODO item in Markdown umzuschalten..gz -Erweiterung enden.ctrl-w formatieren.ctrl-f und dann t , um nach einem Tippfehler zu suchen, ctrl-n für die nächste Übereinstimmung und dann ctrl-a , um sie hinzuzufügen, und ctrl-i , um es zu ignorieren).ctrl-l gedrückt wurde. tmux und die Größe des Terminals -Emulatorfensters kann zu Problemen mit Textrendern führen. Versuchen Sie, esc zu drücken, um den Text neu zu zeichnen, oder ctrl-f um nach Text zu suchen. Das korrekte Einstellen TERM kann helfen.o Drücken ctrl-s das Terminal sperren. Einige terminale Emulatoren wie konsole können so konfiguriert werden, dass dieses Verhalten ausgeschaltet wird. Drücken Sie ctrl-q , um das Terminal erneut zu entsperren (zusammen mit dem unglücklichen Risiko, o aufzuhören). Um dieses Problem zu umgehen, kann stattdessen das ctrl-o -Menü zum Speichern und Aufhören verwendet werden.mosh kann zu Problemen mit Text -Rendering (in nvim und o ) führen.cmd-v , cmd-x und cmd-c auf macOS funktioniert nur, wenn das og GUI/VTE-Frontend verwendet wird. Für o können stattdessen ctrl-v , ctrl-x und ctrl-c verwendet werden.Es gibt ziemlich wenige Hotkeys, an die man sich erinnern muss:
ctrl-s - Speichern.ctrl-q - Quit.ctrl-r - Öffnen oder schließen Sie ein Portal. Der Text kann vom Portal in eine andere (oder dieselbe) Datei mit ctrl-v eingefügt werden. Für "Git Interactive Rebase" -Modus ( git rebase -i ) wird stattdessen die Rebase -Schlüsselwörter radeln.ctrl-a - Gehen Sie zu Beginn des Textes, dann die Zeile und dann zur vorherigen Zeile.ctrl-e - Gehen Sie bis zum Ende der Linie und dann zur nächsten Zeilectrl-n - Scrollen Sie 10 Zeilen nach unten oder gehen Sie zum nächsten Übereinstimmung, wenn eine Suche aktiv ist. Fügen Sie eine Spalte ein, wenn Sie im Markdown -Tabellen -Editor geführt haben.ctrl-p - Scrollen Sie 10 Zeilen nach oben oder gehen Sie zur vorherigen Übereinstimmung, wenn eine Suche aktiv ist. Entfernen Sie eine leere Spalte, wenn Sie im Markdown -Tabellen -Editor sind.ctrl-k - Zeichen bis zum Ende der Zeile löschen und dann die Zeile löschen.ctrl-_ Springen Sie zu einer passenden Klammer oder Klammer, wenn der Cursor auf einem ist, ansonsten ein Symbol einfügen, indem Sie in einen 2-Buchstaben-Digraph eingeben.ctrl-d - Löschen Sie ein einzelnes Zeichen.ctrl-t - Für C und C ++: Springen Sie zwischen dem aktuellen Header und der Quelldatei. Fügen Sie für Agda und Ivy ein Symbol ein. Für Markdown: Wechselkästchen umschalten, oder starten Sie den Tabelleneditor, wenn sich der Cursor über einer Tabelle befindet. Für den Rest: Aufnehmen Sie und spiele Back -Tastaturen. Drücken Sie Esc um das aktuelle Makro zu löschen.ctrl-o - Öffnen Sie ein Befehlsmenü mit Aktionen, die ausgeführt werden können.ctrl-x - Schneiden Sie die aktuelle Linie ab. Drücken Sie zweimal, um einen Textblock (zur nächsten leeren Zeile) zu schneiden.ctrl-c - eine Zeile kopieren. Drücken Sie zweimal, um einen Textblock zu kopieren.ctrl-v - Einfügen Sie eine geschnittene Linie. Drücken Sie zweimal, um mehrere nicht geschnittene Linien einzufügen.ctrl-space - Programm erstellen, auf PDF rendern oder auf die Mannseite exportieren (siehe Tabelle unten). Für Markdown: Umschalten Kontrollkästchen oder doppelt drücken, um nach HTML zu exportieren.ctrl-j - Schließen Sie Zeilen zusammen (oder springen Sie zum Lesezeichen, falls festgelegt).ctrl-u -rückgängig ( ctrl-z ist ebenfalls möglich, kann aber die Anwendung im Hintergrund haben).ctrl-l - Springen Sie zu einer bestimmten Zeilenzahl oder einem bestimmten Prozentsatz. Drücken Sie return , um nach oben zu springen. Wenn oben, drücken Sie return , um nach unten zu springen. Drücken Sie einen der hervorgehobenen Bildschirmbuchstaben, um zu diesem Ort zu springen.ctrl-f - Suche nach einer Zeichenfolge. Die Suche schlägt sich um und ist fallsempfindlich. Drücken Sie tab anstatt return zu suchen und zu ersetzen. Um Tippfehler zu finden, suchen Sie nach dem Buchstaben t und drücken Sie ctrl-n für das nächste Wort, ctrl-a um ihn hinzuzufügen, oder ctrl-i es zu ignorieren.ctrl-b -Springen Sie zurück, nachdem Sie mit ctrl-g zu einer Definition gesprungen sind. Schalten Sie ein Lesezeichen für die aktuelle Zeile um oder wenn Sie festgelegt haben: Springen Sie zu einem Lesezeichen in einer anderen Zeile.ctrl-w - Formatieren Sie die aktuelle Datei (siehe Tabelle unten) oder Keywords der Git -Rebase -Rebase. Formatieren Sie die Tabelle unter dem Cursor.ctrl-g - Springen Sie für einige Programmiersprachen (experimentelle Funktion) zum Definition oder schalten Sie die Statusleiste um.ctrl- - Kommentar in oder aus einem Codeblock.ctrl-~ - Springen Sie zu einer passenden Klammer oder Klammer.esc - alles neu zeichnen und die letzte Suche löschen. ctrl-space um die aktuelle Datei zu erstellen oder zu exportieren.ctrl-w , um die aktuelle Datei auf eine Meinung zu formatieren. Wenn die aktuelle Datei leer ist, eine "Hallo, Welt!" Die Vorlage wird für einige Dateierweiterungen eingefügt.$(o -l) ausgeführt werden, um weitere Details zu erhalten. o -l kann verwendet werden, um den Befehl voranzutreiben.| Programmiersprache | Dateierweiterungen | Auf Fehler springen | Befehl erstellen | Formatbefehl |
|---|---|---|---|---|
| Ada | .adb , .gpr , .ads , .ada | Wip | Wip | Wip |
| Agda | .agda | Ja | agda -c $filename | N / A |
| Algol 68 | .a68 | Wip | a68g --compile $filename | Wip |
| Montage | .asm , .s , .S , .inc | Ja | yasm -f elf64 -o $output.o $filename | N / A |
| C | .c , .h | Ja | gcc $filename -o $output | clang-format -i --style=WebKit $filename |
| C ++ | .cpp , .cc , .cxx , .h , .hpp , .h++ , .c++ | Ja | g++ $filename -o $output | clang-format -i --style=WebKit $filename |
| C# | .cs | Ja | dotnet build $filename | astyle --mode=cs $filename |
| C3 | .c3 | Ja | c3c compile -o $output $filename | c3fmt --rewrite $filename |
| Clojure | .clj , .cljs , .clojure | Wip | lein compile $filename | Wip |
| Kristall | .cr | Ja | crystal build $filename --release | crystal tool format $filename |
| CSS | .css | Wip | NEIN | prettier --tab-width 2 -w $filename |
| D | .d | Ja | dmd $filename -of$output | Wip |
| Pfeil | .dart | Ja | dart compile exe --output $output $filename | dart format $filename |
| Erlang | .erl | Ja | erlc $filename | Wip |
| FORTRAN77, FORTRAN90 | .f , .f90 | Ja | gfortran -o $output $filename | Wip |
| Granat | .gt | Wip | garnetc -o $output $filename | Wip |
| GLSL | .glsl , .vert , .frag | Wip | glslangValidator -V -o $output $filename | Wip |
| Gehen | .go | Ja | go build $filename | goimports -w $filename |
| Hase | .ha | Ja | hare build $filename | N / A |
| Haskell | .hs | Ja | ghc -dynamic $filename | brittany --write-mode=inplace $filename |
| Html | .html | Wip | NEIN | tidy -m $filename |
| Efeu | .ivy | Wip | Wip | N / A |
| Java | .java | Ja | javac + jar , siehe Details unten | google-java-format -a -i $filename |
| JavaScript | .js | Wip | NEIN | prettier --tab-width 4 -w $filename |
| Jakt | .jakt | Wip | jakt $filename | Wip |
| Nur | justfile ,. .justfile | NEIN | NEIN | just --unstable --fmt -f $filename |
| Kotlin | .kt , .kts | Ja | kotlinc $filename -include-runtime -d $output.jar | ktlint -F $filename |
| Kotlin geboren | .kt , .kts | Ja | kotlinc-native -nowarn -opt -Xallocator=mimalloc -produce program -linker-option --as-needed $filename -o $output | ktlint -F $filename |
| Lua | .lua | Ja | luac -o $output.luac $filename | lua-format -i --no-keep-simple-function-one-line --column-limit=120 --indent-width=2 --no-use-tab $filename |
| Markdown | .md | Wip | NEIN | prettier --write $filename |
| Nim | .nim | Wip | nim c -o:$output $filename | Wip |
| Ziel-C | .m | Ja | clang $filename -o $output | clang-format -i --style=WebKit $filename |
| Odin | .odin | Ja | odin build $filename | N / A |
| Objektives Pascal | .pas , .pp , .lpr | Ja | fpc $filename | Wip |
| Ocaml | .ml | Wip | NEIN | ocamlformat $filename |
| Perl | .pl | Ja | perl $filename | /usr/bin/vendor_perl/perltidy -se -b -i=2 -ole=unix -bt=2 -pt=2 -sbt=2 -ce $filename |
| Python | .py | Ja | python -m py_compile $filename | black $filename |
| Rubin | .rb | NEIN | NEIN | rubocop -A $filename |
| Rost (mit Cargo.toml) | .rs | Ja | cargo build | rustfmt $filename |
| Rost | .rs | Ja | rustc $filename | rustfmt $filename |
| Scala | .scala | Ja | scalac $filename && jar cfe $output MainClass *.class | scalafmt $filename |
| Hülse | .sh , PKGBUILD , APKBUILD | Wip | makepkg | shfmt -s -w -i 2 -bn -ci -sr -kp $filename |
| Standard ml | .sml , .fun , .mlb , .cm | Ja | mlton $filename | Wip |
| Schnell | .swift | Wip | Wip | Wip |
| Typoskript | .ts | Wip | NEIN | prettier --tab-width 4 -w $filename |
| V | .v | Ja | v build $filename | v fmt $filename |
| Xml | .xml | Wip | NEIN | tidy -w 80 -q -i -utf8 --show-errors 0 --show-warnings no --tidy-mark no -xml -m $filename |
| Zick | .zig | Ja | zig build-exe $filename | zig fmt $filename |
/etc/fstab , JSON und HTML-Dateien werden ebenfalls unterstützt und können mit ctrl-w formatiert werden.
o Versucht, zu dem Ort zu springen, an dem der Fehler ist, und ansonsten Success anzeigen.ctrl-w die Zeilen auf eine Länge von 99.kotlinc-native nicht verfügbar ist, wird dieser Baubefehl stattdessen verwendet: kotlinc $filename -include-runtime -d $name.jarCXX kann hier heruntergeladen werden: GitHub -Projektseite für CXX.
| Dateityp | Dateierweiterungen | Befehl erstellen oder exportieren |
|---|---|---|
| Asciidoc | .adoc | asciidoctor -b manpage (schreibt auf out.1 ) |
| SCDOC | .scd , .scdoc | scdoc (schreibt auf out.1 ) |
| Markdown | .md | pandoc -N --toc -V geometry:a4paper (schreibt $filename.pdf ) |
Dies ist eine brandneue Funktion und benötigt mehr Tests.
gdb installiert ist, ist es möglich, "Debug-Modus" aus dem ctrl-o -Menü auszuwählen und dann ein Programm mit ctrl-space zu erstellen und durchzuführen oder einen Breakpoint mit ctrl-b zu setzen und mit ctrl-space fortzusetzen.Während im Markdown -Tabellen -Editor:
tab kann verwendet werden, um in die nächste Zelle zu gehen oder neue Zellen einzufügen, wenn die letzte Zelle erreicht ist.return kann verwendet werden, um entweder zur leeren Zelle unten zu springen oder eine neue Zeile unten einzufügen.backspace kann zum Löschen von Buchstaben verwendet werden, aber auch zum Löschen der aktuellen Zeile, wenn sie leer ist.ctrl-n kann eine neue Spalte rechts einfügen.ctrl-d kann verwendet werden, um die Stromspalte zu löschen (wenn alle Zellen in der Spalte leer sind).esc oder ctrl-t kann verwendet werden, um den Markdown-Tabelleneditor zu schließen.ctrl-s können zum Speichern verwendet werden. Themen können mit dem ctrl-o -Menü ausgewählt werden. Das Themenmenü listet auch die Themennamen auf, die in der O_THEME -Umgebungsvariablen angegeben werden können.
Die O_THEME Umgebungsvariable ist eine Ausnahme von der Behauptung, dass o konfigurationsfrei ist, aber vollständig optional ist.
Für die Verwendung IE. Das Synthwave -Thema, das /usr/bin/sw -Symlink zu /usr/bin/o kann verwendet werden, oder dies kann zu ~/.profile hinzugefügt werden:
export O_THEME=synthwave
æ einzulegen, drücken Sie einfach ctrl-_ und geben Sie ae ein. Um µ einzulegen, geben Sie in My ein. git clone https://github.com/xyproto/orbiton
cd orbiton
make && sudo make install
Und optional:
make gui && sudo make gui-install
Es ist auch möglich, die Symlinks zu installieren, die in diesem Dokument weiter unten vorgeschlagen werden.
Installieren Sie Abhängigkeiten (verwenden Sie bei Bedarf doas ):
add_pkg git gmake go vte3
Bauen Sie sowohl den Herausgeber o als auch das GUI -Frontend og :
gmake CXX="clang++ -w" o og
Installieren Sie beide ausführbaren, eine Mannseite, ein Symbol und eine Desktop -Verknüpfungsdatei (verwenden Sie doas bei Bedarf "):
PREFIX=/usr/local gmake install og-install
Einfach bauen und installieren o funktioniert auch:
gmake
doas gmake install
Es ist auch möglich, die Symlinks zu installieren, die in diesem Dokument weiter unten vorgeschlagen werden.
C ++
ctrl-space muss cxx installiert werden.ctrl-w muss clang-format installiert werden.Gehen
ctrl-space muss der go Compiler installiert werden.ctrl-w muss goimports installiert werden.Zick
zig erforderlich.V
v benötigt.Rost
ctrl-space muss Cargo.toml vorhanden sein und cargo muss installiert werden.ctrl-w muss rustfmt installiert werden.Haskell
ctrl-space muss der ghc Compiler installiert werden.ctrl-w muss brittany installiert werden.Python
ctrl-space überprüft nur die Syntax, ohne auszuführen. Dies erfordert nur, dass python verfügbar ist.ctrl-w zu formatieren, muss black installiert werden.Kristall
crystal benötigt.Kotlin
ctrl-space muss kotlinc installiert werden. Eine .jar -Datei wird erstellt, wenn die Zusammenstellung erfolgreich ist.ctrl-w muss ktlint installiert werden.Java
ctrl-space müssen javac und jar installiert werden. Eine .jar -Datei wird erstellt, wenn die Zusammenstellung erfolgreich ist.ctrl-w muss google-java-format installiert werden.Scala
ctrl-space müssen scalac und jar installiert werden. Eine .jar -Datei wird erstellt, wenn die Zusammenstellung erfolgreich ist.java -jar main.jar ausgeführt werden. Verwenden Sie scalac -d main.jar MyFile.scala Wenn Sie ein Glas produzieren möchten, das mit scala main.jar ausgeführt werden kann.ctrl-w muss scalafmt installiert werden.D
ctrl-space muss gdc verfügbar sein.JSON
fstab
fstab Dateien (normalerweise /etc/fstab ) ist eine integrierte Funktion. Drücken Sie einfach ctrl-w . Wenn Sie ein eigenständiges Dienstprogramm benötigen, ist fstabfmt verfügbar.JavaScript
prettier installiert werden. Da kotlinc $filename -include-runtime -d zu einem .jar baut, sollte ich das Gleiche für Java tun. Die Idee ist, einfach eine einzelne oder eine kleine Sammlung von .java -Dateien zu kompilieren, bei denen eine der Dateien eine main hat.
Wenn Sie über einen einfacheren Weg wissen, eine .jar -Datei von *.java zu erstellen, ohne so etwas wie Gradle zu verwenden, lassen Sie es mich bitte wissen, indem Sie eine Pull -Anfrage einreichen. Das ist ziemlich ausführlich ...
javaFiles= $( find . -type f -name ' *.java ' )
for f in $javaFiles ; do
grep -q ' static void main ' " $f " && mainJavaFile= " $f "
done
className= $( grep -oP ' (?<=class )[A-Z]+[a-z,A-Z,0-9]* ' " $mainJavaFile " | head -1 )
packageName= $( grep -oP ' (?<=package )[a-z,A-Z,0-9,.]* ' " $mainJavaFile " | head -1 )
if [[ $packageName != " " ]] ; then
packageName= " $packageName . "
fi
mkdir -p _o_build/META-INF
javac -d _o_build $javaFiles
cd _o_build
echo " Main-Class: $packageName$className " > META-INF/MANIFEST.MF
classFiles= $( find . -type f -name ' *.class ' )
jar cmf META-INF/MANIFEST.MF ../main.jar $classFiles
cd ..
rm -rf _o_build Für Scala ist dies der Code, mit dem eine main.jar -Datei erstellt wird, die direkt mit java -jar main.jar ausgeführt werden kann:
#! /bin/sh
scalaFiles= $( find . -type f -name ' *.scala ' )
for f in $scalaFiles ; do
grep -q ' def main ' " $f " && mainScalaFile= " $f "
grep -q ' extends App ' " $f " && mainScalaFile= " $f "
done
objectName= $( grep -oP ' (?<=object )[A-Z]+[a-z,A-Z,0-9]* ' " $mainScalaFile " | head -1 ) ;
packageName= $( grep -oP ' (?<=package )[a-z,A-Z,0-9,.]* ' " $mainScalaFile " | head -1 ) ;
if [[ $packageName != " " ]] ; then
packageName= " $packageName . "
fi
mkdir -p _o_build/META-INF
scalac -d _o_build $scalaFiles
cd _o_build
echo -e " Main-Class: $packageName$objectName nClass-Path: /usr/share/scala/lib/scala-library.jar " > META-INF/MANIFEST.MF
classFiles= $( find . -type f -name ' *.class ' )
jar cmf META-INF/MANIFEST.MF ../main.jar $classFiles
cd ..
rm -rf _o_build/usr/share/scala/lib/scala-library.jar nicht gefunden wird scalac -d run_with_scala.jar wird stattdessen verwendet.scala-library.jar nicht gefunden wurde, muss die resultierende jar Datei scala ausgeführt werden. ctrl-t bringt ein Menü mit einer Auswahl spezieller Symbole auf.
Es gibt auch diese Abkürzungen:
⊤ ein, indem Sie ctrl-t und dann t drücken.ℕ ein, indem Sie ctrl-t und dann n drücken. Beim Bearbeiten PKGBUILD Dateien ist es möglich, ctrl-o zu drücken und Call Guessica auszuwählen, um die Felder pkgver= und source= durch eine Kombination aus Guess und Online-Suche zu aktualisieren. Diese Funktionalität hängt von der Installation des Dienstprogramms für das Udica -Paket -Update ab und funktioniert nur für einige PKGBUILD -Dateien.
a68g - zum Kompilieren von Algol 68 Codeagda - zum Kompilieren von AGDA -Codeasciidoctor - zum Schreiben von Mannseitenastyle - zum Formatieren von C# Codeblack - zum Formatieren von Python -Codebrittany - zum Formatieren von Haskell -Codecargo - zum Kompilieren von Rostclang - zum Formatieren von C ++ - Code mit clang-formatclojure - zum Zusammenstellen von Clojurecrystal - zum Kompilieren von Kristallcxx - zum Kompilieren von C ++fpc - zum Kompilieren von Objekten Pascalg++ - zum Kompilieren von C ++ - Codegdc - zum Kompilieren von D -Codeghc - zum Kompilieren von Haskell -Codego - zum Kompilieren von Go -Codego-tools - Zum Formatieren von Go -Code und zur Behandlung von Importen mit goimportsgoogle-java-format -zum Formatieren von Java-Codejad - Dekompile .class Klassendateien im laufenden Fliegen, wenn sie mit o öffnenjava-environment - zum Kompilieren von Java -Code und zum Erstellen von .jar -Dateien mit javac und jarkotlin - zum Kompilieren von Kotlinktlint - zum Formatieren des Kotlin -Codelua - zum Zusammenstellen von Lua zu Bytecodelua-format - zum Formatieren von Lua -Codemlton - zum Kompilieren von Standard -MLmono - zum Kompilieren von C# Codeocaml - zum Kompilieren und Formatieren von OCAML -Codeodin - zum Kompilieren von Odinpandoc - zum Exportieren von Markdown nach PDFprettier - zum Formatieren von JavaScript, TypeScript und CSSpython - zum Zusammenstellen von Python zu Bytecoderustc - zum Kompilieren von Rostrustfmt - zum Formatieren von Rostscala - zum Zusammenstellen von Scalasdoc - zum Schreiben von Mannseitentidy - zum Formatieren von XMLv - zum Kompilieren und Formatieren von V -Codezig - zum Kompilieren und Formatieren von Zickcode o -Datei beträgt 1,5 m, wenn sie mit GCC 12 (für 64-Bit-Linux) erstellt und mit upx komprimiert wird. Eine Möglichkeit, mit gccgo und upx (im v2 -Verzeichnis) zu bauen:
go build -mod=vendor -gccgoflags '-Os -s' -o o && upx --best --lzma o
Wenn die ausführbare o stattdessen mit go erstellt wird, kann die Größe 8,7 m oder nur 2,8 m betragen, wenn sie mit upx gepackt sind:
go build -mod=vendor -ldflags='-s -w' -trimpath -o o && upx --best --lzma o
Diese vier Möglichkeiten zum Öffnen file.txt in Zeile 7 werden unterstützt:
o file.txt 7o file.txt +7o file.txt:7o file.txt+7 Dies bedeutet auch, dass Dateinamen mit + oder : und dann von einer Zahl nicht unterstützt werden.
-f kann verwendet werden, um eine Datei zu öffnen, unabhängig davon, ob es Schlösser gibt. Es kann auch zum Überschreiben von Dateien zusammen mit -p verwendet werden.-c FILENAME kann verwendet werden, um den Inhalt der angegebenen Datei in die Zwischenablage zu kopieren und dann beenden.-p FILENAME kann verwendet werden, um den Inhalt der Zwischenablage in den angegebenen FILENAME einzufügen (falls dies noch nicht vorhanden ist) und dann beenden.-n kann verwendet werden, um das Schreiben von Lockfiles, Erstellen von Dateien, Standortverlauf, Suchverlauf und den Game HighScore auf $XDG_CACHE_DIR/cache/o oder ~/.cache/o zu vermeiden. Nicht empfohlen.-m kann verwendet werden, um eine Datei als schreibgeschützt zu öffnen, sie jedoch auf Änderungen zu überwachen.--help kann verwendet werden, um einen schnellen Überblick über die unterstützten Schlüsselbindungen zu erhalten.--version wird die aktuelle Version drucken und dann beenden. Beim Laden von Dateien, die groß oder von einer langsamen Festplatte sind, wird ein animierter Spinner angezeigt. Der Ladevorgang kann durch Drücken von esc , q oder ctrl-q unterbrochen werden.

Diese Shell -Funktion funktioniert in zsh und bash und kann nützlich sein, um eine Datei an der angegebenen Zeilennummer zu suchen und zu öffnen (funktioniert am besten, wenn es nur eine übereinstimmende Datei gibt, wenn nicht sie einige Dateien nacheinander öffnet):
fo () { find . -type f -wholename " * $1 " -exec o {} $2 ; ; } Wenn zu viele Dateien gefunden werden, ist es möglich, sie zu öffnen, indem Sie Stop-Parent auswählen, ohne aus dem ctrl-o -Menü Stop parent and quit without saving , wodurch der Editor beendet wird und auch den übergeordneten find tötet.
Beispiel Verwendung:
fo somefile.cpp 123 Bei Verwendung von pandoc zum Exportieren von Markdown nach PDF:
PAPERSIZE um Umgebungsvariable auf IE eingestellt ist. a4 oder letter , es wird beim Exportieren von Markdown zu PDF mit Pandoc im Presse des ctrl-space respektiert.--pdf-engine=xelatex und --listings werden verwendet, sodass xelatex und das listings verfügbar sein müssen. Eine Standardinstallation von Latex und Pandoc sollte beides bereitstellen.Render to PDF with pandoc wird nur im ctrl-o -Menü angezeigt, wenn die Bearbeitung einer Markdown-Datei und pandoc installiert ist. ctrl-o -Menü, um ein dummes kleines Spiel über das Füttern von Kreaturen mit Pellets zu beginnen, bevor sie gegessen werden. Erstellen Sie alternativ einen Symlink, um ihn direkt zu starten, dh ln -sf /usr/bin/o /usr/bin/feedgame .right, down, left oder left, down, right in schneller Folge, gefolgt von down , um zu speichern oder zu up und zu beenden. Der einzige Zweck dieser ungewöhnlichen Abkürzung ist es, die schmerzhaften Emacs -Pinky zu vermeiden. o - für terminale Emulatoren, die mindestens VT100 unterstützenog - Für die VTE -GUI (optional) # For starting o with the Light theme
ln -sf /usr/bin/o /usr/bin/li
# For starting o with the Red/Black theme
ln -sf /usr/bin/o /usr/bin/redblack
# For starting o with the Synthwave theme
ln -sf /usr/bin/o /usr/bin/sw
# For starting o with the Blue Edit theme
ln -sf /usr/bin/o /usr/bin/edi
# For starting o with the Light VS theme
ln -sf /usr/bin/o /usr/bin/vs # For starting the GUI version of o with the Light theme
ln -sf /usr/bin/og /usr/bin/lig
# For starting the GUI version of o with the Red/Black theme
ln -sf /usr/bin/og /usr/bin/redblackg
# For starting the GUI version of o with the Synthwave theme
ln -sf /usr/bin/og /usr/bin/swg
# For starting the GUI version of o with the Blue Edit theme
ln -sf /usr/bin/og /usr/bin/edg
# For starting the GUI version of o with the Light VS theme
ln -sf /usr/bin/og /usr/bin/vgogBauen:
make gui
Installieren (bei Bedarf sudo oder doas verwenden):
make gui-install
ctrl-f , um zu suchen, und geben Sie dann t ein und drücken Sie die Rückkehr, um nach dem nächsten T YPO zu suchen.ctrl-a , um es (vorübergehend) zum Wörterbuch oder ctrl-i zu (vorübergehend) zu ignorieren.o von einem Symlink oder einer ausführbaren Datei namens nan oder nano gestartet wird) sucht ctrl-t nach dem nächsten Tippfehler.Der eingebaute Rechtschreibprüfung verwendet eine Liste von Wörtern aus diesem Projekt, die unter dieser MIT-Lizenz lizenziert ist:
MIT License, Copyright (c) Sindre Sorhus <[email protected]> (sindresorhus.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Flow control verstärken, um sicherzustellen, dass ctrl-s das Terminal niemals einfrieren.