web-dev-qa-db-fra.com

Ouvrez l'application pour modifier les fichiers texte à partir de la ligne de commande.

Lors de l'installation de TextWrangler sous OSX, vous obtenez également une commande edit qui vous permet d'ouvrir n'importe quel fichier texte à partir de la ligne de commande.

Est-il possible d'avoir une fonctionnalité similaire dans Ubuntu pour taper une commande sur le terminal pour ouvrir un fichier dans un éditeur de texte spécifique (par exemple, Kate)?

9
Juan A. Navarro

Pour ouvrir un fichier en utilisant kate, vous pouvez exécuter quelque chose comme:

kate filename

Cela pourrait afficher des messages tels que:

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

Pour supprimer ces messages, redirigez le flux de sortie d'erreur vers /dev/null:

kate filename 2>/dev/null

Si vous souhaitez continuer à utiliser le même terminal, ajoutez un & après la commande:

kate filename 2>/dev/null &

Si vous souhaitez exécuter edit filename pour l'ouvrir, vous pouvez créer une fonction bash dans votre fichier ~/.bashrc. Ajoutez le code suivant à votre fichier ~/.bashrc:

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

Vous pouvez ouvrir n'importe quel éditeur comme ceci:

NAME_OF_EDITOR FILENAME

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

Vous pouvez même ouvrir une page Web de la même manière
firefox filename.html
chrome filename.html
banshee filename.ogg ou .mp3

Vous pouvez voir la tendance ici ..

17
Luis Alvarado

Si vous préférez utiliser la commande edit dans Ubuntu également parce que vous en avez l'habitude, vous pouvez également définir un alias pour votre éditeur favori, comme pour Kate:

alias edit='kate'

Pour rendre cet alias permanent, ajoutez simplement cette ligne à ~/.bash_aliases.

3
Takkat

Si vous ne disposez d'aucun environnement graphique et que vous utilisez la console, vous pouvez toujours utiliser:

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

et ainsi de suite revient à la première réponse ..

2
topless

Vous pouvez utiliser la commande CLI de l'éditeur souhaité pour ouvrir et modifier des fichiers.Par exemple, geditdans gnome ou katedans KDE.

Il suffit de taper:

kate filename

ouvrir le fichier dans kate.

1
Pedram

J'utilise parfois un terminal classique où mcedit est mon éditeur préféré et aime souvent passer un numéro de ligne pour corriger un programme/script.

Pour les appeler uniformément edit source.sh 123 j'ai écrit ce script, que j'ai placé comme 'edit' dans le chemin:

#!/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

Consultez les anciennes instructions de débogage de quand j’utilisais scite, pas gedit, comme éditeur graphique.

Quelque chose, qui ne fonctionne pas de cette façon, est l’ouverture de plusieurs fichiers comme ceci:

 edit *.html

s'il y a plus d'un fichier HTML, le motif est étendu à plusieurs fichiers.

Les invocations valides sont:

 edit 
 edit foofile 
 edit foofile 123

de X ou terminal.

1
user unknown