sab123: (Default)
[personal profile] sab123
Зашла тут в http://wizzard0.livejournal.com/239893.html?thread=1726997#t1726997 речь о редакторах. Хочу оттуда вынести мой ответ о том, почему vi - самый лучший редактор кода, с большим отрывом.

Я тут стал думать, и причин нашлось много. Без определеного порядка:
* Удобно двигать блоки влево-вправо (хотя может и IDE до этого нынче доросли).
* Не портит табуляции.
* Метки с быстрым переходом назад на них. Я всегда использую как минимум 3 метки. Очень, очень важная вещь, ее отсутствие меня страшно убивает.
* Поиск-замена с регулярными выражениями. В vim еще лучше, история поисков-замен и прочих команд.
* Поиск-замена в блоках строк.
* Фильтрование блоков строк через внешние программы.
* Быстрый переход к другой стороне скобок по %.
* Быстрое переключение между двумя последними файлами по ^^. Никаких уродских табов, никаких уродских мышей. Очень удобно для копирования многих кусков между двумя файлами.
* (Не часть vi но часть юниксной консоли и Гнома, если его правильно настроить): переключение экранов по ALT-Fn, позволяющее открыть много редакторов с разными файлами и легко переключаться между ними (никаких уродских табов, никаких уродских мышей).
* Командная философия означает, что все редактирование происходит в виде постоянного написания и исполнения микро-макросов, с повтором по точке. Например, d$ удаляет все до конца строки. Поэтому когда надо поудалять всякое странное в концах строк, делаем один раз d$, а потом просто движемся по строкам и нажимаем точку. Или вот если два соседних символа оказались перепутаны, как поменять их местами? В vi нажимаем xp. В IDE нажимаем Shitf-стрелку, ^X, стрелку, ^V. Пока такое пронажимаешь, проще обе буквы удалить и напечатать заново.

Вот этот командная философия - это то, что тяжело прочухать, впервые увидев vi. А когда она прочухана, то оказывается, что она - единственно правильная.

Date: 2012-04-20 01:24 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
меня в виме задалбывает двухрежимность
это чтоб куда-нить подвинуться нужно выйти из режима редактирования (хотя я эскейп для этого на правый альт повесил) перейти, войти в режим
я вим постоянно использую для правок кода на удаленных тачках, но когда что-то большое написано надо - юзаю в основном IDE

Date: 2012-04-20 01:37 pm (UTC)
From: [identity profile] sab123.livejournal.com
Нету ее. В том и фокус.

Date: 2012-04-20 01:44 pm (UTC)
From: [identity profile] sab123.livejournal.com
Ну, это штука, к которой надо привыкнуть. Есть, конечно, от нее геморрой, но есть и выгоды: образуется большой набор однобуквенных команд.

Date: 2012-04-20 01:50 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
да ты знаешь
я ей лет шесть уже пользуюсь
не знаю уж сколько к ней привыкать надо
вумные книжки (типа byte of vim) конечно же читал

Date: 2012-04-20 02:47 pm (UTC)
From: [identity profile] sab123.livejournal.com
Привыкать активнее? Скажем, взять и 3 месяца пользоваться только vi :-) Я, кстати, привык именно таким способом - пришлось работать на машине, где больше ничего не было. А потом, как говорится, доктор Ватсон без трубки уже не мог.

Date: 2012-04-20 02:59 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
да я и так каждый день вимом пользуюсь
но говорю, что-то большое писать - неудобно
много переключений между файлами, которые каждый раз в новом номере буфера оказываются (да, потом я научился сохранять "сессии", но обычно мне лень заморачиваться)
а существенных плюсов не вижу
кроме удаленного редактирования, конечно
еще меня раздражает что в cygwin под виндой он насильно в конец каждого файла crlf вставляет зачем-то

Date: 2012-04-20 04:03 pm (UTC)
From: [identity profile] sab123.livejournal.com
Что за номеры буфера? Отродясь таким не пользовался. Это, небось, потому что в винде неудобно переключаться между окнами, вот и нужно. Хотя с другой стороны, и на винде я более нормально обходился Alt-Tab. Два окна, в каждом можно переключаться между двумя файлами по ^^ - по уши достаточно.

А crlf в конце последней строки - вещь правильная и обязательная.

Date: 2012-04-20 05:00 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
:ls
:bN
же
или ты заводишь десять ssh или screen'ов и между ними переключаешься?

а CRLF нахрен нигде в конце не нужен
на линуксе и нет его, это в виндовой версии глюк какой-то

Date: 2012-04-20 05:02 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
есть :)
ну может переход к следующей фигурной скобке по-разному везде
только переключение между файлами по F6, вместо вимовского Ctrl + 6 (из-за чего я их постоянно путаю :)
вместо переключения иксовых экранов "православнее" (линэксвейнее всмысле) юзать screen

Date: 2012-04-20 06:10 pm (UTC)
From: [identity profile] sleepy-drago.livejournal.com
есть все кроме внешних программ над блоками. внешним программам кормятся файлы. Ну и не надо командной философии - человек должен думать что он пишет а не как. Чем менее интрузивно это как и на более низком уровне тем больше ресурса остается на что.

Date: 2012-04-20 07:04 pm (UTC)
From: [identity profile] sab123.livejournal.com
screen - все же штука довольно ужасная, и пригодная только для крайних случаев.

Date: 2012-04-20 07:07 pm (UTC)
From: [identity profile] sab123.livejournal.com
Я таки да, завожу десять ssh. Ну, xterm-ов, а в них уже что придется. А так, гм, забавные команды, может пригодятся как-нибудь. Я вообще в новомодных фичах вима не силен, я их нахожу только случайно и редко.

В Линуксе в конце нормальных файлов всегда есть LF. И только в противоестественных нету :-) В ДОСе-Виндовсе, я помню, была странная традиция ставить ^Z.

Date: 2012-04-20 07:07 pm (UTC)
From: [identity profile] sab123.livejournal.com
А вот командная философия оказывается менее интрузивной.

Date: 2012-04-20 09:36 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
чем она ужасная-то? те же рабочие столы, только в консоли

Date: 2012-04-20 09:40 pm (UTC)
From: [identity profile] sab123.livejournal.com
Ну, во-первых они не те же. Переключаться гораздо сложнее. Во-вторых, оно более исторически ограничего одним экраном, в то время как в нормальном терминале я ставлю историю в 500-1000 строк.

Date: 2012-04-20 09:49 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
Ctrl + a, {
и пожалста - история :) скроллить еще удобнее чем обычный терминал

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

переключения во-первых настраиваются, во-вторых по сути все то же самое
Ctrl + a, " - список скринов
Ctrl + a, Ctrl + c - новый скрин
Ctrl + a, Ctrl + a - переключиться на предыдущий
Ctrl + a, N - переключиться на энный скрин
их можно именовать и т.п.

Date: 2012-04-20 09:50 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
скажи это емаксерам, ага :)

Date: 2012-04-20 09:58 pm (UTC)
From: [identity profile] sab123.livejournal.com
У них она вообще развита до какой-то ужасной степени. Я лично не способен вколачивать такие длинные команды.

Date: 2012-04-20 09:59 pm (UTC)
From: [identity profile] sab123.livejournal.com
О, спасибо, буду знать. А ситуацию с удаленными тачками, где соединение может порваться, я как раз и считаю ужасными обстоятельствами :-)

Date: 2012-04-20 10:04 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
кафе с вайфаем - ужасные обстоятельства? :)
мало ли откуда что делать приходится
гораздо хуже, если в процессе выполнения какой-нибудь важной системной настройки связь навернется - можно вообще тачку "потерять"

Date: 2012-04-21 02:37 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
ну вот с позиции "закрыть ноутбук", поехать туда-то, открыть ноутбук - 10 терминалов практически неюзабельны
это ж опять потом подключаться, открывать редакторы и т.п.

Date: 2012-04-23 03:04 pm (UTC)
From: [identity profile] sab123.livejournal.com
Ага, они. :-)

January 2026

S M T W T F S
     12 3
45 6 7 8 9 10
11 12 13 14 151617
1819202122 23 24
25 26 2728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 28th, 2026 06:41 pm
Powered by Dreamwidth Studios