запуск Far из Cygwin

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

запуск Far из Cygwin

Post by Smitis »

Latest post of the previous page:

А если подменить шелл set comspec=c:\cygwin\bin\bash? Спрашиваю чисто из академического интереса. Может кто уже пробовал.
Разум когда-нибудь победит.
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

запуск Far из Cygwin

Post by cmd.exe »

Да подменял всё гуд, но шаманство без расширения неработает.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
Kerim
Posts: 9
Joined: Sun 06 Mar, 2016 13:12

запуск Far из Cygwin

Post by Kerim »

честно говоря трудно понять последние ответы
давайте я опишу все как есть.
у меня стоит сигвин. Далее я запускаю Tmux.
Далее запускаю одну программу (мне сигвин нужен только чтобы работать в этой консольной программе).
Иногда приходится переходить в разные директории, как вы знаете, неудобно копировать путь из проводника виндоус в сигвин.
Для того, чтобы мне переходить по папкам я думал использовать Far (копирую путь в фаре и вставляю в другое окно сигвин).

У меня получалось так делать в миднайт коммандере, однако, я там случайно что-то нажал, и я потерял возможность копирования пути из миднайт коммандера (до этого я мышью выделял путь и вставлял в сигвин).

таким образом, мне желательно какой нибудь проводник, чтобы я мог нормально копировать путь, ну и простые операции выполнять (удаление, копирование папок например)
Karagy
Posts: 57
Joined: Tue 02 May, 2006 08:43
Location: Питер
Been thanked: 3 times

запуск Far из Cygwin

Post by Karagy »

Попробуйте переустановить MC (миднайт коммандер).
Kerim
Posts: 9
Joined: Sun 06 Mar, 2016 13:12

запуск Far из Cygwin

Post by Kerim »

пробовал, не помогло
ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

запуск Far из Cygwin

Post by ObSerV »

С шифтом в MC мышка не работает? Попробуйте удалить файл конфигурации MC. ~/.config/mc/ini
Kerim
Posts: 9
Joined: Sun 06 Mar, 2016 13:12

запуск Far из Cygwin

Post by Kerim »

с шифтом работает оказывается, я не знал
спасибо большое!
с шифтом можно копировать и вставить
а найти файл который Вы мне сказали у меня не получается
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

запуск Far из Cygwin

Post by gene.pavlovsky »

У меня в C:\cygwin\bin все команды .exe-шные. Файлы без расширения это symlink-и на .exe-шники. Так было с тех пор, как юзаю сигвин - лет 8 уже, и так сейчас устанавливает пакеты Cygwin Setup. Всегда у меня команды сигвина спокойно запускались из Far, cmd, bash, откуда угодно, просто при наличии C:\cygwin\bin в PATH.
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

запуск Far из Cygwin

Post by gene.pavlovsky »

А в чём именно проблема вставлять путь из Фар-а в cygwin? Cygwin поддерживает как юниксовые пути (/cygdrive/c/path/to/file.txt), так и виндовские (C:/path/to/file.txt, C:\path\to\file.txt) - если использовать обратные слэши, в bash-е их надо или удваивать (вместо \ писать \\), что не очень удобно, либо брать весь путь в одинарные кавычки, например: ls 'C:\path\to\file.txt'
Есть ещё в сигвине команда cygpath, конвертирует пути между всеми форматами: cygpath 'C:\path\to\file.txt' выдаст /cygdrive/c/path/to/file.txt, а ` cygpath -w` - в обратную сторону. С опцией `-a` выдает абсолютные пути. Если есть нужда часто запускать из сигвина какую-то виндовскую прогу, или наоборот, разумно написать небольшой wrapper, которые конвертит аргументы-пути в нужный формат. К примеру, запускаю я из сигвина notepad2 через небольшой свой скрипт, даю ему имя файла хоть в виндовом, хоть в юниксовом формате. Notepad2 открывает без проблем файл, т.к. мой скрипт уже перевёл путь в виндовский формат, плюс он запускается в фоне, не блокируя bash. Вот ссылка на мой скрипт, он вполне универсальный, опции такие же, как у cygpath-а, плюс ещё парочка https://gist.github.com/gene-pavlovsky/ ... 296ff3dd15
А вот как notepad2 запускаю - добавил в ~/.bashrc строчку: alias np='cygrun -b -w notepad'
И запуск, к примеру: np /var/log/setup.log

Может что пригодится из вышесказанного.
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

запуск Far из Cygwin

Post by gene.pavlovsky »

А вообще вот тут до чего дошли http://forum.farmanager.com/viewtopic.p ... 11#p137311
Надо поставить winpty, далее фар из сигвина запускается с помощью winpty far или winpty '/cygdrive/c/Program Files/Far3/far.exe'
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

запуск Far из Cygwin

Post by gene.pavlovsky »

Smitis wrote:А если подменить шелл set comspec=c:\cygwin\bin\bash? Спрашиваю чисто из академического интереса. Может кто уже пробовал.
Спасибо за наводку на ComSpec! Озадачился этим вопросом. Завёл новую тему тут: http://forum.farmanager.com/viewtopic.p ... 18#p137318
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

запуск Far из Cygwin

Post by gene.pavlovsky »

Про comspec=bash добился немалых успехов http://forum.farmanager.com/viewtopic.p ... 82#p137582
Сам теперь только этим и пользуюсь, в целом удобно-полезно.
Если юзать cmd как шелл, то запуск скриптов (скажем .sh) без указывания расширения возможен. Во-первых, надо .sh добавить в переменную среды PathExt. Во вторых, надо связать тип файла .sh с выполнением через bash: в админском cmd выполнить

Code: Select all

assoc .sh=UNIXShell.Script
ftype UNIXShell.Script="C:\cygwin64\bin\bash.exe" "%1" %*
Last edited by gene.pavlovsky on Sat 04 Nov, 2023 22:25, edited 1 time in total.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

запуск Far из Cygwin

Post by Smitis »

gene.pavlovsky wrote:Если юзать cmd как шелл, то запуск скриптов (скажем .sh) без указывания расширения возможен. Во-первых, надо .sh добавить в переменную среды PathExt. Во вторых, надо связать тип файла .sh с выполнением через bash
Было бы интересней, связать с bash запуск скриптов без расширений, которых полно в bin. Хотя это и решается обходным путём созданием копий скриптов с расширением sh.

П.С.
А переменная PATHEXT в Винде какая-то, я бы сказал, несуразная, в связи с тем, что ассоциации с расширениями всё равно глобальные и только через реестр.
Разум когда-нибудь победит.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

запуск Far из Cygwin

Post by DrKnS »

Smitis wrote: переменная PATHEXT в Винде какая-то, я бы сказал, несуразная
PATHEXT определяет, какие расширения пытаться подставлять, если пользователь ввёл в интерпретаторе только имя, а не что считать исполняемыми файлами в принципе.
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

запуск Far из Cygwin

Post by gene.pavlovsky »

Smitis wrote:Было бы интересней, связать с bash запуск скриптов без расширений, которых полно в bin. Хотя это и решается обходным путём созданием копий скриптов с расширением sh.
А разве возможно связать с программой исполнение файла без расширения? Если б это было возможно, я думаю в Cygwin User Guide об этом непременно бы сказали. Было бы удобно сделать в винде поддержку UNIX shebang `#!/path/to/interpreter`.

В cygwin/bin скриптов не так уж и много, и лично мне надобятся только zcat, gunzip, для которых я сделал symlink-и.
Свои скрипты я храню в отдельной директории, файлы я создаю с расширением .sh (при наличии .sh в PathExt юзабельны без расширения в cmd/far), и вот такой есть небольшой скрипт, который создаёт симлинки уже без расширения в /usr/local/bin, чтоб вызывать эти скрипты без расширения в cygwin-е.

Code: Select all

#!/bin/sh
install_path=/usr/local/bin
test "$1" = '-f' -o "$1" = '--force' && force=1

cd "$(dirname "$0")/.."
dir="$(cygpath -aU .)"
dir=${dir%/}

shopt -s nullglob
for ext in sh awk sed js; do
	for i in *.$ext; do
		test -f "$i" || continue
		i=${i%.$ext}
		test -z "$force" -a -f "$install_path/$i" && continue
		ln -sfv "$dir/$i.$ext" "$install_path/$i"
	done
done
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

запуск Far из Cygwin

Post by Smitis »

DrKnS wrote:
Smitis wrote:PATHEXT определяет, какие расширения пытаться подставлять, если пользователь ввёл в интерпретаторе только имя, а не что считать исполняемыми файлами в принципе.
Я в курсе. Но зачем было делать это переменной среды? Переменная среды подразумевает, что её можно поменять для текущего процесса. Например, добавить .sh. Но добавление таким образом ничего не изменит, надо добавлять ассоциацию в реестр, а это уже глобальная настройка, действующая для всех процессов.
gene.pavlovsky wrote:А разве возможно связать с программой исполнение файла без расширения? Если б это было возможно, я думаю в Cygwin User Guide об этом непременно бы сказали. Было бы удобно сделать в винде поддержку UNIX shebang `#!/path/to/interpreter`.
К сожалению, нет. Это былы мечты...
Разум когда-нибудь победит.
Post Reply

Return to “Нужна помощь”