Öffnen Sie die Anwendung, um Textdateien über die Befehlszeile zu bearbeiten


9

Bei der Installation des TextWrangler unter OSX erhalten Sie außerdem einen editBefehl, mit dem Sie eine beliebige Textdatei über die Befehlszeile öffnen können.

Ist es möglich, eine ähnliche Funktionalität in Ubuntu zu haben, um einen Befehl auf dem Terminal einzugeben, um eine Datei in einem bestimmten Texteditor zu öffnen (sagen wir Kate)?

Antworten:


11

Um eine Datei mit zu öffnen kate, können Sie Folgendes ausführen:

kate filename

Dies könnte einige Meldungen anzeigen wie:

kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/usr/share/mime/magic"
kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/home/user/.local/share/mime/magic"
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon

Um diese Nachrichten zu entfernen, leiten Sie den Fehlerausgabestream um an /dev/null:

kate filename 2>/dev/null

Wenn Sie dasselbe Terminal weiterhin verwenden möchten, fügen Sie &nach dem Befehl ein hinzu:

kate filename 2>/dev/null &

Wenn Sie es ausführen möchten, um es edit filenamezu öffnen, können Sie eine Bash-Funktion in Ihrer ~/.bashrcDatei erstellen. Fügen Sie Ihrer ~/.bashrcDatei den nächsten Code hinzu :

edit() { kate "$@" 2>/dev/null & }

Dies kommt dem, was ich gesucht habe, näher. Vielen Dank, dass Sie die Befehle tatsächlich ausgeführt haben und die Probleme sehen, die bei den offensichtlichsten Lösungen auftreten würden. Ich denke, ich werde einen neuen Befehl erstellen, den ich einfach aufrufen kann edit filename, um das Ganze auszuführen kate filename 2>/dev/null &.
Juan A. Navarro

1
@ Juan: Ich habe ein Beispiel dafür hinzugefügt. Dies $@ist erforderlich, wenn Sie zusätzliche Optionen wie die Zeilennummer übergeben müssen. Alternativ können Sie diese Funktion zur Unterstützung optimieren edit filename linenumber.
Lekensteyn

Sie haben einen Fehler in Ihrer Antwort, und ich kann ihn anscheinend nicht bearbeiten. Sie haben die Anführungszeichen vergessen $@(sollten es sein "$@"), was bedeutet, dass Ihr Skript mit Dateinamen fehlschlägt, die Leerzeichen enthalten.
Scott Severance

18

Sie können (meines Wissens nach) jeden der folgenden Editoren öffnen:

NAME_OF_EDITOR FILENAME

gedit filename(Ubuntu)
kate filename(Kubuntu)
bluefish filename
kwrite filename
libreoffice filename

Sie können eine Webseite sogar auf die gleiche Weise
firefox filename.html
chrome filename.html
banshee filename.oggoder mit .mp3 öffnen

Sie können die Tendenz hier sehen ..


Eigentlich sollte es gedit filename &sonst sein, dass das Terminal unbrauchbar bleibt. Das gleiche passiert mit, kateaber selbst mit dem &macht es das Terminal unbrauchbar, weil es beginnt, Debug-Informationen (oder was auch immer) an das Terminal zu spucken. Gibt es eine Möglichkeit, das &am Ende überhaupt zu vermeiden ? Wie mache ich mit editvon TextWrangler?
Juan A. Navarro

Trotzdem ist die Antwort von Lekensteyn (zumindest näher) an dem, wonach ich gesucht habe.
Juan A. Navarro

1
Richtig, Sie können das & hinzufügen oder sogar 2> / dev / null hinzufügen , um keine Fehler und Inhalte in der Konsole auszugeben, wenn Sie es weiterhin verwenden möchten.
Luis Alvarado

3

Wenn Sie den Befehl editin Ubuntu auch deshalb verwenden möchten, weil Sie es gewohnt sind, können Sie auch einen Alias ​​für Ihren Lieblingseditor wie für Kate definieren:

alias edit='kate'

Um diesen Alias ​​dauerhaft zu machen, fügen Sie einfach diese Zeile hinzu ~/.bash_aliases.


2

Wenn Sie keine Grafikumgebung haben und auf einer Konsole ausgeführt werden, können Sie immer Folgendes verwenden:

vim foo.txt
nano bar.txt
pico foo.html
emacs bar.xml
...

und so weiter fällt auf die erste Antwort zurück ..


1
"emacs -nw" oder "xemacs -nw", wenn Sie VT100 (x) -Emacs auch in einer Umgebung mit Fenstern verwenden möchten.
Barrycarter

1

Sie können den CLI-Befehl für den gewünschten Editor verwenden, um Dateien zu öffnen und zu bearbeiten. Zum Beispiel geditin gnome oder katein KDE.

Tippe einfach:

kate filename

Datei in Kate zu öffnen.


1

Ich benutze manchmal ein klassisches Terminal, in dem mcedit mein bevorzugter Editor ist, und übergebe oft eine Zeilennummer, um ein Programm / Skript zu korrigieren.

Um sie einheitlich zu nennen, habe edit source.sh 123ich dieses Skript geschrieben, das ich als 'Bearbeiten' in den Pfad eingefügt habe:

#!/bin/bash
#   - edit a file using mcedit or gedit, depending on X11 or console invoking.
#   - jump to specified line, if any.

Xedit=/usr/bin/gedit

if [[ $TERM = "linux" ]]; then
    if [ $# -eq 1 ]; then
        mcedit $1
        else if [ $# -eq 2 ]; then
#           echo "edit invoked\t/usr/bin/mcedit +$2 $1" >> /tmp/edit.log
            /usr/bin/mcedit +$2 $1
            else if [ $# -eq 0 ]; then
                /usr/bin/mcedit
            fi
        fi
    fi
    else if [[ $TERM = "xterm" ]]; then
        # scheint nicht zu helfen
        # LANGUAGE=C
        export LC_ALL=C
        if [ $# -eq 1 ]; then
            $Xedit $1
            else if [ $# -eq 2 ]; then
#               echo "edit invoked\t/usr/bin/scite -open:$1 -goto:$2" >> /tmp/edit.log
                # $Xedit -open:$1 -goto:$2
                $Xedit +$2 $1 
                else if [ $# -eq 0 ]; then
                    $Xedit
                fi
            fi
        fi
    fi
fi

Verwenden Sie die alten Debug-Anweisungen aus der Zeit, als ich scite und nicht gedit als grafischen Editor verwendet habe.

Etwas, das auf diese Weise nicht funktioniert, ist das Öffnen mehrerer Dateien wie folgt:

 edit *.html

Wenn es mehr als eine HTML-Datei gibt, wird das Muster auf mehrere Dateien erweitert.

Gültige Aufrufe sind:

 edit 
 edit foofile 
 edit foofile 123

von X oder Terminal.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.