Використовуйте Notepad ++ від Cygwin, не вимагаючи, щоб оболонка чекала коду виходу


19

Я запускаю Cygwin і хотів би використовувати Notepad ++ в якості головного редактора оболонок, на зразок того, що я маю на своєму Mac, де я можу ввести, mate whateverщоб відкрити екземпляр TextMate. У моєму ~/.bashrcфайлі в Cygwin у мене встановлений наступний псевдонім та змінна середовище:

export EDITOR="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
alias np="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"

В основному це працює: коли я набираю np whateverабо коли програма Cygwin закликає $ EDITOR, відкриється Notepad ++.

Однак оболонка чекає, поки «Блокнот ++» буде закрита, і не дозволить до цього вводити будь-які дані. Це може бути специфічно для bash, але як я можу відкрити Notepad ++ від Cygwin і сказати оболонці не чекати продовження коду виходу? Додавання &до кінця команди alias працює не правильно - вона просто відкриває файл без назви та попереджає filename: command not foundзамість відкриття файлу.

Спасибі!

Відповіді:


16

Ви можете спробувати bashфункцію передавати аргументи перед ampersand:

np ()
{
    /cygdrive/c/Program\ Files/Notepad++/notepad++.exe $* &
}

Але більшим питанням може бути вся ідея не чекати, поки Notepad ++ вийде. Команди оболонки, які використовують, $EDITORяк правило, розраховані на очікування, поки редактор відправить повідомлення про завершення редагування. Зазвичай це означає, що редактор вийшов (наприклад, з viабо nano).

Emacs є спосіб , щоб встановити ваш , EDITORщоб emacsclientпотім , коли ви закінчите редагування, ви потрапили в чарівне натискання клавіші ( C-x #) , щоб вказати , що редагування завершено. Якщо в Notepad ++ було щось подібне для користувачів cygwin, я можу побачити, як це буде працювати.

Інша альтернатива - використовувати звичайний, нудний, простий Блокнот як свій редактор і резервувати Блокнот ++ для важкого використання (я отримав ідею з цієї публікації в блозі )


Чудово - це спрацювало. Я збираюся піти з ванільним блокнотом як EDITOR та Notepad ++ як np ()
Ендрю

Блокнот також вимагає очікування завершення редагування
codezombie

8

Я вирішив це простим симпосиланням.

ln -s /cygdrive/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe ~/bin/npp

Звичайно ~ / bin є в моїй $ PATH.

Тепер, щоб відкрити файл, я просто наберіть "npp filename.txt" з запиту cygwin. Мені не довелося використовувати & в кінці команди.

Це також перекине вкладку у поточне запущене вікно Notepad ++, а не відкриє ще одне - І якщо файл уже відкритий, він не відкриє його знову.


Як додати ~ / bin до $ PATH?
eric f

3

export EDITOR = "/ cygdrive / c / Програма \ Файли \" (x86) '/ Блокнот ++ / блокнот ++. exe "

псевдонім np = "/ cygdrive / c / Програма \ Файли \" (x86) '/ Блокнот ++ / блокнот ++. exe "

також працює для x86


2

Просто додайте пробіл та амперсанд (&) до кінця вашої команди, і оболонка негайно повернеться до режиму введення, залишаючи блокнот ++ відкритим.

on edit:

Я не говорю про додавання його до свого псевдоніма. Додайте його до кінця вашої команди так:

np whatever &


1
О-о. Це добре виглядає поки що. Чи є спосіб поставити це .bash_profileтак, що мені не потрібно вводити його весь час?
Андрій

Я не фахівець з башти, але я припускаю, що ви можете змусити свій псевдонім взяти змінну, яка є аргументом, а також включити ampersand в кінці. Хтось розумніший з bash, можливо, міг би дати точний синтаксис. Я лише знав, як відповісти на ваше запитання, тому що я робив саме те саме, працюючи в середовищі Windows Dev :)
Роберт S Ciaccio

Ви не можете змусити псевдонім брати змінну в Bash. Ви повинні використовувати функцію або сценарій.
Призупинено до подальшого повідомлення.

1

Псевдоніми не беруть інтерпольованих аргументів. Замість цього використовуйте функцію.

function np() { /cygdrive/c/Program\ Files/Notepad++/notepad++.exe $1 & }

1
#!/bin/sh
/cygdrive/c/Program\ Files/Notepad++/notepad++.exe $@ &

Цей сценарій запускає Notepad ++ у фоновому режимі, передаючи аргументи командного рядка перед пунктом "&"

Як радив Дуг , наявність за замовчуванням, $EDITORщо не блокує, може спричинити проблеми.


0

У cygwin є певна команда для цього. Переконайтеся, що ви завантажили run.exe і переконайтеся, що він у вашому PATH (або ваш PATH містить виконуваний файл)

alias np="run.exe /cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.