Pull to refresh
12
0
google_fan @google_fan

User

Send message

Под стандартным я всего лишь имел в виду произношение из словаря - то, что будет учить человек изучающий русский как иностранный.

Хм. Это стандартное произношение. Откройте любой словарь что даёт фонетическую транскрипцию.

Например транскрипция слова "чтобы" это [шт`обы], "сосед" [сас’`эт], "котёнок" [кат’`онак], солнце [с`онцэ]

Звук "о" в слове "кот" [к`от] радикально отличается от звука "о" в слове котенок.

Ну вот я привел вам пример очень распространенных слов которые при записи с речи носителя дадут вам "штобы", "сасед", "катенок", "сонце". Ну и вообще не зря нет с детства вбивают все эти "жи/ши пиши с и", потому что куча вещей фонетически нелогичны.

Ну английский в этом плане вообще жесть, но с русским вам кажется, что все логично только потому что вы носитель. Для иностранца все эти наши "чтобы", "сосед", "котенок", "солнце" такой же взрыв мозга.

В Берлине обычные городские не мигают. Только специальные, типа автобусов со школьными экскурсиями разве что.

Также прошу показать где именно в правилах в РФ написано, что нужно проезжать на ШАГОВОЙ скорости возле автобуса на остановке, даже если эта остановка на полосе встречного движения.

Ну справедливости ради и в немецких такого нет. Только если автобус мигает аварийкой.

Рефакторинг ( так же как и автокомплит, форматирование, и многое другое) предоставляется не самим nvim , а LSP сервером. Если nvim и , скажем, vscode используют одинаковый LSP сервер, они представляют идентичные возможности рефакторинга. Скажем nvim с RA в качествеLSP сервера позволяет вам "банально переименовать метод одного из классов по всему проекту". (С учётом того, конечно, что в расте вместо классов структуры)

ZMK + nice!nano дадут вам split клавиатуру где половинки связаны по Bluetooth

Вы можете написать 'let s = "hello";' Это создаст вам переменную типа &str которая будет ссылаться на захаркоженную строку в теле вашей программы и это обычно то, что вы хотите. String::from("hello") это просто вызов статического метода у структуры String который аллоцирует место в куче и копирует туда данные из "hello".

В документации вим это описывается как

vab - Select "a block"

vib - Select "inner block"

va' - Select "a single quoted string"

vi' - Select "inner single quoted string"

И так далее.

Соглашусь про неинтуитивность многих команд, но справедливости ради - вим никогда не рекламировался как интуитивный редактор.

Как это выделять правильно?

В виме есть понятие textobject. И сам вим представляет вам какие-то действия которые вы можете сделать с этим textobject. Например удалить, выделить, скопировать. Плюс модификатор внутри/снаружи i/a. А сами textobjects могут представлять кто угодно. Есть встроенные в вим, например слово, или блок, или кавычки. Т.е. вы можете сказать - удалить все внутри кавычек di" Или выдели слово на котором я стою viw. Но textobjects могут предоставляться и сторонними плагинами. Например плагин для работы с языком может предоставить вам textobject комментарий. Как он это делает это другой вопрос. Раньше это делалось регэкспами, сейчас есть современные тулзы типа tree-sitter которые строят дерево синтаксиса. Или вам LSP сервер их может давать.

Или например вим ничего не знает про понятие функция. Но скажем LSP или treesitter представляют textobject функция и я могу использовать стандартные средства вим для работы с ней.

Или скажем плагин для работы с git может представлять вам textobject - чанк кода который вы пока не закоммитили.

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

Вменяемое IDE (предназначенное для работы с кодом) это просто обязано уметь.

Отлично! Значит я отстал от жизни ) Раньше почему-то можно было переходить вперёд-назад, только если вы прыгали пользуясь стандартными методами ide ( скажем кликнули на метод и перешли к его определению). Скажем если вы в произвольном месте нажмёте 5 раз PgDn вернуться было нельзя.

Хорошо что это уже общая фишка.

Но в любом случае главный бонус вим то что вы этими штуками можете пользоваться везде.

Можно маркдаун редактировать в рабочей Вики, писать большие сообщения к git commit с кусочками кода и прочая. Или писать вот это вот сообщение вам (чего я увы не делаю, потому что пишу с телефона :( )

Ну скажем если я не в vim, то у меня сложности вызывают задачи вида - скопировать весь комментарий к функции, перескочить к началу абзаца, выделить до конца предложения.

Или банально - я пишу комментарий к какой-то функции и в процессе мне понадобилось посмотреть какое-то другое место в этом большом файле. Я сходил посмотрел и теперь мне нужно сказать _верни меня немедленно в то место где я писал комментарий_.

Да и вообще история перемещения курсора это вещь. Когда бродишь по большому файлу с кодом и такой "Так, в какой-то это функции я был минуту назад?"

Или макросы. Обычно когда говорят макрос, я такой, оооо, макрос, это почти программирование, лень. В виме же если мне любое действие нужно сделать больше двух раз, я создам макрос. Потому что в виме макрос это "смотри, показываю как это делать один раз, потом будешь делать сам"

Плюс вим под клавиатурой понимает только буквенно-цифровые клавиши, плюс Ctrl,Shift,Alt. Все клавиши со стрелками, PgUp,PgDn , функциональные клавиши и прочее не существуют. Двойные и тройные сочетания Ctrl-Shift-Alt не существуют. Ну точнее они существуют и вы можете ими пользоваться, но в модальном редакторе вы можете все сделать не снимая рук с центрального блока, поэтому до них таааак далеко тянуться и никому не приходит это в голову.

Ну погодите, во-первых я не очень понимаю почему все так напирают на то что у автора не было клавиш управления курсором и контрола. ВСЕ пользователи vim считают что модальный режим это огромное преимущество vim, я вам гарантирую это. И это одна из причин почему этот редактор сохраняет популярность уже больше 40 лет.

Что касается сочетаний клавиш, и в особенности Ctrl-C. Программы которые вы перечислили поддерживают это сочетание, потому что это Window/MaсOS сочетание клавиш, а вышеперечисленные программы это Windows/MacOS программы построенные с использованием фреймворка что предоставляют эти OS. vim не является такой программой.

И тут появляется весь из себя уникальный vim

Тоже странное утверждение. К моменту когда это сочетание клавиш впервые попало в мейнстрим (в 1984 году вместе с первым макинтошем) vi c этими сочетаниями существовал уже 8 лет.

И использование Ctrl-C для копирования было достаточно противоречивым изменением, потому что к этому моменту у Ctrl-C уже было давно установившееся значение - abort. Поэтому консольные программы для linux/dos не могли его использовать.

какую именно клавишу автор решил использовать. Почем не C?

y - yank

p - paste.

Совершенно разумные сочетания, для, напомню, 1974 года когда никаких стандартов не существовало.

С другой стороны вас почему-то не смущает то что `cut = Ctrl-X` а `paste = Ctrl-V`

Если посмотреть с другой стороны - то унификация редакторов с точки зрения UNIX это странно, потому что с точки зрения unix иметь одновременно несколько редакторов это дикость. Совершенно не unix-way. Если какой-то программе нужно отредактировать текст, то она должа это делать в вашем любимом редакторе. Например если мне нужно сделать git commit в windows, то я кликну правой кнопкой, выберу коммит и мой git client откроет свой собственный редактор текста (безумие!) чтобы я ввел сообщение для коммита. В linux git client запустит мне в таких случаях vim. Это одна из главных идей, стоящих, скажем, за neovim - позволить его легко встраивать в другие программы,

Сложно спорить с тем что в vim куча мелких неконситентностей, и конечно у него совершенно не интуитивно понятный интерфейс. Но у него и нет такой задачи. Интуитивный интерфейс нужен если вы планируете что вашим продуктом будут пользоваться непрофессионалы. Пилоту формулы 1 не нужен интуитивно понятный интерфейс, пилоту А380 не нужен интуитивно понятный интерфейс.

Если я любитель и мне нужно написать одну страничку с формулами в год, я возьму интуитивно понятный word и вставлю там формулу. Если я математик и пишу десятки таких страниц в день годами, то я буду это делать в совершенно не интуитивном latex.

Это правда, единственный способ поддерживать навыки вима в актуальном состоянии - это им пользоваться. Я не очень понял что за проблемы с копированием/вставкой вы имеете в виду.

Neovim своим поведением не особо отличается от обычного вима. Ну разве что встроенная консоль. Основные отличия внутри - человеческие дефолтные настройки, поддержка асинхронных коммуникаций, что дает возможность нормально пользоваться внешними инструментами из vim, возможность писать плагины на lua вместо vimscript. И вот в последнем поддержка treesitter - что решает давние проблемы vim с подсветкой кода, и встроенную поддержку LSP.

это было бы убедительно, если бы что-то подобное не говорили про vim последние лет 20.
Когда я начинал программировать — в конце 90х, люди в основном сидели в mcedit, far, editplus, в зависимости от платформы, а я решил попробовать vim.

Потом наступила эпоха IDE, в 2001 году вышли Eclipse и Idea и было объявлено что эра просто редакторов закончена, потому что код это не просто текст и понимая код IDE могут предоставлять невиданные ранее Возможности.

Года через 4 стало понятно что потребление памяти растет быстрее, чем предоставляемые Возможности и народ стал подунывать. И тут в 2004 году вышел Ruby on Rail. И люди смотрели скринкасты, где DHH и другие, в пять элегантных строчек поднимали приложение, на которые в, прости господи, EJB и JEE у тебя уходила неделя. И эти люди на скринкастах писали в каком-то магическом прекрасном редакторе который запускался за секунду, а не за две минуты как эклипс. Этим редактором был TextMate. И наступила эра возврата к истокам!

Люди копили на маки и текстмейт, а потом лупили простой код, в простых редакторах и были счастливы. Через пару лет правда авторам TextMate надоело их детище, люди страдали, писали какие-то клоны которые благополучно умирали, пока в 2008 году товарищ скиннер не выпустил Sublime Text, который был OK. И тут же было обьявлено что это The Editor и будущее программирования.

Sublime держался бодрячком лет 7, а потом вдруг оказалось что уровень хипстоты в нем совершенно недостаточен для молодежи. (Плагины на питоне? Никакого веба? Ни капельки javascript? It's sooo 2000s! ). И родился Atom! Electron, нода, плагины на js, все новое — с иголочки, что тут не любить! Новый король под горой.

Параллельно со всем этим память дешевела, закон Мура работал изо всех сил и пользоваться IDE опять стало приемлимо. Idea штамповала плагины для разных языков, захватывала ниши и становилась именем нарицательным. Говорим IDE — подразумеваем Idea.

Пока в 2015 не вышла VSCode и сразу стало понятно — this is it. Вершина ide строения, сочетающая простоту и мощь! Надо срочно переходить.

Я мог бы как и куча моих коллег вокруг, прожить всю эту удивительную историю и попробовать кучу прекрасных редакторов, или как я и сделал, все эти 20+ лет пользоваться vim который развивался, добавлял фичи и предоставлял плюс-минус схожие возможности иногда отставая, иногда нагоняя. Да, раз в 5 лет приходится поправить пару строк в конфиге, чего уж скрывать. Ну или захочется попробовать новый интересный плагин.

Сейчас кстати в виме очередная волна активности, выходит neovim 0.5 с кучей новых плюшек, все воодушевлены и клепают плагины, благо теперь не надо месяц учить vimcode чтобы это сделать.
Для меня скорее наоборот — не очень понятно, что дают IDE ради чего нужно жертвовать скоростью, возможностью прозрачно работать локально и удаленно, без проблем параллельно держать больше десятка открытых проектов в разных сессия tmux.
Плюс конечно вся магия режимов vim которая позволяет делать много чего, не снимая руки с клавиатуры. Причем эта магия вам доступна, даже если вы пишете не код, а скажем доки в markdown или тикет в jira.

Что критически важного есть в IDE, что недоступно в vim?

Всякий рефакторинг, автокомплиты, автоподсветка ошибок, автоисправления ошибок и прочая магия связанная с семантикой кода ушла в language servers которые могут использоваться как из vim так и из VSCode.

Мне навскидку приходит в голову только интеграция с системами контроля версий. Для вима есть fugitive, но он уж слишком мощен для меня, так что за исключением банальных вещей типа посмотреть изменения, откатить частично, добавить в stage и прочее что легко сделать не выходя из vim, я предпочитаю делать снаружи vim. Подозреваю что в Idea можно делать дикие мержи и разрешать конфликты бодро орудуя мышкой.

Т.е. я соглашусь что наверное что-то какие-то вещи в себе типа C# или энтерпрайза на java лучше писать в идее или VS, но для обычных вещей типа python/php/golan/rust какой-то особенной разницы не будет.

Это вам взгляд с обратной стороны — от человека который лет 20 пользуется vim? но иногда пробует что нового в стане IDE ( плюс иногда вынуженный ими пользоваться как раз для java/c#)

Да и вообще про "инструкции выделения памяти в куче" интересно было бы послушать.

это очень часто бывает удобнее. Пример — вы запустили REPL, сделали какой-то RPC call, вам вернули огромный JSON. Можно не выходя из консоли — поисследовать структуру этого json, вычистить отттуда невалидные данные, трансформировать как удобно, потом пользуясь ими сделать еще N rpc вызовов. Посмотреть что там вернули, покрутить данные, привести к тому виду что нужно. А потом уже можно сдампить весь код что был написан в REPL в файл, открыть его уже в IDE и на его основе писать уже итоговую программу. Ну или просто даже вам программа не нужна, а нужны полученные данные один раз.

Везде одинаковая. Атмосфера плотная, с большой тепловой инерцией и хорошо перемешивается.

Такие провайдеры не удаляют криминальный контент, несмотря на неоднократные запросы полиции

Какой ещё криминальный контент у VPN провайдера?

Information

Rating
Does not participate
Registered
Activity