LINUX.ORG.RU
ФорумTalks

Настройки vi по умолчанию

 ,


0

2

Давно хотел спросить: почему настройки vi / vim по умолчанию именно такие?

Например, размер таба 8 символов, и это tab, а не 8 пробелов. Это объясняется какими-то классическими установками древних юниксов? Ведь большая часть пользователей-разработчиков, насколько я понимаю, в первую очередь настраивает заполнение пробелами. Многие делают отступ равным 4, как здесь:

set sw=4
set cindent
set tabstop=4
set shiftwidth=4
set expandtab

Нет никакого статуса файла с информацией о нем. Другие настройки, которые удивляют, это то, что включены swap-файлы. Хотя логичнее было бы, если уж у вас всё отключено, даже строка статуса, то тогда уж пусть пользователь сам включает автоматический бэкап. Имеется в виду это:

set nobackup
set updatecount=0

В общем, можно было бы понять концепцию, если бы всё по умолчанию было отключено. Чем объясняется выбор именно таких настройек vi по умолчанию?

Вопрос навеян следующим соображением: если vi использует именно такие настройки, то не является ли нагромождение других настроек в ~/.vimrc концептуальным заблуждением и непониманием идеи vi тем большим, чем больше дополнительных настроек сделано? Может быть, делать пробелы руками (ну подумаешь, 4 раза пробел нажать). Зато не будет непривычности при переходе с одной системы на другую.

Или это просто потому, что чья-то левая пятка так захотела?

Deleted

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

Шоб тебе в аду Win95 настраивать!

UPD: тем то таб и хорош, что в отличии от захардкоденных спейсов его на любую ширину настроить можно. Т.ч. только TAB. (И ширина у него 8.)

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 1)

А чем тебе swap-файлы не угодили?

размер таба 8 символов

Рекомендован GNU и лично Пророком, ЕМНИП.

Xellos ★★★★★ ()
Ответ на: комментарий от beastie

UPD: тем то таб и хорош, что в отличии от захардкоденных спейсов его на любую ширину настроить можно. Т.ч. только TAB. (И ширина у него 8.)

А потом наблюдать страх и содом.

andreyu ★★★★★ ()
Ответ на: комментарий от beastie

Жизнь слишком коротка чтобы спорить о размере отступов, есть автоматические тулзы для конвертации.

PolarFox ★★★★★ ()
Ответ на: комментарий от beastie

питон со смешанными табами и пробелами ждёт тебя xD

stevejobs ★★★★☆ ()
Ответ на: комментарий от beastie

Я руководствуюсь только цельными руководствами по стилю, в которых по крайне мере есть концепция, и всё не просто так, а именно:

- K&R

- Google C++ Style Guide

- http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man9/style.9?query=sty...

Indentation is an 8 character tab. Second level indents are four spaces. All code should fit in 80 columns. ... Do not add whitespace at the end of a line, and only use tabs followed by spaces to form the indentation. Do not use more spaces than a tab will produce and do not use spaces in front of tabs.

Если я правильно перевожу, то фраза «and only use tabs followed by spaces to form the indentation» подразумевает, что нужно использовать пробелы. Или здесь имеется в виду другое?

тем то таб и хорош, что в отличии от захардкоденных спейсов его на любую ширину настроить можно. Т.ч. только TAB. (И ширина у него 8.)

Но тогда получается, что строки имеют нефиксированную длину. Т.е. на чьем-то мониторе, в который обычно влезает 80 символов (или 2 терминала по 80 символов), код вылезет за ширину.

Deleted ()
Ответ на: комментарий от Xellos

А чем тебе swap-файлы не угодили?

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

Deleted ()

Tab должен быть tab'ом. В том же rsnapshot'е, если поля в конфиге разделены не табом - он тебе выдаст ошибку.

f1st ()
Ответ на: комментарий от Deleted

Ну настрой так, чтобы это «где-то» было там, где тебе надо. Меня вот больше беспокоит то, что при внезапном отключении электричества я могу получить файл во внезапном состоянии. И кто потом будет дописывать сорок килобайт текста/кода?

Xellos ★★★★★ ()

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

Статусная строка по умолчанию есть, просто она не отображается, если есть только одно окно на экране.

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

Можно у Брама спросить, если сильно хочется, но не думаю, что в ответе будет что-нибудь сильно интересное.

xaizek ★★★★★ ()
Последнее исправление: xaizek (всего исправлений: 1)
Ответ на: комментарий от xaizek

Окей, исторически. То есть так получилось, а потом разработчики уже не решились менять настройки. Это уже объяснение.

Deleted ()
Ответ на: комментарий от outtaspace

Не от отключения электричества, но несколько раз пригодилось. Плюс, это средство предотвращения редактирования одного файла разными vim'ами.

salsa ()

поцчиму

Придумай другие, закоммить, сделай пулл реквест, убеди чтоб приняли. Или как там в hg.
Будь мужиком, короче.

mos ★★☆☆☆ ()
Последнее исправление: mos (всего исправлений: 1)
Ответ на: комментарий от beastie

UPD: тем то таб и хорош, что в отличии от захардкоденных спейсов его на любую ширину настроить можно. Т.ч. только TAB. (И ширина у него 8.)

на любую ширину

И ширина у него 8

Как цвет автомобиля по Форду?

alix ★★★★ ()
Последнее исправление: alix (всего исправлений: 1)
Ответ на: комментарий от beastie

UPD: тем то таб и хорош, что в отличии от захардкоденных спейсов его на любую ширину настроить можно

Так вот я и хочу узнать, где написано, что это хорошо. Откуда это пошло.

Deleted ()
Ответ на: комментарий от Deleted

only use tabs followed by spaces

Перевожу: для форматирования используйте только табы дополненные пробелами.

Т.е. для отступа в 20 символов следует использовать <TAB><TAB><SPACE><SPACE><SPACE><SPACE>

beastie ★★★★★ ()
Ответ на: комментарий от beastie

Перевожу: для форматирования используйте только табы дополненные пробелами.

Прямо как «профессиональные» microsoft word-пользователи :)

andreyu ★★★★★ ()
Ответ на: комментарий от Deleted

All code should fit in 80 columns

Вот поэтому я и не люблю такие руководства по стилю писаные зубрами. У каждого первого сейчас монитор 1920х1080, какие в жопу 80 колонок? K&R писали этот мануал под телетайп или MDA, в лучшем случае. Это понятно, но сейчас его уже можно скорректировать, телетайпы и восьмиигольчатые матричники давно сдохли, и 120 колонок влезает практически везде.

Тех, кто сейчас пишет код в 80 столбцов, надо бить линейкой по рукам.

alex_the_v ★★★ ()
Ответ на: комментарий от alex_the_v

У каждого первого сейчас монитор 1920х1080

Ну с этим-то всё просто, во втором источнике даётся такое объяснение:

Each line of text in your code should be at most 80 characters long.

We recognize that this rule is controversial, but so much existing code already adheres to it, and we feel that consistency is important.

Что же касается мониторов 1920х1080, то в них как раз помещается ровно два терминала по 80 символов. Или один терминал и книга/браузер/PDF.

И ещё важный аргумент - некоторые разворачивают мониторы 1920х1080 вертикально. И тогда туда влезают те же 80 символов и небольшой запас в ширину.

Вполне веская аргументация, это то, что объединяет эти руководства.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 3)
Ответ на: комментарий от Deleted

В том, что ты говоришь тоже безусловно есть логика, я просто привел эту ситуацию как пример. Всегда найдутся люди, которые разворачивают мониторы, сидят с калькуляторов, открывают одиннадцать окон с кодом по двадцать две колонки каждое, и.т.п. Аргумент про so much existing code already adheres to it в данной ситуации, кстати, вообще не выдерживает никакой критики.

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

alex_the_v ★★★ ()
Ответ на: комментарий от outtaspace

Такое реально бывает?

В теории такое даже на ноуте может быть. Пример: Ноут падает со стола и из него от удара вываливается аккум. Да, ты можешь сказать что надо аккуратнее, но в жизни бывают разные ситуации. А уж от кернелпаника точно никто не застрахован(он ведь и от сбоя хардварного может быть).

А внезапное отключение вообще легко: микроволновка + посудомойка + стиралка + чайник у меня дома приводят к 100% выносу автомата. На 4 компа в доме бесперебойников не напасешься.

Loki13 ★★★★★ ()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от alex_the_v

У каждого первого сейчас монитор 1920х1080, какие в жопу 80 колонок?

А ничего что в IDE еще куча всяких служебных окон вокруг кода? Да и шрифт неплохо бы покрупнее сделать(в qtcreator'е по-умолчанию мне нравится размер), т.к. зрение уже не то что в молодости. И это я не говорю что еще полно мониоров\ноутов с шириной в 1680px(у меня на работе такой).

Loki13 ★★★★★ ()

Например, размер таба 8 символов, и это tab, а не 8 пробелов.

true

Это объясняется какими-то классическими установками древних юниксов?

нет, это абсолютная истина.

t184256 ★★★★★ ()
Ответ на: комментарий от Loki13

Вот тебе IDE со всякими служебными панельками: http://tinypic.com/r/1sjmll/8, белая линия проходит по 120 колонок. Это 1920, но в 1680 тоже входит нормально. Можно даже в 1366 нормально кодить, если панельки поскрывать. 80 колонок - это нонсенс, эту лапшу потом невозможно читать.

alex_the_v ★★★ ()
Ответ на: комментарий от alex_the_v

http://i.imgur.com/8BbJOxw.png

Как можно увидеть белое поле заканчивается на 80, а строка доходит до 100. И это с разрешением 1920 и без правой панели. На 1680 даже без правой панели будет максимум 100 символов. А у тебя слишком мелкий шрифт, глаза только ломать.

Loki13 ★★★★★ ()
Ответ на: комментарий от alex_the_v

Нормальный у меня шрифт, я очки ношу.

Ну так человек с плохим зрением и в очках видит лучше, чем человек с хорошим, но не 100%, без очков.

В 80 конечно не спешу, но категорично говорить что 120 - норма, тоже как-то неправильно. Откроешь потом проект на ноуте, в коммандировке, а там код не влезает. Нафиг такое.

Loki13 ★★★★★ ()
Последнее исправление: Loki13 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.