Перенесите gvim вперед, когда я открою новую вкладку из командной строки

Мне нравится моя команда vi, чтобы открыть файл в Gvim и открыть его в новой вкладке, если Gvim уже запущен.

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

Это работает, но когда я указываю имя файла и оно открывается в существующем экземпляре Gvim, оно не выводит окно на передний план, как на Mac или Windows.

Как сделать так, чтобы при вводе команды «vi file.txt» в терминале Gvim становился активным окном?

1
задан 21 June 2014 в 17:07

2 ответа

Ну, немного грязный, это может быть сделано с помощью xdotool.

Добавляют это к Вашему сценарию:

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

Это ищет окно, названное" [Что-то] - GVIM" и повышение его. Возможно, можно выбрать окно с более определенным заголовком с помощью имени файла и regex, например.

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

, Но, xdotool, должен быть загружен сначала от apt-get. Тип sudo apt-get install xdotool на терминале.

1
ответ дан 21 June 2014 в 17:07

Я использую xdotool также. Такой простой сценарий помогает:

#!/bin/bash
gvim -p --remote-tab $@ ; xdotool search --name "/* - GVIM" windowactivate
1
ответ дан 7 December 2019 в 14:09

Другие вопросы по тегам:

Похожие вопросы: