Это копия, сохраненная 4 октября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
А вот вам задачки (как вы решите их в IDE)?
1)Нужно закомментить несколько строк кода, скажем, с 100 по 200-ю.
В виме решается одной командой с закрытыми глазами:
100,200s/\(.\)/#\1/
2)Вот такой ещё пример. Нужно строки из print'ов запихать в один:
1. print('Первая строка')
2. print('Вторая строка')
3. print('Третья строка')
В виме так же с закрытыми глазами:
:1s/')/\\n'/|2,3s/print('\(.\)')/ '\1\\n'/|3s/\\n'/')/
Получаем:
1. print('Первая строка\n'
2. 'Вторая строка\n'
3. 'Третья строка')
Понятное дело, что на практике таких строк может быть 1000. Вот как вы всё это в IDE будете делать?
Короче, там звёздочка после точки должна быть.
Неужели он умеет в компиляцию и отладку сишарп-кода хотя бы точками останова, ставящимися мышкой?
> 1)Нужно закомментить несколько строк кода, скажем, с 100 по 200-ю.
> В виме решается одной командой с закрытыми глазами:
> 100,200s/\(.\)/#\1/
В иде решается одним свайпом и кликом мышкой.
>Неужели он умеет в компиляцию и отладку сишарп-кода
В компиляцию компилятор должен уметь, который можно вызвать в вимовском шелле например.
> точками останова, ставящимися мышкой?
gvim с соответствующим расширением может и имеет. А может и не умеет, с шарпом никогда не сталкивался, врать не буду.
>В иде решается одним свайпом и кликом мышкой.
Что за "свайп", объясни рачиле плиз.
Слишком много документации читать, слишком много переучиваться. Да еще и плагины необходимые понаходить. Sublime пока что устраивает.
>Вот объясните мне, IDE-бляди, что такого есть в IDEшках чего не умеет Vim?
Допустим, у меня есть поле Hueta некоторого класса. Я хочу переименовать его как в объявлении класса, так и во всех местах, где оно используется, в Pizda. При этом я не хочу переименовывать ни метод
HuetaMethod(),
ни портить комментарий
// Kakaya-to Hueta,
ни даже переименовывать одноимённое поле другого класса, объявленного в этом же файле.
В QtCreator я могу это сделать за 5 секунд.
А в Vim?
Пока что оп ничего интереснее регулярок не показал, тащемта.
Впрочем, если тебе и их много, у меня плохие новости.
Vim не умеет в человечность.
А емакс — тем более.
И беда не в консоли, а в странной логике этих редакторов.
/thread
>что такого есть в IDEшках чего не умеет Vim
Умный автокомплит, разворачивание макросов при наведении куросра (как в Eclipse), умный переход на декларацию и реализацию ф-ций.
>ужно закомментить несколько строк кода, скажем, с 100 по 200-ю
Любая уважающая себя IDE имеет vim-плагин в редакторе.
Бери от жизни лучшее
>автокомплит
https://github.com/Shougo/deoplete.nvim
>разворачивание макросов при наведении куросра
Не знаю, как в eclipse, нужно пояснение
>умный переход на декларацию и реализацию ф-ций
gd
ctags?
Хотя для поиска мне чаще всего хватает встроенного плагина для ag.
Все умные люди давно пользуются vim/emacs-режимами в любимых vs code/idea/что-угодно ещё, таким образом и не опускаясь до пещерной прыщебляди, которая пердолится месяцами с дотфайлами вместо того, чтобы гулять с тян, и сочетая все современные IDE-фичи с божественными раскладками. Конечно, ничего зазорного нет для правки конфигов/единичных скриптов в консолечке, но не более того.
/thread
>Не знаю, как в eclipse, нужно пояснение
пик
gd, разве работает если декларация в другом файле?
Если ты работал с ctags, то знаешь, что это ад и погибель, постоянные ошибки, беда с современными сями, перегенерация симовлов, да ещё и настрой это дерьмо!
Другое дело, кода всё из коробки, поставил и оно идеально работает.
А если кусок текста 10. 000 строк? Долго выделять придётся. Или, например, в этом диапозоне (10. 000) строк тебе нужно закоментить только каждую вторую, или ещё по какому-либо условию.
>100,200s/\(.\)/#\1/
>1s/')/\\n'/|2,3s/print('\(.\)')/ '\1\\n'/|3s/\\n'/')/
У меня нет времени.
>закомментить 10000 строк
Юзкейс.
>закомменитить каждую вторую или ещё по какому-либо условию
Юзкейс.
Да просто какой-то кусок кода закомментить. Функцию саму по себе, ветвление, чтобы не отсвечивали.
Ну, некоторые на имакс переходят. Evil и всё такое.
>на практике таких строк может быть 1000.
На практике я пошлю такой код нахуй, независимо от редактора.
Сразу видно профессионала.
Вот такие как ты и тормозят прогресс, когда используется ненужный гуй и тонны текста, вместо интуитивно понятного регэкспа!
Прогресс подразумевает развитие чего-то, а не создание удобств для еще большего отупления, посредством возможности лёгкого движения мышкой. Совсем уже, блядки, хипстеры, в своём псевдопрогрессе утонули и нихуя вокруг не видят.
Вот-вот, отупели вкрай со своими счётами. Нужно было как прадиды палочками считать.
Ну, вообще-то, когда калькуляторов не было толком, то учились считать на бумаге и в уме, когда сейчас эту функцию целиком и полностью выполняет смартфон, что на самом деле не есть хорошо. Зря ты драматизируешь это. Любая нагрузка всегда полезна.
Мало того что проблемы надуманные и ирл такого не встретишь, так и еще этот виморебенок не слышал про клавиатурные макросы.
>100
>200
>1000
Все эти цифры придуманы из голове, и на самом-то деле, очень большие. На деле у пользователей редактора проблемы с подобным появляются уже на 2-3 и более строках, где надо повторять одни действия для кайдой строки или слова.
>:1s/')/\\n'/|2,3s/print('\(.\)')/ '\1\\n'/|3s/\\n'/')/
Ты уже не человек бля, ты робот нахуй!
мммм, каждый сеньйор ежедневно выполняет задачи по комментированию строчек ровно через одну. оче полезная фича, бро
1. В код нужно вставить, предварительно написанный, sql-запрос, т.е. каждую отдельную строку нужно взять в кавычки прибавить "+" в конце и заменить начальные пробелы на табуляцию. Таких запросов может быть очень много и не всегда есть возможность и время переписывать чужой говнокод, так, что вим со своими регекспами приходит на помощь.
2. Есть три коммита в гите, нужно сравнить последовательные изменения в файле. В виме, например, можно одновреммено сравнивать до 4 файлов.
3. Для некоторого количества строк нужно выполнять одинаковую последовательность действий. В виме для подобного есть макросы.
>1. В код нужно вставить, предварительно написанный, sql-запрос, т.е. каждую отдельную строку нужно взять в кавычки прибавить "+" в конце и заменить начальные пробелы на табуляцию. Таких запросов может быть очень много и не всегда есть возможность и время переписывать чужой говнокод, так, что вим со своими регекспами приходит на помощь.
бля, я это в блокноте могу сделать
>2. Есть три коммита в гите, нужно сравнить последовательные изменения в файле. В виме, например, можно одновреммено сравнивать до 4 файлов.
вижуал студия может сравнивать как минимум 2 файл. Хз может быть умеет и больше, но мне больше двух просто никогда не приходилось сравнивать.
>3. Для некоторого количества строк нужно выполнять одинаковую последовательность действий. В виме для подобного есть макросы.
абстрактная задача. допустим в блокноте тоже такое можно делать
>допустим в блокноте тоже такое можно делать
Двачую, можно вообще в хекс редакторе. Нахуя все эти абстракции?
> можно вообще в хекс редакторе
Надеюсь, этот хекс-редактор будет запускаться прямо из BIOS и открывать накопитель целиком? Файлы нинужны. Файлоблядь не человек.
Чем Убунту лучше LFS?
Лучше для кого?
1. Откатиться на 5 минут назад.
2. Поменять местами аргументы функций в нескольких разных методах. (при рефакторинге или апдейте 3p либы)
3. Из кучи 100+ строк сделать массив. Скачали хуету и хотим подключить в код статически, а писать скрипт и вспоминать awk лень.
4. Перенести нижестоящую строку в конец текущей. И еще вставить под текущей строкой пустую с корректным отступом. - мелочи, а приятно.
То же самое после освоение емакса. Обычные редакторы, где управление стрелочками, просто кажутся жутко неудобными и ты не представляешь, как ты ими пользовался раньше.
Ты за вим топишь или против него? В виме заместо 2-ого случая решается всё элементарно.
1. Persistent undo, сохраняется даже после выхода из редактора, откатиться можно на любой момент.
2. :bufdo %s/method(int arg1, bool arg2)/method(bool arg2, int arg1)/g
3. ^V100jI"<Esc>^V100j$A", <Esc>V100jJ
Вообще легкотня, делается с закрытыми глазами. И это еще даже без макросов. С макросамиеще легче, просто записываешь движения для одной строчки с переходом на другую и повторяешь этот макрос 100 раз, само собой не руками.
4. J<Enter>
Ну и всё.
>3. ^V100jI"<Esc>^V100j$A", <Esc>V100jJ
>^V
Если что, то это просто вредная привычка, Ctrl + V нажимать. Тут можно и простым v обойтись.
А, или нихуя... ctrl + v надо.
> 2. :bufdo %s/method(int arg1, bool arg2)/method(bool arg2, int arg1)/g
ммм, мне кажется речь не шла не только об определении/объявлении, но и о вызовах метода, а в этом случае аргументы по-разному могут называться, более того вызов может быть записан не в одну строчку, а заместо аргументов может быть вызов других функций, лямб, хуямб ну и т.д.
Навигация через ctags (:tag method), и макросы, если дохуя где надо менять.
Оу воу, вообщет я спрашивал за АйДиИ
1. Да
2. Ммм... Тут скорее что-то вроде $t(dwxei, <ESC>p)
3. Че за V100? Макрос применить на все строки сразу
4. 'O' забыл.
>^V100j
Ctrl +V или ^V — выделение колонками
100j — 100 строк в низ
Сам эти действия повтори и поймёшь.
>'O' забыл.
Да, пожалуй. Т.е. JO
Так блять хуй поймёшь, кстати. У меня фонт DejaVu Sans показывает заглавную i как обычную L. Там заглавная i, если что.
Это копия, сохраненная 4 октября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.