1 votes

Faire avancer gvim lorsque j'ouvre un nouvel onglet à partir de la ligne de commande

J'aime que ma commande vi ouvre le fichier dans Gvim et l'ouvre dans un nouvel onglet si Gvim est déjà lancé.

function vi {
    if [[ -z $@ ]]; then
        gvim 
    elif [[ ${1:0:1} = - ]]; then
        gvim "$@"
    else
        gvim --remote-tab-silent "$@"
    fi
}

Cela fonctionne, mais lorsque je spécifie un nom de fichier et que cela s'ouvre dans une instance existante de Gvim, la fenêtre ne s'affiche pas au premier plan comme sous Mac ou Windows.

Comment faire en sorte que lorsque j'entre une commande "vi fichier.txt" dans le terminal, Gvim devienne la fenêtre active ?

1voto

Abdillah Points 646

Bien qu'un peu sale, cela peut être fait en utilisant xdotool .

Ajoutez ceci à votre script :

    xdotool windowfocus `xdotool search --name "/* - GVIM"` && xdotool windowraise `xdotool search --name "/* - GVIM"`

Il recherche une fenêtre nommée "[Quelque chose] - GVIM" et la soulève. Peut-être, vous pouvez sélectionner la fenêtre avec un titre plus spécifique en utilisant le nom du fichier et une regex par exemple.

    xdotool windowfocus `xdotool search --name "^$filename\s\+\s\(~\)\s-\sGVIM"` && xdotool windowraise `xdotool search --name "^$filename\s\+\s\(~\)\s-\sGVIM"`

Mais, xdotool doit d'abord être téléchargé à partir de apt-get . Type sudo apt-get install xdotool sur le terminal.

1voto

Serg Stetsuk Points 13

J'utilise aussi xdotool. Un simple script aide :

#!/bin/bash
gvim -p --remote-tab $@ ; xdotool search --name "/* - GVIM" windowactivate

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X