3

Я недавно установил последнюю версию Cygwin. Прямо сейчас я просто настраиваю некоторые псевдонимы и функции для использования. Cygwin правильно читает файл .bashrc , потому что некоторые псевдонимы работают, у меня просто проблема с этой функцией:

sublime () {
    cygstart "c:/Program Files (x86)/Sublime Text 2/sublime_text.exe" "`cygpath -w $1`" 
}

Я пытаюсь добиться того, чтобы Cygwin позволил мне сделать что-то вроде этого:

tom@tom-pc ~
$ sublime myfile.ext

Вместо этого:

tom@tom-pc ~
$ cygstart "c:/Program Files (x86)/Sublime Text 2/sublime_text.exe" myfile.ext

Как я могу решить эту проблему? Я пытался использовать одинарные кавычки и экранировать строку пути и ничего ... Также не знаю, какой язык программирования используется для выполнения этих функций, поэтому я не могу это исправить.

1 ответ1

2

Изменить: Ответ полностью пересмотрен после обсуждения темы

Похоже, проблема в том, что ваш .bashrc состоит из двух частей, разделенных [[ "$-" != *i* ]] && return . Первая часть выполняется для всех оболочек, вторая часть - только для интерактивных оболочек. Определение функции было помещено во вторую часть, и, таким образом, функция не определена в неинтерактивных оболочках.

Решение: Поставьте sublime () { ... } перед строкой return .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .