Здравствуйте, drx, Вы писали:
drx>>P.S.: vi не нужен
drx>Кстати, а вот вариант с регулярными выражениями: drx>1. Выделить область текста для поиска и замены drx>2. Ctrl+H drx>3. Find what: {x|y}{:d} drx> Replace with: v\2.\1 drx> Look in: Selection drx> Use: Regular expressions drx>4. Replace All
drx>
Обрати внимание, у меня в vim'e тоже самое, но несколько быстрее, т.к. не требует прыжков по куче полей ввода.
И предыдущий вариант с прямоугольным выделением один-в-один реализуется. Поздравляю, наконец-то MSVS донала по функциональности престарелый консольный редактор. При этом помимо предоставляемых возможностей нужны ещё и культура и традиции использования. Вот я подобные манипуляции делаю чуть ли не каждый день, они для меня естественны. А ты в случае подобной задачи сразу полезешь в меню текстовой замены?
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, McSeem2, Вы писали:
MS>Здравствуйте, мыщъх, Вы писали:
MS>>>Я пользуюсь Visual Assist. М>>...как мучаются люди не пользующиеся far'ом
MS>Я очень даже пользуюсь фаром. Но как в нем одним нажатием переключиться с .h на .cpp и обратно? При том, что этих файлов — сотни.
я написал макрос. макрос ужасно топорный, но зато работает даже с первыми версиями фара. короче алгос такой (просьба не кидать помидорами):
1) берем текущее имя файла;
2) прыгаем в конец.
3) прыгаем на точку
4) стираем от точки до конца
5) дописываем новое расширение
6) открываем файл с этим расширением
пока есть неисправленный косяк. если .h файла нет, то создается новый пустой. с другой стороны это как бы и не косяк. удобно
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
MS>>Я очень даже пользуюсь фаром. Но как в нем одним нажатием переключиться с .h на .cpp и обратно? При том, что этих файлов — сотни. М>я написал макрос. макрос ужасно топорный, но зато работает даже с первыми версиями фара. короче алгос такой (просьба не кидать помидорами): М>1) берем текущее имя файла; М>2) прыгаем в конец. М>3) прыгаем на точку М>4) стираем от точки до конца М>5) дописываем новое расширение М>6) открываем файл с этим расширением
М>пока есть неисправленный косяк. если .h файла нет, то создается новый пустой. с другой стороны это как бы и не косяк. удобно
Ты не поверишь, в vim'е команда ':e %:p:r.h' делает то же самое — из коробки и без всяких макросов (макросы, если что, тоже есть, правда не такие удобные, как в emacs'е). Far в качестве редактора — не нужен. Он нужен только в качестве вьювера обновляющихся логов — да и то просто потому, что под виндой нет нормальных gnuutils.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, мыщъх, Вы писали:
SD>>>а чем можно сделать нормальный автокомплит для far? М>>плагином, вероятно. "вероятно" потому что автокомплитом не пользуюсь, предпочитая всем сущностям давать короткие имена, которые ни в каком комплите не нуждаются
Ytz>
не, ну я минималист конечно, но не настолько же вот кусок структуры из моего кода:
struct get_pc_x86{
int type; // raw type
size_t nops_pos; // pos of nops or other dummy commands
size_t nop_code; // opcode of the cmd
size_t fstenv_p; // pos of fstenv [esp][-0C] (D9 74 24 F4)
size_t fstenv_t; // type of fstenv (classic/obfuscated);
size_t jmpc_pos; // jmp -> call -> [jmp ->] pop r32; possibly OEP
size_t jmpc_trg; // not validated yet
size_t popr_pos; // pop r32
size_t popr_cod; // not in use
Ytz>Автокомплит лично мне очень помогает, так как я просто Ytz>не в состоянии держать в голове названия всех функций проекта,
список функций плагин colorer для фара (который я юзаю) строит. правда, не уверен на счет классов (ни разу не проверял его на классах).
а тут вторая проблема автокомпилита вскрывается. как только у вас есть автокомпилит у вас еще и кол-во функций много больше необходимого. особенно это касается апи функций. не так-то просто придумать компактный, но мощный апи. вот, допустим, что получилось у меня в своем проекте после долгих размышлений.
на одном уровне (уровне работы сенсоров, вызывающих мой модуль), апи вообще простое. полное апи это:
handle init(cfg) — иницилизация нового инстанса (по каждому инстансу на поток)
err scan(handle, stream) — сканирование потока на предмет поиска зловредов
err close(handle) — деиницилизация с освобожением ресурсов
err reset(handle) — тоже самое, что деиницилизация, но без освобождения
если scan возвратил alert, то handle передается на другой уровень абстракции (физически реализованный в другом сервере) и вызввается функция get(handle), возвращающая структурированный блок данных, описывающий все-все-все что было найдено и почему мы на это ругаемся. и тут есть еще один уровень api. такой же простой.
а вот если мы хотим выдать это на экран, то нужно всю инфу перевести в понятные юзеры сообщения, в том числе и вывести диземблерные листинги. и это делает свой уровень api того же самого модуля.
сначала у меня api был "линейный", т.е. все апи функци в одну кучу и фиг разберешься какая из них тебе нужна. а когда на каждом уровне абстракции всего несколько функций -- чего их запоминать?
не важно коротких (кстати, что лучше msgsnd или SendMessage) или длинных, особенно если проект чужой.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, frogkiller, Вы писали:
F>Эх, троллить — так троллить.
F>Здравствуйте, мыщъх, Вы писали:
MS>>>Я пользуюсь Visual Assist. М>>...как мучаются люди не пользующиеся far'ом
F>...как мучаются люди, не пользующиеся vim'ом: qwvcv<ESC>lpi.<ESC>hhjq9@w для примера,
кто бы спорил -- только не я. у меня коллега пользуется vim'ом на всю. на маке. и пока я со своим фаром тыр-тыр-тыр... она на vim'e -- вжик! и соболезнующее смотрит на меня, я топчу клаву и спрашиваю -- где же ты всего этого набралась девочка? она -- в калифорнийском технологическом.
ЗЫ. что ли бросить все и пойти учиться в калифрорнийский технологический на старость лет? (тролить — так тролить)
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, frogkiller, Вы писали:
>Ты не поверишь, в vim'е команда ':e %:p:r.h' делает то же самое
Ой, сорри, я тебя обманул — это просто открывает *.h файл, независимо от того, какой текущий. Честная команда будет несколько сложнее: ':e %:p:s,.h$,.x_,:s,.cpp$,.h,:s,.x_$,.cpp,'. Наверное, стоит всё-таки написать макрос типа такого:
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, frogkiller, Вы писали:
>>Ты не поверишь, в vim'е команда ':e %:p:r.h' делает то же самое
F>Ой, сорри, я тебя обманул — это просто открывает *.h файл, независимо от того, какой текущий. Честная команда будет несколько сложнее:
сделать триггер и на фаре очень сложно. а вот когда ctrl-h открывает .h, а ctrl-Shhit-h — .c/.cpp — это да. кстати, а как в виме открывать сначала .c (если есть), а если нет -- открывать .cpp? на фаре я не вижу иного решения кроме как сделать cmd.exe /c dir во временный файл и на макрасах его распарсить
F>PS. Ты, это, давай переходи на православные инструменты
надо переходить. среди девелоперов у меня одного вынь. хотя вот тут обранужил что два продажника юзают win7, а они обнаружили что у меня XP на ноуте. и все!!! и мы сразу стали друзьями!!! так что винда помогает знакомиться
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
>>>Ты не поверишь, в vim'е команда ':e %:p:r.h' делает то же самое F>>Ой, сорри, я тебя обманул — это просто открывает *.h файл, независимо от того, какой текущий. Честная команда будет несколько сложнее: М>сделать триггер и на фаре очень сложно. а вот когда ctrl-h открывает .h, а ctrl-Shhit-h — .c/.cpp — это да. кстати, а как в виме открывать сначала .c (если есть), а если нет -- открывать .cpp? на фаре я не вижу иного решения кроме как сделать cmd.exe /c dir во временный файл и на макрасах его распарсить
В vim'е сильно проще — есть специальная функция для проверки того, что файл можно прочитать: filereadable(file_name). Хотя, наверное, открывать файл нужно только если в него что-то можно записать — для этого есть filewritable(file_name).
Соответственно, будет как-то так:
Как это просто сделать под виндой, учитывая возможные разные права доступа, которые есть у того, кто запустил vim, и того, кто создавал файл — не знаю. Возможно, у powershell тоже есть какие-то команды для этого, но хз.
F>>PS. Ты, это, давай переходи на православные инструменты М>надо переходить. среди девелоперов у меня одного вынь. хотя вот тут обранужил что два продажника юзают win7, а они обнаружили что у меня XP на ноуте. и все!!! и мы сразу стали друзьями!!! так что винда помогает знакомиться
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, LaPerouse, Вы писали:
LP>>Shift+Alt+A, стрелки вниз — чтобы выделить, набрать модификатор (private), Shift+Alt+A
F>А ты обратил внимание, что исходное действие создаёт не кучу приватных полей у одного класса, а всего два, но у нескольких экземпляров объекта? Так что скорее всего ты получишь что-то не то.
Я показал лишь принцип работы с блочным выделением. Тот пример разруливается аналогично.
Социализм — это власть трудящихся и централизованная плановая экономика.
Здравствуйте, LaPerouse, Вы писали:
LP>>>Shift+Alt+A, стрелки вниз — чтобы выделить, набрать модификатор (private), Shift+Alt+A
F>>А ты обратил внимание, что исходное действие создаёт не кучу приватных полей у одного класса, а всего два, но у нескольких экземпляров объекта? Так что скорее всего ты получишь что-то не то.
LP>Я показал лишь принцип работы с блочным выделением. Тот пример разруливается аналогично.
Приведи тогда, пожалуйста, полную последовательность нажатий на кнопки и т.д. в случае хотя бы 5 пар таких переменных.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, drx, Вы писали:
drx>>>P.S.: vi не нужен
drx>>Кстати, а вот вариант с регулярными выражениями: drx>>1. Выделить область текста для поиска и замены drx>>2. Ctrl+H drx>>3. Find what: {x|y}{:d} drx>> Replace with: v\2.\1 drx>> Look in: Selection drx>> Use: Regular expressions drx>>4. Replace All
drx>>
F>Обрати внимание, у меня в vim'e тоже самое, но несколько быстрее, т.к. не требует прыжков по куче полей ввода. F>И предыдущий вариант с прямоугольным выделением один-в-один реализуется. Поздравляю, наконец-то MSVS донала по функциональности престарелый консольный редактор. При этом помимо предоставляемых возможностей нужны ещё и культура и традиции использования. Вот я подобные манипуляции делаю чуть ли не каждый день, они для меня естественны. А ты в случае подобной задачи сразу полезешь в меню текстовой замены?
Если приходится часто пользоваться некоторой операцией, то в меню обычно не лезут, а используют хоткеи. И чтобы по полям ввода прыгать, не обязательно использовать мышку.
Но если некоторую манипуляцию нужно произвести раз в месяц, то в Visual Studio легко посмотреть на названия кнопок, понять, какая из них тебе нужна в данный момент и тыкнуть на неё. А что же нам предлагает емаксовимовский подход? А вот что. Залезть в мануал, посмотреть весь список функциоанльных возможностей инструмента, выбрать то, что возможно подойдет, прочитать, как это используется и только потом заюзать.
Печально (почему именно печально далее) то, что любители командных строк совершенно не понимают преимущества пользовательского интерфейса. А всех кто пропагандирует GUI-way, они считают идиотами, которые не в состоянии запомнить команды емаксовима. Да нет, просто у людей нет желания неэффективно тратить свое время. Понимаете, когда лично мне приходится тратить уйму времени на некоторые вещи, выполнение которых, теоретически можно сильно ускорить, и тем более, известно как, у меня возникает состояние когнитивного диссонанса. Я начинаю проклинать разработчиков, которые делали этот неудобный инструмент, мне хочется написать, свое, но времени нет, а выполнять некоторую работу всё равно надо и тд.
А печально потому, что просто не всегда есть адекватная по функциоанльности замена неудобного инструмента. Например, для некоторого языка програмимрования есть плагин для емаксовима, и больше не для чего другого. Хотя автор мог бы вместо этого написать плагин для Visual Studio. И при этом пользователей его творения стало бы ещё больше. Но нет, фанатизм не дает писать плагины для VS. К тому же, чтобы писать плагин для VS достаточно знать Сишарп, например. А чтобы писать плагины для всяких кустарных редакторов, нужно знать lisp, питон, перл и ещё кучу разных языков.
Оффтоп:
Вот недавно мне подумалось, что же всё таки заставляет компании никак не конкурирующие с майкрософт использовать юниксоподобные оси там, где можно обходиться виндой и другими продуктами майкрософт? Ведь для них ещё нужно и админа специального нанимать, платить которому за его работу придется не меньше чем стоимость лицензий не "бесплатных" продуктов? Кому нужен весь этот гемор с этим кустарным програмным обеспечением?
Здравствуйте, McSeem2, Вы писали:
MS>Здравствуйте, мыщъх, Вы писали:
MS>>>Я пользуюсь Visual Assist. М>>...как мучаются люди не пользующиеся far'ом
MS>Я очень даже пользуюсь фаром. Но как в нем одним нажатием переключиться с .h на .cpp и обратно? При том, что этих файлов — сотни.
Зачем нужны .h файлы? При программировании на С++ (именно на С++, а не на Си с классами) они не нужны. Просто потому, что компиляторы не поддерживают extern template. А какой же это С++ получается без шаблонов?
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, frogkiller, Вы писали:
>>Ты не поверишь, в vim'е команда ':e %:p:r.h' делает то же самое
F>Ой, сорри, я тебя обманул — это просто открывает *.h файл, независимо от того, какой текущий. Честная команда будет несколько сложнее: ':e %:p:s,.h$,.x_,:s,.cpp$,.h,:s,.x_$,.cpp,'. Наверное, стоит всё-таки написать макрос типа такого: F>
F>Хотя, если забиндить на какую-нибудь кнопку, то пофигу.
F>PS. Ты, это, давай переходи на православные инструменты
Не, ну и этот брейнфак считается нормальным решением?
Я думаю, что если древним программистам сказать, что программировать в машинных кодах не удобно, они посмотрят на тебя как на дурачка, а на самом то деле, они просто ригидны и не способны воспринять более удобных способов программирования. А некоторые, самые воинствующие из них ещё и будут сокрушаться, по поводу, эх молодежь совсем линивой стала, не хочет учить наизусть машинные коды и тд.
Тут же ситуация аналогичная. Вим и емакс — древние программы, которые довно пора выкинуть на помойку и перейти на более современные инструменты или собраться всем ГНУсообществом и написать что то современное. Но нет, так и будут ещё двадцать лет использовать неудобное старье!
Здравствуйте, мыщъх, Вы писали:
MS>>Я пользуюсь Visual Assist. М>...как мучаются люди не пользующиеся far'ом
При всём уважении к FAR прогить в нём после VAX просто капец.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, frogkiller, Вы писали:
F>PS. Ты, это, давай переходи на православные инструменты
Знаешь, ну такие православные инструменты туды... в качель.
Уж лучше языческий VAX чем такое.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Aleх, Вы писали:
A>Если приходится часто пользоваться некоторой операцией, то в меню обычно не лезут, а используют хоткеи.
Где же тут GUI?
A>И чтобы по полям ввода прыгать, не обязательно использовать мышку.
Или тут?
A>Но если некоторую манипуляцию нужно произвести раз в месяц, то в Visual Studio легко посмотреть на названия кнопок, понять, какая из них тебе нужна в данный момент и тыкнуть на неё. А что же нам предлагает емаксовимовский подход? А вот что. Залезть в мануал, посмотреть весь список функциоанльных возможностей инструмента, выбрать то, что возможно подойдет, прочитать, как это используется и только потом заюзать.
Вот, оказывается, откуда идёт, что программисты не читают документацию. А потом, когда ничего не работает, опятьвместо того, чтобы прочитать мануал, лезут на форумы и задают глупые вопросы...
A>Печально (почему именно печально далее) то, что любители командных строк совершенно не понимают преимущества пользовательского интерфейса. А всех кто пропагандирует GUI-way, они считают идиотами, которые не в состоянии запомнить команды емаксовима. Да нет, просто у людей нет желания неэффективно тратить свое время.
Да нет, GUI — удобная штука, когда его не начинают использовать не по назначению. Но вот ведь почему-то всегда начинают.
A>Понимаете, когда лично мне приходится тратить уйму времени на некоторые вещи, выполнение которых, теоретически можно сильно ускорить, и тем более, известно как, у меня возникает состояние когнитивного диссонанса. Я начинаю проклинать разработчиков, которые делали этот неудобный инструмент, мне хочется написать, свое, но времени нет, а выполнять некоторую работу всё равно надо и тд.
Как говорится, мыши кололись, плакали, но продолжали жрать кактус. А разработчики этих инструментов вместо того, чтобы просто подумать, лепят очередной пункт необъятного меню.
A>А печально потому, что просто не всегда есть адекватная по функциоанльности замена неудобного инструмента. Например, для некоторого языка програмимрования есть плагин для емаксовима, и больше не для чего другого. Хотя автор мог бы вместо этого написать плагин для Visual Studio. И при этом пользователей его творения стало бы ещё больше. Но нет, фанатизм не дает писать плагины для VS. К тому же, чтобы писать плагин для VS достаточно знать Сишарп, например. А чтобы писать плагины для всяких кустарных редакторов, нужно знать lisp, питон, перл и ещё кучу разных языков.
И обратное — почему бы создателям Visual Studio не сделать так, чтобы она работала под другими опреанционками?
A>Оффтоп: A>Вот недавно мне подумалось, что же всё таки заставляет компании никак не конкурирующие с майкрософт использовать юниксоподобные оси там, где можно обходиться виндой и другими продуктами майкрософт? Ведь для них ещё нужно и админа специального нанимать, платить которому за его работу придется не меньше чем стоимость лицензий не "бесплатных" продуктов? Кому нужен весь этот гемор с этим кустарным програмным обеспечением?
Причем тут майкрософт и windows? Но и vim, и emasc, и даже eclipse есть под все ОС, чего не скажешь о MSVS.
Но вообще ход твоих мыслей мне нравится — одно дело сравнивать vim с редактором far, но ты с пеной у рта доказываешь, что гигантская программа, которую писали сотни людей, обладает той же функциональностью, что старенький консольный редактор. И по факту на множестве операций он даже оказывается эффективней
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, drx, Вы писали:
drx>>>P.S.: vi не нужен
drx>>Кстати, а вот вариант с регулярными выражениями: drx>>1. Выделить область текста для поиска и замены drx>>2. Ctrl+H drx>>3. Find what: {x|y}{:d} drx>> Replace with: v\2.\1 drx>> Look in: Selection drx>> Use: Regular expressions drx>>4. Replace All
drx>>
F>Обрати внимание, у меня в vim'e тоже самое, но несколько быстрее, т.к. не требует прыжков по куче полей ввода.
Ага, Ctrl+H {что ищем} TAB {на что заменяем} Alt+E ENTER, это, безусловно, намного медленнее, чем vim, потому что "прыжки по куче полей ввода".
Хинт для красноглазиков: в вЕнде тоже есть удобные хоткеи и насиловать мышу при повторяющихся операциях не обязательно.
Здравствуйте, пыщьх, Вы писали:
П>Хинт для красноглазиков: в вЕнде тоже есть удобные хоткеи и насиловать мышу при повторяющихся операциях не обязательно.
Причём тут винда vs линукс? Это другой холивар: гуйня vs консоль. А какой уж гуй при хоткеях?!
К тому же vim и emacs прекрасно работают под виндой.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, мыщъх, Вы писали:
М>не, ну я минималист конечно, но не настолько же вот кусок структуры из моего кода:
М>
М>struct get_pc_x86{
М> int type; // raw type
М> size_t nops_pos; // pos of nops or other dummy commands
М> size_t nop_code; // opcode of the cmd
М> size_t fstenv_p; // pos of fstenv [esp][-0C] (D9 74 24 F4)
М> size_t fstenv_t; // type of fstenv (classic/obfuscated);
М> size_t jmpc_pos; // jmp -> call -> [jmp ->] pop r32; possibly OEP
М> size_t jmpc_trg; // not validated yet
М> size_t popr_pos; // pop r32
М> size_t popr_cod; // not in use
М>
Суровый ты программист 8 символов на переменную стайл гайд требует?
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, пыщьх, Вы писали:
П>>Хинт для красноглазиков: в вЕнде тоже есть удобные хоткеи и насиловать мышу при повторяющихся операциях не обязательно.
F>Причём тут винда vs линукс? Это другой холивар: гуйня vs консоль. А какой уж гуй при хоткеях?! F>К тому же vim и emacs прекрасно работают под виндой.
Чочо? Вам выежнуться, или проблему решить? Я лишь опроверг утверждение, что vim с туевой хучей хоткеев быстрее студии, где рулит грызун. Не быстрее, в студии тоже есть хоткеи.