Otwieranie plików w istniejącym Gvim w wielu (nowych) kartach
Umieściłem kilka aliasów w moim .bashrc, aby otworzyć grupę plików projektu w gvim, każdy w swojej karcie:
gvim -p <list of file names using absolute paths>
To wszystko jest dobre i dobre, z wyjątkiem kilku grup plików, pomiędzy którymi mógłbym chcieć się przemieszczać w danym momencie(mój obecny projekt używa Ruby on Rails, więc to wyjaśnia). Co byłoby naprawdę niesamowite, gdybym mógł dołączyć nowe karty do istniejącej instancji gvim. Na ostatnim stanowisku pracowałem nad Vistą; obejrzałem to otwierając kilka pustych zakładek w gvim, co pozwoliło mi kliknąć prawym przyciskiem myszy nazwę pliku i wybrać " Otwórz w istniejącym gvimie bez nazwy."Teraz używam Ubuntu i nie ma czegoś takiego w menu kontekstowym. Czy jest jakiś sposób, aby to zrobić z linii poleceń?
6 answers
Jeśli Vim jest kompilowany z opcją clientserver , możesz to zrobić. Uruchom instancję Vima z następującą flagą:
$ gvim --servername GVIM # GVIM is the server name. It can be anything.
Aby otworzyć więcej kart w tym przypadku, możesz uruchomić polecenie:
$ gvim --servername GVIM --remote-tab file1 file2 file3 ...
Funkcja clientserver w vim jest bardzo przydatna. Nie ogranicza się do otwierania plików; może być używany do wysyłania dowolnych poleceń do Vima za pomocą wiersza poleceń. Na przykład, aby zdalnie zamknąć instancję Vima, możesz użyć:
$ gvim --servername GVIM --remote-send '<Esc>:wqa<CR>'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-21 20:12:52
Z wnętrza Gvim, typ :tabe {file_name}
. Spowoduje to otwarcie nazwanego pliku na nowej karcie. Jeśli nie lubisz wpisywać długich nazw plików, spróbuj tego:
:tabnew
:e .
Otworzy to nową, pustą stronę karty i otworzy przeglądarkę plików. Możesz kliknąć myszką lub użyć klawiatury. Kliknij lub naciśnij klawisz enter na pliku, który chcesz otworzyć. Spróbuj użyć klawiatury, aby ustawić kursor nad plikiem, który chcesz otworzyć, a następnie naciśnij "t". Spowoduje to otwarcie wybranego pliku na nowej karcie, zachowując plik przeglądarka otwiera się w pierwszej zakładce. Może to być szybki sposób na otwarcie kilku plików.
Istnieje wiele rzeczy, które możesz zrobić ze stronami kart, które mogą ułatwić życie. Aby przejść do odpowiedniej sekcji w podręczniku pomocy on line Vima, wpisz :h tabpage
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-17 07:22:01
Chcesz, aby menu kontekstowe systemu Windows umożliwiało otwieranie plików na nowej karcie aktualnie otwartego okna gvim?
Zapisz to jako plik o nazwie temp.reg i kliknij dwukrotnie, aby dodać ustawienia do rejestru. Pamiętaj, aby zmodyfikować ścieżkę do Vima, jeśli twoja jest inna.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim]
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim\command]
@="\"C:\\Program Files (x86)\\Vim\\vim73\\gvim.exe\" -p --remote-tab-silent \"%1\" \"%*\""
Będziesz miał teraz menu kontekstowe takie jak:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-25 10:36:17
Użytkownicy Linuksa mogą używać tego typu skryptów:
#!/bin/bash
ANS=`pgrep -fx "gvim --servername GVIM"`
echo $@
if [[ ! $ANS ]]; then
gvim --servername GVIM
fi
if [[ $1 ]]; then
gvim --servername GVIM --remote-tab "${@}"
fi
A następnie Edytuj gvim.plik pulpitu do użycia tego skryptu:
Exec=/home/user/bin/my_gvim_script.sh %F
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-11 09:27:04
Jest sposób:
n*.cpp|tab ba
Lub jeśli chcesz podzielić:
n*.cpp|sba
Jeśli chcesz wiedzieć więcej:
:help ba
I nie wiem, co to jest n
, ale bez tego by się nie udało.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-12 09:06:30
Oto mój skrypt startowy gvim. Jest to rozszerzenie wcześniejszych odpowiedzi. Zapewnia, że tylko jedna instancja gvim
będzie działać, gdy gvim
zostanie wywołana we wszystkich okolicznościach:
-
gvim
jest wywoływana bez nazwy pliku, gdy żadna instancjagvim
nie jest uruchomiona;gvim
jest uruchamiana. -
gvim
jest wywoływana bez nazwy pliku w obecności instancjigvim
; otwierana jest pusta Nowa karta. -
gvim
jest wywoływany z nazwą pliku z instancjągvim
lub bez niej; otwierana jest zakładka pokazująca plik.
Będzie to naśladować standardowe zachowanie innych edytorów.
#!/bin/bash
exec=/usr/bin/gvim #the path to gvim
if [ $# -eq 0 ]
then # no filename given
if [ -z $($exec --serverlist) ]
then # no filename given and no gvim instance
$exec -f --servername GVIM > /dev/null 2>&1
else # no filename given, but a gvim instance exists
$exec -f --servername GVIM --remote-send ':tabnew<CR>' > /dev/null 2>&1
fi
else # filenames given
$exec -f --servername GVIM --remote-tab "$@" > /dev/null 2>&1
fi
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-16 12:12:41