Как мога да направя псевдоним "gvim filename" на "gvim filename &"

Искам gvim винаги да се отваря в отделен прозорец и незабавно да връща командния ред. С други думи искам

gvim filename

да бъде същото като

gvim filename &

изглежда, че трябва да мога да направя това с псевдоним. Има ли специален заместващ знак за псевдоними? Нещо като:

alias gvim="gvim <wildcard> &"

Където "заместващият знак" ще бъде заменен от какъвто и да е текст след gvim в командния ред.

Опитах също:

function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" "&" ;
}

Но отваря само gvim и не връща подканата, както искам.

Ако някой може да ме насочи в правилната посока, това значително ще подобри разбирането ми за това как работи .bashrc.

Благодаря!

-Дерек

АКТУАЛИЗАЦИЯ: Накарах го да работи, като се отървах от кавичките около & и точката и запетая в края:

function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" &
}

person derekswanson08    schedule 07.11.2012    source източник


Отговори (4)


Последното е почти правилно. Това, което не е наред е, че обикновеният & казва на shell да стартира процеса във фонов режим и "&" добавя аргумент към командния ред на gvim (т.е. инструктира gvim да отвори файл с име &). Като използвате кавички тук, вие просто инструктирате shell да не третира специално & и gvim няма причина да върши работата на shell.

person ZyX    schedule 07.11.2012
comment
Благодаря, накарах го да работи, като премахнах кавичките около & и като се отървах от ;. Сега работи перфектно. - person derekswanson08; 08.11.2012
comment
Можете ли да ме просветлите защо използването на крайна точка и запетая е синтактична грешка, когато не използвам кавички около амперсанда, но е добре, когато използвам кавички? - person derekswanson08; 08.11.2012
comment
@derekswanson08 Няма какво да прекратите тук. Командата вече е прекратена от &. - person ZyX; 08.11.2012
comment
@derekswanson08 можете да маркирате това като приет отговор, така че да не се показва като отворен въпрос. - person none; 08.11.2012

вместо да използвате псевдоним, използвайте функция на обвивката. Като цяло работи по същия начин и разполагате с повече опции:

function gvim() {
 gvim.bat `cygpath -w $*` &
}

Актуализация Освен това има някои кукички в .bashrc по подразбиране (в моята кутия така или иначе) за автоматично зареждане на функции от файл ".bash_functions", просто трябва да го разкоментирате (около ред 117 за мен) :

# Functions
#
# Some people use a different file for functions
if [ -f "${HOME}/.bash_functions" ]; then
  source "${HOME}/.bash_functions"
fi

след това добавете дефиницията на функцията към .bash_functions, за да се зареди автоматично, когато стартирате bash shell.

Актуализация 2 добави извикване към cygpath за обработка на пълни пътища в unix форма

person Gus    schedule 07.11.2012
comment
отговорът ми зависи от това дали сте отговорили с „да“ на въпроса за инсталиране на gvim, който ви пита дали искате той да създаде пакетните файлове за достъп до командния ред... - person Gus; 07.11.2012

Това, което правя, е да имам малък bash скрипт, който наричам gvim с и псевдоним.

==> alias vi
alias vi='~/include/bin/dvim'

==> cat ~/include/bin/dvim
#!/bin/bash.exe

/cygdrive/c/Program\ Files/Vim/vim73/gvim.exe $1 &
person Daniel Haley    schedule 07.11.2012

Първото нещо, което трябва да разберете за .bashrc вероятно е, че той се чете само при стартиране на обвивката - в случая на cygwin, когато отворите командния прозорец. От публикацията ви не става ясно дали рестартирате командния прозорец или какво.

Можете да експериментирате с псевдонимите/функциите, без да ги поставяте в .bashrc, само за да разберете какво работи. Просто въведете псевдонимите или дефинициите на функции директно в командния ред и след това опитайте да ги изпълните.

Мисля, че проблемът с предоставената от вас функция е, че поставяте & в двойни кавички. Махнете кавичките и трябва да работи.

person BobS    schedule 07.11.2012
comment
Можете също така ръчно да извличате файлове от командния ред. . .bashrc ще го направи за .bashrc (. е псевдоним за source). - person dash-tom-bang; 08.11.2012