Есть ли способ скомпилировать Notepad ++ из источника?

Ответ d_inevitable почти решил мою проблему, но не полностью. Проблема заключалась в том, что хотя:

DHCP-сервер отправил имя хоста (добавив
option host name 'client1' 
в dhcpd.conf), и я действительно проверил его, захватив и проанализировав содержимое предложения DHCP с помощью wirehark Клиент DHCP ожидал имя хоста с сервера DHCP (добавив
request host-name 
в dhclient.conf)

Клиент не получал новое имя хоста (его легко проверить, набрав

hostname

в терминале и получить старое имя хоста или без имени хоста, если я удалил содержимое / файл). В результате предлагаемое решение d_inevitable только копировало пустую строку.

Чтобы решить эту проблему, я применил решение crud, которое, как правило, не должно выполняться, если вы не отчаянно пытаетесь заставить его работать, как я был.

Сначала открываем с возможностью редактирования сценарий управления клиентом DHCP:

sudo vi /sbin/dhclient-script

Там вам нужно будет найти функцию

set_hostname()

Просто используйте поиск, и он должен появиться. Теперь, по крайней мере на моем компьютере, эта функция имеет три условия if-then-else, инкапсулированные друг другу:

# установить имя хоста set_hostname () {local current_hostname
if [ -n "$new_host_name" ]; then
    current_hostname=$(hostname)

    # current host name is empty, '(none)' or 'localhost' or differs from new one from DHCP
    if [ -z "$current_hostname" ] ||
       [ "$current_hostname" = '(none)' ] ||
       [ "$current_hostname" = 'localhost' ] ||
       [ "$current_hostname" = "$old_host_name" ]; then
       if [ "$new_host_name" != "$old_host_name" ]; then
           hostname "$new_host_name"
       fi
    fi
fi }
[d17 ] Теперь вам нужно принудительно назначить новое имя хоста вашему хосту, несмотря ни на что. Поэтому вы хотите прокомментировать два инкапсулированные if-then-else. Результат должен выглядеть примерно так:

# установить имя хоста set_hostname () {local current_hostname

if [ -n "$new_host_name" ]; then
    current_hostname=$(hostname)

    # current host name is empty, '(none)' or 'localhost' or differs from new one from DHCP
    #if [ -z "$current_hostname" ] ||
    #   [ "$current_hostname" = '(none)' ] ||
    #   [ "$current_hostname" = 'localhost' ] ||
    #   [ "$current_hostname" = "$old_host_name" ]; then
    #   if [ "$new_host_name" != "$old_host_name" ]; then
           hostname "$new_host_name"
    #   fi
    #fi
fi }

# установить имя хоста set_hostname () {local current_hostname

1
задан 2 September 2017 в 00:01

4 ответа

Одной из основных особенностей Notepad ++ является то, что он «использует чистый API Win32». Это делает его очень специфичным для Windows - он использует встроенные функции Windows для большого количества пользовательского интерфейса и общего функционирования. Чтобы запустить его на любой другой платформе (без подделок Windows API, таких как Wine), потребуется довольно серьезная переработка.

8
ответ дан 25 May 2018 в 13:08
  • 1
    +1, Это единственный ответ, который затрагивает точку вопроса. – Rafał Cieślak 19 February 2013 в 01:50

Это альтернатива, а не способ скомпилировать, но я бы, вероятно, посмотрел, можно ли запустить ее с помощью WINE.

WINE

3
ответ дан 25 May 2018 в 13:08
  • 1
    О да, я забыл сказать, что я слышал об этом ... Является ли WINE стабильным для запуска серьезных приложений? – Seth♦ 29 March 2012 в 07:52
  • 2
    Что вы подразумеваете под серьезными заявлениями? Если под этим вы подразумеваете блокнот ++, тогда да. – Luis Alvarado♦ 29 March 2012 в 07:56
  • 3
    Да, WINE стабилен - я не делаю ничего такого, как игры, но у меня никогда не было проблем даже с бета-версиями. – zpletan 29 March 2012 в 07:56
  • 4
    ОК. Тогда я, вероятно, попробую в WINE. – Seth♦ 29 March 2012 в 08:00

Ну, я тоже фанат блокнота ++. Перешел на Linux, искал альтернативы - просмотрел Google, блоги, форумы и, наконец, придумал потрясающий редактор - http://www.sublimetext.com/

И, наконец, я перестал думать о Notepad ++: )

Хотя он просит вас купить, вы можете использовать версию трейла навсегда.

2
ответ дан 25 May 2018 в 13:08

Notepadqq похож на Notepad ++ и запускается изначально на Ubuntu.

Я рекомендую Notepadqq для пользователей Ubuntu, которые любят Notepad ++.

Notepadqq обеспечивается этот официальный PPA, и вы можете установить его, запустив:

sudo add-apt-repository ppa:notepadqq-team/notepadqq
sudo apt update
sudo apt install notepadqq

Затем вы можете запустить его из программирования → Notepadqq в своем меню или использовать команду notepadqq. (Это также должно появиться в меню «Открыть» при щелчке правой кнопкой мыши по файлу в вашем браузере файлов, хотя это может зависеть от вашей настройки.)

Notepadqq является официальным PPA [!d7 ] основанный на GPLv3 текстовый редактор FOSS. Помимо запуска Notepad ++ с Wine (что довольно просто) или выполнения работы по переносу его в GNU / Linux с помощью Winelib (это сложно), Notepadqq, вероятно, является самым похожим редактором Notepad ++, который можно запустить на Ubuntu. Он очень похож на порт Notepad ++, хотя на самом деле он не содержит Programming → Notepadqq Notepad ++ code. Как часто задают вопросы:

Связан ли этот проект с Notepad ++? Нет. Этот проект не зависит от Notepad ++ и не использует какой-либо его код. Notepadqq вдохновлен Notepad ++: это означает, что мы пытаемся воспроизвести его лучшие черты, не боясь делать разные варианты того, что, по нашему мнению, может быть улучшено.

В моей Lubuntu 16.04 LTS системе установлены оба Notepadqq и Notepad ++. (Notepad ++ работает с Wine.) У меня не было проблем с установкой обоих, и они оба работают достаточно хорошо, хотя Notepad ++ иногда медленный, когда я использую его для редактирования очень больших файлов исходного кода. У меня не было этой проблемы с Notepadqq, а также с Notepad ++ в Windows. Обратите внимание, что я не тестировал их и не использовал в обеих системах в одной и той же системе, поэтому, пожалуйста, скептически относитесь к производительности.

Два редактора выглядят несколько иначе, но вы можете видеть, что они во многом схожи. Я считаю, что реальный опыт взаимодействия с ними почти одинаковый.

GPLv3 Notepadqq (слева) и Notepad ++ (справа) на Lubuntu 16.04 LTS, просмотр sqlite3.c. [ ! d27]

Вы можете дополнительно настроить внешний вид с помощью тем (они оба предназначены для темы) и путем настройки настроек рабочего стола. Они могут выглядеть не так, как в вашей системе Ubuntu. Я использую среду рабочего стола LXDE. Если вы используете другую среду рабочего стола, такую ​​как GNOME, границы окна и заголовки будут отличаться по-разному.

В качестве примера того, как Notepadqq отличается от Notepad ++, но не так много, и о том, как это прост в использовании, если вы уже знаете, что у вас далеко от Notepad ++, вот как они выглядят при поиске открытого файла с использованием регулярного выражения:

Notepadqq (слева) и Notepad ++ (справа) на Lubuntu 16.04 LTS, просмотр sqlite3.c.

Обратите внимание, что они поддерживают те же три типа шаблонов поиска (по-разному).

Если вы хотите посмотреть исходный код Notepadqq или скомпилировать последнюю версию разработки, см. . Инструкции о том, как создать его из исходного кода или установить официальные предварительно созданные двоичные файлы для других ОС, см. В FOSS . Вы также можете быть заинтересованы в рекомендациях по предоставлению.

2
ответ дан 25 May 2018 в 13:08

Другие вопросы по тегам:

Похожие вопросы: